All functions:
  Elements:
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_ChooseTPMVersion
      Src: /src/libtpms/tests/tpm2_createprimary.c:28,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:30,1
    - Dst: TPMLIB_MainInit
      Src: /src/libtpms/tests/tpm2_createprimary.c:34,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:36,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_createprimary.c:40,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:42,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_createprimary.c:59,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:62,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:68,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_createprimary.c:87,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:90,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:96,1
    - Dst: memcmp
      Src: /src/libtpms/tests/tpm2_createprimary.c:102,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:103,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_createprimary.c:121,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:124,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:130,1
    - Dst: memcmp
      Src: /src/libtpms/tests/tpm2_createprimary.c:135,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:136,1
    - Dst: TPMLIB_GetState
      Src: /src/libtpms/tests/tpm2_createprimary.c:143,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:145,1
    - Dst: TPMLIB_GetState
      Src: /src/libtpms/tests/tpm2_createprimary.c:149,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:151,1
    - Dst: TPMLIB_Terminate
      Src: /src/libtpms/tests/tpm2_createprimary.c:156,1
    - Dst: TPMLIB_SetState
      Src: /src/libtpms/tests/tpm2_createprimary.c:158,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:160,1
    - Dst: TPMLIB_SetState
      Src: /src/libtpms/tests/tpm2_createprimary.c:164,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:166,1
    - Dst: TPMLIB_MainInit
      Src: /src/libtpms/tests/tpm2_createprimary.c:170,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:172,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_createprimary.c:178,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:181,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:188,1
    - Dst: memcmp
      Src: /src/libtpms/tests/tpm2_createprimary.c:195,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:196,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_createprimary.c:208,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:211,1
    - Dst: memcmp
      Src: /src/libtpms/tests/tpm2_createprimary.c:222,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:223,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_createprimary.c:231,1
    - Dst: free
      Src: /src/libtpms/tests/tpm2_createprimary.c:234,1
    - Dst: free
      Src: /src/libtpms/tests/tpm2_createprimary.c:235,1
    - Dst: TPMLIB_Terminate
      Src: /src/libtpms/tests/tpm2_createprimary.c:236,1
    - Dst: TPM_Free
      Src: /src/libtpms/tests/tpm2_createprimary.c:237,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 129
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 240
    functionName: main
    functionSourceFile: /src/libtpms/tests/tpm2_createprimary.c
    functionUses: 0
    functionsReached:
    - TPM_Free
    - TPMLIB_Process
    - TPMLIB_MainInit
    - TPMLIB_SetState
    - TPMLIB_ChooseTPMVersion
    - memcmp
    - TPMLIB_Terminate
    - fprintf
    - free
    - TPMLIB_GetState
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libtpms/tests/fuzz-main.c:16,1
    - Dst: fprintf
      Src: /src/libtpms/tests/fuzz-main.c:19,1
    - Dst: perror
      Src: /src/libtpms/tests/fuzz-main.c:21,1
    - Dst: fseek
      Src: /src/libtpms/tests/fuzz-main.c:24,1
    - Dst: ftell
      Src: /src/libtpms/tests/fuzz-main.c:25,1
    - Dst: fclose
      Src: /src/libtpms/tests/fuzz-main.c:27,1
    - Dst: perror
      Src: /src/libtpms/tests/fuzz-main.c:28,1
    - Dst: fseek
      Src: /src/libtpms/tests/fuzz-main.c:31,1
    - Dst: malloc
      Src: /src/libtpms/tests/fuzz-main.c:32,1
    - Dst: fread
      Src: /src/libtpms/tests/fuzz-main.c:33,1
    - Dst: fclose
      Src: /src/libtpms/tests/fuzz-main.c:34,1
    - Dst: perror
      Src: /src/libtpms/tests/fuzz-main.c:35,1
    - Dst: fclose
      Src: /src/libtpms/tests/fuzz-main.c:38,1
    - Dst: LLVMFuzzerTestOneInput
      Src: /src/libtpms/tests/fuzz-main.c:42,1
    - Dst: free
      Src: /src/libtpms/tests/fuzz-main.c:46,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 50
    functionName: main
    functionSourceFile: /src/libtpms/tests/fuzz-main.c
    functionUses: 0
    functionsReached:
    - fseek
    - ftell
    - LLVMFuzzerTestOneInput
    - fopen
    - fread
    - fclose
    - malloc
    - fprintf
    - free
    - perror
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libtpms/tests/fuzz.cc:16,1
    - Dst: assert
      Src: /src/libtpms/tests/fuzz.cc:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts:
    - condition: (false)
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/libtpms/tests/fuzz.cc
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: die
    functionSourceFile: /src/libtpms/tests/fuzz.cc
    functionUses: 0
    functionsReached:
    - fprintf
    - assert
    linkageType: ''
    returnType: void
    signature: void die(const char *msg)
  - 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: mytpm_io_init
    functionSourceFile: /src/libtpms/tests/fuzz.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT mytpm_io_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - locModif
    - tpm_number
    argTypes:
    - TPM_MODIFIER_INDICATOR*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: mytpm_io_getlocality
    functionSourceFile: /src/libtpms/tests/fuzz.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT mytpm_io_getlocality(TPM_MODIFIER_INDICATOR *locModif,\n
      \                                      uint32_t tpm_number)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - phyPres
    - tpm_number
    argTypes:
    - TPM_BOOL*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: mytpm_io_getphysicalpresence
    functionSourceFile: /src/libtpms/tests/fuzz.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT mytpm_io_getphysicalpresence(TPM_BOOL *phyPres,\n                                               uint32_t
      tpm_number)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libtpms/tests/fuzz.cc:49,1
    - Dst: assert
      Src: /src/libtpms/tests/fuzz.cc:52,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/tests/fuzz.cc:52,1
    - Dst: memcpy
      Src: /src/libtpms/tests/fuzz.cc:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - data
    - length
    - tpm_number
    - name
    argTypes:
    - unsigned char**
    - uint32_t*
    - uint32_t
    - char*
    assertStmts:
    - condition: (TPM_Malloc(data, permall_length) == TPM_SUCCESS)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/libtpms/tests/fuzz.cc
    constantsTouched: []
    func_position:
      end: 59
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 59
    functionName: mytpm_nvram_loaddata
    functionSourceFile: /src/libtpms/tests/fuzz.cc
    functionUses: 0
    functionsReached:
    - TPM_Malloc
    - assert
    - strcmp
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT mytpm_nvram_loaddata(unsigned char **data,\n                                       uint32_t
      *length,\n                                       uint32_t tpm_number,\n                                       const
      char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libtpms/tests/fuzz.cc:66,1
    - Dst: free
      Src: /src/libtpms/tests/fuzz.cc:67,1
    - Dst: assert
      Src: /src/libtpms/tests/fuzz.cc:69,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/tests/fuzz.cc:69,1
    - Dst: memcpy
      Src: /src/libtpms/tests/fuzz.cc:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - data
    - length
    - tpm_number
    - name
    argTypes:
    - unsigned char*
    - uint32_t
    - uint32_t
    - char*
    assertStmts:
    - condition: (TPM_Malloc(&permall, length) == TPM_SUCCESS)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/libtpms/tests/fuzz.cc
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: mytpm_nvram_storedata
    functionSourceFile: /src/libtpms/tests/fuzz.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - strcmp
    - TPM_Malloc
    - assert
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT mytpm_nvram_storedata(const unsigned char *data,\n                                        uint32_t
      length,\n                                        uint32_t tpm_number,\n                                        const
      char *name)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_RegisterCallbacks
      Src: /src/libtpms/tests/fuzz.cc:99,1
    - Dst: die
      Src: /src/libtpms/tests/fuzz.cc:101,1
    - Dst: TPMLIB_ChooseTPMVersion
      Src: /src/libtpms/tests/fuzz.cc:103,1
    - Dst: die
      Src: /src/libtpms/tests/fuzz.cc:105,1
    - Dst: TPMLIB_MainInit
      Src: /src/libtpms/tests/fuzz.cc:107,1
    - Dst: die
      Src: /src/libtpms/tests/fuzz.cc:109,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/fuzz.cc:111,1
    - Dst: die
      Src: /src/libtpms/tests/fuzz.cc:113,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/fuzz.cc:115,1
    - Dst: die
      Src: /src/libtpms/tests/fuzz.cc:117,1
    - Dst: TPMLIB_GetState
      Src: /src/libtpms/tests/fuzz.cc:120,1
    - Dst: die
      Src: /src/libtpms/tests/fuzz.cc:122,1
    - Dst: TPMLIB_GetState
      Src: /src/libtpms/tests/fuzz.cc:124,1
    - Dst: die
      Src: /src/libtpms/tests/fuzz.cc:126,1
    - Dst: TPMLIB_Terminate
      Src: /src/libtpms/tests/fuzz.cc:128,1
    - Dst: TPMLIB_SetState
      Src: /src/libtpms/tests/fuzz.cc:131,1
    - Dst: die
      Src: /src/libtpms/tests/fuzz.cc:133,1
    - Dst: TPMLIB_SetState
      Src: /src/libtpms/tests/fuzz.cc:135,1
    - Dst: die
      Src: /src/libtpms/tests/fuzz.cc:137,1
    - Dst: TPMLIB_MainInit
      Src: /src/libtpms/tests/fuzz.cc:139,1
    - Dst: die
      Src: /src/libtpms/tests/fuzz.cc:141,1
    - Dst: TPMLIB_Terminate
      Src: /src/libtpms/tests/fuzz.cc:143,1
    - Dst: TPM_Free
      Src: /src/libtpms/tests/fuzz.cc:144,1
    - Dst: TPM_Free
      Src: /src/libtpms/tests/fuzz.cc:145,1
    - Dst: TPM_Free
      Src: /src/libtpms/tests/fuzz.cc:146,1
    - Dst: TPM_Free
      Src: /src/libtpms/tests/fuzz.cc:147,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 151
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/libtpms/tests/fuzz.cc
    functionUses: 1
    functionsReached:
    - TPMLIB_RegisterCallbacks
    - TPM_Free
    - TPMLIB_Process
    - TPMLIB_MainInit
    - TPMLIB_SetState
    - TPMLIB_ChooseTPMVersion
    - TPMLIB_Terminate
    - die
    - TPMLIB_GetState
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/libtpms/tests/base64decode.c:16,1
    - Dst: printf
      Src: /src/libtpms/tests/base64decode.c:19,1
    - Dst: exit
      Src: /src/libtpms/tests/base64decode.c:20,1
    - Dst: fseek
      Src: /src/libtpms/tests/base64decode.c:23,1
    - Dst: ftell
      Src: /src/libtpms/tests/base64decode.c:24,1
    - Dst: fseek
      Src: /src/libtpms/tests/base64decode.c:25,1
    - Dst: malloc
      Src: /src/libtpms/tests/base64decode.c:27,1
    - Dst: fread
      Src: /src/libtpms/tests/base64decode.c:29,1
    - Dst: fclose
      Src: /src/libtpms/tests/base64decode.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 36
    functionName: read_file
    functionSourceFile: /src/libtpms/tests/base64decode.c
    functionUses: 0
    functionsReached:
    - fseek
    - ftell
    - fopen
    - fread
    - fclose
    - malloc
    - printf
    - exit
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char *read_file(const char *name, size_t *len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/tests/base64decode.c:48,1
    - Dst: read_file
      Src: /src/libtpms/tests/base64decode.c:52,1
    - Dst: read_file
      Src: /src/libtpms/tests/base64decode.c:53,1
    - Dst: TPMLIB_DecodeBlob
      Src: /src/libtpms/tests/base64decode.c:55,1
    - Dst: printf
      Src: /src/libtpms/tests/base64decode.c:59,1
    - Dst: printf
      Src: /src/libtpms/tests/base64decode.c:65,1
    - Dst: memcmp
      Src: /src/libtpms/tests/base64decode.c:72,1
    - Dst: printf
      Src: /src/libtpms/tests/base64decode.c:73,1
    - Dst: free
      Src: /src/libtpms/tests/base64decode.c:79,1
    - Dst: free
      Src: /src/libtpms/tests/base64decode.c:80,1
    - Dst: free
      Src: /src/libtpms/tests/base64decode.c:81,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 84
    functionName: main
    functionSourceFile: /src/libtpms/tests/base64decode.c
    functionUses: 0
    functionsReached:
    - read_file
    - TPMLIB_DecodeBlob
    - memcmp
    - printf
    - free
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:16,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:18,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:20,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:22,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - h
    - d
    - dlen
    argTypes:
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 23
    functionName: dump_array
    functionSourceFile: /src/libtpms/tests/tpm2_pcr_read.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dump_array(const char *h, const unsigned char *d, size_t dlen)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_ChooseTPMVersion
      Src: /src/libtpms/tests/tpm2_pcr_read.c:111,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:113,1
    - Dst: TPMLIB_MainInit
      Src: /src/libtpms/tests/tpm2_pcr_read.c:117,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:119,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_pcr_read.c:123,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:125,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_pcr_read.c:129,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:132,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:138,1
    - Dst: memcmp
      Src: /src/libtpms/tests/tpm2_pcr_read.c:143,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:144,1
    - Dst: dump_array
      Src: /src/libtpms/tests/tpm2_pcr_read.c:145,1
    - Dst: dump_array
      Src: /src/libtpms/tests/tpm2_pcr_read.c:146,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_pcr_read.c:163,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:166,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_pcr_read.c:178,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:181,1
    - Dst: memcmp
      Src: /src/libtpms/tests/tpm2_pcr_read.c:196,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:197,1
    - Dst: dump_array
      Src: /src/libtpms/tests/tpm2_pcr_read.c:198,1
    - Dst: dump_array
      Src: /src/libtpms/tests/tpm2_pcr_read.c:199,1
    - Dst: TPMLIB_GetState
      Src: /src/libtpms/tests/tpm2_pcr_read.c:204,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:206,1
    - Dst: TPMLIB_GetState
      Src: /src/libtpms/tests/tpm2_pcr_read.c:210,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:212,1
    - Dst: TPMLIB_Terminate
      Src: /src/libtpms/tests/tpm2_pcr_read.c:217,1
    - Dst: TPMLIB_SetState
      Src: /src/libtpms/tests/tpm2_pcr_read.c:219,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:221,1
    - Dst: TPMLIB_SetState
      Src: /src/libtpms/tests/tpm2_pcr_read.c:225,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:227,1
    - Dst: TPMLIB_MainInit
      Src: /src/libtpms/tests/tpm2_pcr_read.c:231,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:233,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_pcr_read.c:237,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:240,1
    - Dst: memcmp
      Src: /src/libtpms/tests/tpm2_pcr_read.c:246,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:247,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_pcr_read.c:258,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:261,1
    - Dst: memcmp
      Src: /src/libtpms/tests/tpm2_pcr_read.c:272,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:273,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_pcr_read.c:281,1
    - Dst: free
      Src: /src/libtpms/tests/tpm2_pcr_read.c:284,1
    - Dst: free
      Src: /src/libtpms/tests/tpm2_pcr_read.c:285,1
    - Dst: TPMLIB_Terminate
      Src: /src/libtpms/tests/tpm2_pcr_read.c:286,1
    - Dst: TPM_Free
      Src: /src/libtpms/tests/tpm2_pcr_read.c:287,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 118
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 290
    functionName: main
    functionSourceFile: /src/libtpms/tests/tpm2_pcr_read.c
    functionUses: 0
    functionsReached:
    - TPM_Free
    - TPMLIB_Process
    - TPMLIB_MainInit
    - TPMLIB_SetState
    - TPMLIB_ChooseTPMVersion
    - memcmp
    - TPMLIB_Terminate
    - fprintf
    - dump_array
    - free
    - TPMLIB_GetState
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_ChooseTPMVersion
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:55,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:57,1
    - Dst: TPMLIB_MainInit
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:61,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:63,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:67,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:69,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:90,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:93,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:99,1
    - Dst: memcpy
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:104,1
    - Dst: TPMLIB_SetBufferSize
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:119,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:121,1
    - Dst: malloc
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:126,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:128,1
    - Dst: memset
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:132,1
    - Dst: memcpy
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:133,1
    - Dst: memcpy
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:135,1
    - Dst: htons
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:138,1
    - Dst: memcpy
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:139,1
    - Dst: htonl
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:142,1
    - Dst: memcpy
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:143,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:145,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:147,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:153,1
    - Dst: memcpy
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:158,1
    - Dst: ntohl
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:159,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:160,1
    - Dst: ntohl
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:161,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:167,1
    - Dst: free
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:170,1
    - Dst: TPMLIB_Terminate
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:171,1
    - Dst: TPM_Free
      Src: /src/libtpms/tests/tpm2_cve-2023-1017.c:172,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 175
    functionName: main
    functionSourceFile: /src/libtpms/tests/tpm2_cve-2023-1017.c
    functionUses: 0
    functionsReached:
    - ntohl
    - TPM_Free
    - TPMLIB_Process
    - memcpy
    - TPMLIB_MainInit
    - free
    - TPMLIB_ChooseTPMVersion
    - memset
    - malloc
    - htonl
    - TPMLIB_Terminate
    - htons
    - fprintf
    - TPMLIB_SetBufferSize
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_ChooseTPMVersion
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:54,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:56,1
    - Dst: TPMLIB_MainInit
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:60,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:62,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:66,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:68,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:89,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:93,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:99,1
    - Dst: memcpy
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:104,1
    - Dst: memcpy
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:117,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:120,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:124,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:130,1
    - Dst: memcpy
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:135,1
    - Dst: ntohl
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:136,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:137,1
    - Dst: ntohl
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:138,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:144,1
    - Dst: TPMLIB_Terminate
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:147,1
    - Dst: TPM_Free
      Src: /src/libtpms/tests/tpm2_cve-2023-1018.c:148,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 151
    functionName: main
    functionSourceFile: /src/libtpms/tests/tpm2_cve-2023-1018.c
    functionUses: 0
    functionsReached:
    - ntohl
    - TPM_Free
    - TPMLIB_Process
    - memcpy
    - TPMLIB_MainInit
    - TPMLIB_ChooseTPMVersion
    - TPMLIB_Terminate
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_NewContext
      Src: /src/libtpms/tests/freebl_sha1flattensize.c:38,1
    - Dst: printf
      Src: /src/libtpms/tests/freebl_sha1flattensize.c:40,1
    - Dst: SHA1_Begin
      Src: /src/libtpms/tests/freebl_sha1flattensize.c:43,1
    - Dst: SHA1_FlattenSize
      Src: /src/libtpms/tests/freebl_sha1flattensize.c:45,1
    - Dst: printf
      Src: /src/libtpms/tests/freebl_sha1flattensize.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 53
    functionName: main
    functionSourceFile: /src/libtpms/tests/freebl_sha1flattensize.c
    functionUses: 0
    functionsReached:
    - SHA1_Begin
    - printf
    - SHA1_FlattenSize
    - SHA1_NewContext
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libtpms/tests/nvram_offsets.c:17,1
    - Dst: fprintf
      Src: /src/libtpms/tests/nvram_offsets.c:28,1
    - Dst: fprintf
      Src: /src/libtpms/tests/nvram_offsets.c:45,1
    - Dst: fprintf
      Src: /src/libtpms/tests/nvram_offsets.c:53,1
    - Dst: fprintf
      Src: /src/libtpms/tests/nvram_offsets.c:74,1
    - Dst: fprintf
      Src: /src/libtpms/tests/nvram_offsets.c:76,1
    - Dst: fprintf
      Src: /src/libtpms/tests/nvram_offsets.c:79,1
    - Dst: fprintf
      Src: /src/libtpms/tests/nvram_offsets.c:82,1
    - Dst: fprintf
      Src: /src/libtpms/tests/nvram_offsets.c:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 98
    functionName: main
    functionSourceFile: /src/libtpms/tests/nvram_offsets.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_SetDebugLevel
      Src: /src/libtpms/tests/tpm2_setprofile.c:427,1
    - Dst: TPMLIB_ChooseTPMVersion
      Src: /src/libtpms/tests/tpm2_setprofile.c:429,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_setprofile.c:431,1
    - Dst: TPMLIB_SetProfile
      Src: /src/libtpms/tests/tpm2_setprofile.c:435,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_setprofile.c:437,1
    - Dst: printf
      Src: /src/libtpms/tests/tpm2_setprofile.c:444,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_setprofile.c:447,1
    - Dst: TPMLIB_MainInit
      Src: /src/libtpms/tests/tpm2_setprofile.c:451,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_setprofile.c:453,1
    - Dst: TPMLIB_GetInfo
      Src: /src/libtpms/tests/tpm2_setprofile.c:461,1
    - Dst: strcmp
      Src: /src/libtpms/tests/tpm2_setprofile.c:462,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_setprofile.c:463,1
    - Dst: free
      Src: /src/libtpms/tests/tpm2_setprofile.c:470,1
    - Dst: memcpy
      Src: /src/libtpms/tests/tpm2_setprofile.c:478,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_setprofile.c:480,1
    - Dst: ntohl
      Src: /src/libtpms/tests/tpm2_setprofile.c:481,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_setprofile.c:483,1
    - Dst: memcpy
      Src: /src/libtpms/tests/tpm2_setprofile.c:488,1
    - Dst: ntohl
      Src: /src/libtpms/tests/tpm2_setprofile.c:489,1
    - Dst: memcmp
      Src: /src/libtpms/tests/tpm2_setprofile.c:489,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_setprofile.c:490,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_setprofile.c:493,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_setprofile.c:495,1
    - Dst: printf
      Src: /src/libtpms/tests/tpm2_setprofile.c:498,1
    - Dst: TPMLIB_Terminate
      Src: /src/libtpms/tests/tpm2_setprofile.c:501,1
    - Dst: printf
      Src: /src/libtpms/tests/tpm2_setprofile.c:502,1
    - Dst: free
      Src: /src/libtpms/tests/tpm2_setprofile.c:508,1
    - Dst: TPM_Free
      Src: /src/libtpms/tests/tpm2_setprofile.c:509,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 512
    functionName: main
    functionSourceFile: /src/libtpms/tests/tpm2_setprofile.c
    functionUses: 0
    functionsReached:
    - ntohl
    - TPM_Free
    - TPMLIB_Process
    - memcpy
    - TPMLIB_MainInit
    - TPMLIB_ChooseTPMVersion
    - TPMLIB_GetInfo
    - strcmp
    - memcmp
    - printf
    - TPMLIB_Terminate
    - fprintf
    - TPMLIB_SetDebugLevel
    - TPMLIB_SetProfile
    - free
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_WORDS
      Src: /src/libtpms/tests/object_size.c:52,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/tests/object_size.c:52,1
    - Dst: CRYPT_WORDS
      Src: /src/libtpms/tests/object_size.c:55,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/tests/object_size.c:55,1
    - Dst: CRYPT_WORDS
      Src: /src/libtpms/tests/object_size.c:58,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/tests/object_size.c:58,1
    - Dst: CRYPT_WORDS
      Src: /src/libtpms/tests/object_size.c:61,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/tests/object_size.c:61,1
    - Dst: ANY_OBJECT_Marshal
      Src: /src/libtpms/tests/object_size.c:90,1
    - Dst: fprintf
      Src: /src/libtpms/tests/object_size.c:92,1
    - Dst: fprintf
      Src: /src/libtpms/tests/object_size.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 101
    functionName: main
    functionSourceFile: /src/libtpms/tests/object_size.c
    functionUses: 0
    functionsReached:
    - fprintf
    - BITS_TO_BYTES
    - CRYPT_WORDS
    - ANY_OBJECT_Marshal
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_ChooseTPMVersion
      Src: /src/libtpms/tests/tpm2_selftest.c:31,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_selftest.c:33,1
    - Dst: TPMLIB_MainInit
      Src: /src/libtpms/tests/tpm2_selftest.c:37,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_selftest.c:39,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_selftest.c:43,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_selftest.c:46,1
    - Dst: TPMLIB_Process
      Src: /src/libtpms/tests/tpm2_selftest.c:50,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_selftest.c:53,1
    - Dst: memcmp
      Src: /src/libtpms/tests/tpm2_selftest.c:58,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_selftest.c:59,1
    - Dst: fprintf
      Src: /src/libtpms/tests/tpm2_selftest.c:63,1
    - Dst: TPMLIB_Terminate
      Src: /src/libtpms/tests/tpm2_selftest.c:68,1
    - Dst: TPM_Free
      Src: /src/libtpms/tests/tpm2_selftest.c:69,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 72
    functionName: main
    functionSourceFile: /src/libtpms/tests/tpm2_selftest.c
    functionUses: 0
    functionsReached:
    - TPM_Free
    - TPMLIB_Process
    - TPMLIB_MainInit
    - TPMLIB_ChooseTPMVersion
    - memcmp
    - TPMLIB_Terminate
    - fprintf
    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: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: TPMLIB_GetVersion
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t TPMLIB_GetVersion(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ClearAllCachedState
      Src: /src/libtpms/src/tpm_library.c:120,1
    - Dst: ClearAllCachedState
      Src: /src/libtpms/src/tpm_library.c:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ver
    argTypes:
    - TPMLIB_TPMVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 136
    functionName: TPMLIB_ChooseTPMVersion
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 7
    functionsReached:
    - ClearAllCachedState
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPMLIB_ChooseTPMVersion(TPMLIB_TPMVersion ver)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MainInit
      Src: /src/libtpms/src/tpm_library.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: TPMLIB_MainInit
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 7
    functionsReached:
    - MainInit
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPMLIB_MainInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Terminate
      Src: /src/libtpms/src/tpm_library.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: TPMLIB_Terminate
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 7
    functionsReached:
    - Terminate
    linkageType: ''
    returnType: void
    signature: void TPMLIB_Terminate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Process
      Src: /src/libtpms/src/tpm_library.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - respbuffer
    - resp_size
    - respbufsize
    - command
    - command_size
    argTypes:
    - unsigned char**
    - uint32_t*
    - uint32_t*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 172
    functionName: TPMLIB_Process
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 7
    functionsReached:
    - Process
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPMLIB_Process(unsigned char **respbuffer, uint32_t *resp_size,\n
      \                         uint32_t *respbufsize,\n\t\t          unsigned char
      *command, uint32_t command_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VolatileAllStore
      Src: /src/libtpms/src/tpm_library.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - buflen
    argTypes:
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: TPMLIB_VolatileAll_Store
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - VolatileAllStore
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPMLIB_VolatileAll_Store(unsigned char **buffer,\n                                    uint32_t
      *buflen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CancelCommand
      Src: /src/libtpms/src/tpm_library.c:190,1
    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: TPMLIB_CancelCommand
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - CancelCommand
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPMLIB_CancelCommand(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetTPMProperty
      Src: /src/libtpms/src/tpm_library.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - prop
    - result
    argTypes:
    - enum TPMLIB_TPMProperty
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 212
    functionName: TPMLIB_GetTPMProperty
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - GetTPMProperty
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPMLIB_GetTPMProperty(enum TPMLIB_TPMProperty prop,\n                                 int
      *result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetInfo
      Src: /src/libtpms/src/tpm_library.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - enum TPMLIB_InfoFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: TPMLIB_GetInfo
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 1
    functionsReached:
    - GetInfo
    linkageType: ''
    returnType: char
    signature: char *TPMLIB_GetInfo(enum TPMLIB_InfoFlags flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetState
      Src: /src/libtpms/src/tpm_library.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - st
    - buffer
    - buflen
    argTypes:
    - enum TPMLIB_StateType
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: TPMLIB_SetState
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 3
    functionsReached:
    - SetState
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPMLIB_SetState(enum TPMLIB_StateType st,\n                           const
      unsigned char *buffer, uint32_t buflen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetState
      Src: /src/libtpms/src/tpm_library.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - st
    - buffer
    - buflen
    argTypes:
    - enum TPMLIB_StateType
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: TPMLIB_GetState
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 3
    functionsReached:
    - GetState
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPMLIB_GetState(enum TPMLIB_StateType st,\n                           unsigned
      char **buffer, uint32_t *buflen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashStart
      Src: /src/libtpms/src/tpm_library.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: TPM_IO_Hash_Start
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - HashStart
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_IO_Hash_Start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashData
      Src: /src/libtpms/src/tpm_library.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - data_length
    argTypes:
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: TPM_IO_Hash_Data
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - HashData
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_IO_Hash_Data(const unsigned char *data, uint32_t data_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashEnd
      Src: /src/libtpms/src/tpm_library.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: TPM_IO_Hash_End
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - HashEnd
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_IO_Hash_End(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TpmEstablishedGet
      Src: /src/libtpms/src/tpm_library.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tpmEstablished
    argTypes:
    - TPM_BOOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: TPM_IO_TpmEstablished_Get
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - TpmEstablishedGet
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_IO_TpmEstablished_Get(TPM_BOOL *tpmEstablished)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TpmEstablishedReset
      Src: /src/libtpms/src/tpm_library.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: TPM_IO_TpmEstablished_Reset
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - TpmEstablishedReset
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_IO_TpmEstablished_Reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetBufferSize
      Src: /src/libtpms/src/tpm_library.c:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - wanted_size
    - min_size
    - max_size
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 263
    functionName: TPMLIB_SetBufferSize
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 1
    functionsReached:
    - SetBufferSize
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t TPMLIB_SetBufferSize(uint32_t wanted_size,\n                              uint32_t
      *min_size,\n                              uint32_t *max_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValidateState
      Src: /src/libtpms/src/tpm_library.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - flags
    argTypes:
    - enum TPMLIB_StateType
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: TPMLIB_ValidateState
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - ValidateState
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPMLIB_ValidateState(enum TPMLIB_StateType st,\n                                unsigned
      int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetProfile
      Src: /src/libtpms/src/tpm_library.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - profile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: TPMLIB_SetProfile
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 1
    functionsReached:
    - SetProfile
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPMLIB_SetProfile(const char *profile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WasManufactured
      Src: /src/libtpms/src/tpm_library.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: TPMLIB_WasManufactured
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - WasManufactured
    linkageType: ''
    returnType: TPM_BOOL
    signature: TPM_BOOL TPMLIB_WasManufactured(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: TPMLIB_GetCallbacks
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct libtpms_callbacks
    signature: struct libtpms_callbacks *TPMLIB_GetCallbacks(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtpms/src/tpm_library.c:299,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm_library.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - callbacks
    argTypes:
    - struct libtpms_callbacks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 303
    functionName: TPMLIB_RegisterCallbacks
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 1
    functionsReached:
    - memcpy
    - memset
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPMLIB_RegisterCallbacks(struct libtpms_callbacks *callbacks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 313
    functionName: is_base64ltr
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_base64ltr(char c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BIO_new
      Src: /src/libtpms/src/tpm_library.c:323,1
    - Dst: BIO_f_base64
      Src: /src/libtpms/src/tpm_library.c:323,1
    - Dst: BIO_new_mem_buf
      Src: /src/libtpms/src/tpm_library.c:328,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm_library.c:328,1
    - Dst: BIO_free
      Src: /src/libtpms/src/tpm_library.c:330,1
    - Dst: BIO_push
      Src: /src/libtpms/src/tpm_library.c:333,1
    - Dst: BIO_set_flags
      Src: /src/libtpms/src/tpm_library.c:334,1
    - Dst: malloc
      Src: /src/libtpms/src/tpm_library.c:336,1
    - Dst: TPMLIB_LogError
      Src: /src/libtpms/src/tpm_library.c:338,1
    - Dst: BIO_read
      Src: /src/libtpms/src/tpm_library.c:342,1
    - Dst: free
      Src: /src/libtpms/src/tpm_library.c:344,1
    - Dst: BIO_free_all
      Src: /src/libtpms/src/tpm_library.c:350,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - input
    - outputlen
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 353
    functionName: TPMLIB_OpenSSL_Base64Decode
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - BIO_set_flags
    - BIO_free_all
    - TPMLIB_LogError
    - BIO_read
    - strlen
    - BIO_new_mem_buf
    - BIO_free
    - BIO_push
    - BIO_new
    - malloc
    - BIO_f_base64
    - free
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *TPMLIB_OpenSSL_Base64Decode(char *input,\n                                                  unsigned
      int outputlen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_base64ltr
      Src: /src/libtpms/src/tpm_library.c:373,1
    - Dst: malloc
      Src: /src/libtpms/src/tpm_library.c:378,1
    - Dst: TPMLIB_LogError
      Src: /src/libtpms/src/tpm_library.c:380,1
    - Dst: is_base64ltr
      Src: /src/libtpms/src/tpm_library.c:392,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm_library.c:414,1
    - Dst: PL_Base64Decode
      Src: /src/libtpms/src/tpm_library.c:420,1
    - Dst: TPMLIB_OpenSSL_Base64Decode
      Src: /src/libtpms/src/tpm_library.c:424,1
    - Dst: free
      Src: /src/libtpms/src/tpm_library.c:428,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 3
    argNames:
    - start
    - end
    - length
    argTypes:
    - char*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 431
    functionName: TPMLIB_Base64Decode
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - TPMLIB_LogError
    - is_base64ltr
    - PL_Base64Decode
    - malloc
    - TPMLIB_OpenSSL_Base64Decode
    - fprintf
    - free
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *TPMLIB_Base64Decode(const char *start, const char *end,\n
      \                                         size_t *length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/libtpms/src/tpm_library.c:441,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm_library.c:443,1
    - Dst: isspace
      Src: /src/libtpms/src/tpm_library.c:444,1
    - Dst: strstr
      Src: /src/libtpms/src/tpm_library.c:446,1
    - Dst: TPMLIB_Base64Decode
      Src: /src/libtpms/src/tpm_library.c:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - stream
    - starttag
    - endtag
    - length
    argTypes:
    - char*
    - char*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 433
    functionDepth: 3
    functionLinenumber: 433
    functionLinenumberEnd: 452
    functionName: TPMLIB_GetPlaintext
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - isspace
    - strlen
    - TPMLIB_Base64Decode
    - strstr
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *TPMLIB_GetPlaintext(const char *stream,\n                                          const
      char *starttag,\n                                          const char *endtag,\n
      \                                         size_t *length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetPlaintext
      Src: /src/libtpms/src/tpm_library.c:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - buffer
    - type
    - result
    - result_len
    argTypes:
    - char*
    - enum TPMLIB_BlobType
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 454
    functionDepth: 4
    functionLinenumber: 454
    functionLinenumberEnd: 469
    functionName: TPMLIB_DecodeBlob
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 1
    functionsReached:
    - TPMLIB_GetPlaintext
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPMLIB_DecodeBlob(const char *buffer, enum TPMLIB_BlobType
      type,\n                             unsigned char **result, size_t *result_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: TPMLIB_SetDebugFD
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TPMLIB_SetDebugFD(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: TPMLIB_SetDebugLevel
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TPMLIB_SetDebugLevel(unsigned level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libtpms/src/tpm_library.c:483,1
    - Dst: strdup
      Src: /src/libtpms/src/tpm_library.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 494
    functionName: TPMLIB_SetDebugPrefix
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPMLIB_SetDebugPrefix(const char *prefix)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libtpms/src/tpm_library.c:506,1
    - Dst: vsnprintf
      Src: /src/libtpms/src/tpm_library.c:507,1
    - Dst: va_end
      Src: /src/libtpms/src/tpm_library.c:508,1
    - Dst: dprintf
      Src: /src/libtpms/src/tpm_library.c:527,1
    - Dst: dprintf
      Src: /src/libtpms/src/tpm_library.c:528,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 531
    functionName: TPMLIB_LogPrintf
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - dprintf
    - va_start
    - va_end
    - vsnprintf
    linkageType: ''
    returnType: int
    signature: int TPMLIB_LogPrintf(const char *format, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtpms/src/tpm_library.c:559,1
    - Dst: dprintf
      Src: /src/libtpms/src/tpm_library.c:561,1
    - Dst: va_start
      Src: /src/libtpms/src/tpm_library.c:564,1
    - Dst: vdprintf
      Src: /src/libtpms/src/tpm_library.c:565,1
    - Dst: va_end
      Src: /src/libtpms/src/tpm_library.c:566,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - indent
    - format
    argTypes:
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 567
    functionName: TPMLIB_LogPrintfA
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - va_start
    - vdprintf
    - memset
    - va_end
    - dprintf
    linkageType: ''
    returnType: void
    signature: void TPMLIB_LogPrintfA(unsigned int indent, const char *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libtpms/src/tpm_library.c:584,1
    - Dst: TPMLIB_LogPrintfA
      Src: /src/libtpms/src/tpm_library.c:587,1
    - Dst: TPMLIB_LogPrintfA
      Src: /src/libtpms/src/tpm_library.c:592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - indent
    - data
    - datalen
    argTypes:
    - unsigned int
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 594
    functionName: TPMLIB_LogArray
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - TPMLIB_LogPrintfA
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void TPMLIB_LogArray(unsigned int indent, const unsigned char *data,\n
      \                    size_t datalen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/libtpms/src/tpm_library.c:601,1
    - Dst: vasprintf
      Src: /src/libtpms/src/tpm_library.c:602,1
    - Dst: va_end
      Src: /src/libtpms/src/tpm_library.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - strp
    - fmt
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 606
    functionName: TPMLIB_asprintf
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - vasprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: int
    signature: int TPMLIB_asprintf(char **strp, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libtpms/src/tpm_library.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - st
    argTypes:
    - enum TPMLIB_StateType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 613
    functionName: ClearCachedState
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ClearCachedState(enum TPMLIB_StateType st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearCachedState
      Src: /src/libtpms/src/tpm_library.c:617,1
    - Dst: ClearCachedState
      Src: /src/libtpms/src/tpm_library.c:618,1
    - Dst: ClearCachedState
      Src: /src/libtpms/src/tpm_library.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 620
    functionName: ClearAllCachedState
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 1
    functionsReached:
    - ClearCachedState
    linkageType: ''
    returnType: void
    signature: void ClearAllCachedState(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libtpms/src/tpm_library.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - st
    - buffer
    - buflen
    argTypes:
    - enum TPMLIB_StateType
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 632
    functionName: SetCachedState
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: "void SetCachedState(enum TPMLIB_StateType st,\n                    unsigned
      char *buffer, uint32_t buflen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - st
    - buffer
    - buflen
    - is_empty_buffer
    argTypes:
    - enum TPMLIB_StateType
    - unsigned char**
    - uint32_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 644
    functionName: GetCachedState
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void GetCachedState(enum TPMLIB_StateType st,\n                    unsigned
      char **buffer, uint32_t *buflen,\n                    bool *is_empty_buffer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - st
    argTypes:
    - enum TPMLIB_StateType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 649
    functionName: HasCachedState
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HasCachedState(enum TPMLIB_StateType st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtpms/src/tpm_library.c:662,1
    - Dst: malloc
      Src: /src/libtpms/src/tpm_library.c:664,1
    - Dst: TPMLIB_LogError
      Src: /src/libtpms/src/tpm_library.c:666,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm_library.c:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - st
    - buffer
    - buflen
    - is_empty_buffer
    argTypes:
    - enum TPMLIB_StateType
    - unsigned char**
    - uint32_t*
    - bool*
    assertStmts:
    - condition: (*buflen != BUFLEN_EMPTY_BUFFER)
      pos:
        line_end: 661
        line_start: 661
        source_file: /src/libtpms/src/tpm_library.c
    constantsTouched: []
    func_position:
      end: 676
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 676
    functionName: CopyCachedState
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - malloc
    - TPMLIB_LogError
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT CopyCachedState(enum TPMLIB_StateType st,\n                           unsigned
      char **buffer, uint32_t *buflen,\n                           bool *is_empty_buffer)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - st
    argTypes:
    - enum TPMLIB_StateType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 689
    functionName: TPMLIB_StateTypeToName
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *TPMLIB_StateTypeToName(enum TPMLIB_StateType st)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libtpms/src/tpm_library.c:695,1
    - Dst: strcmp
      Src: /src/libtpms/src/tpm_library.c:697,1
    - Dst: strcmp
      Src: /src/libtpms/src/tpm_library.c:699,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 702
    functionName: TPMLIB_NameToStateType
    functionSourceFile: /src/libtpms/src/tpm_library.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: enum TPMLIB_StateType
    signature: enum TPMLIB_StateType TPMLIB_NameToStateType(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm_tpm2_interface.c:78,1
    - Dst: struct libtpms_callbacks*::tpm_nvram_loaddata
      Src: /src/libtpms/src/tpm_tpm2_interface.c:87,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - has_nvram_loaddata_callback
    argTypes:
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: _TPM2_CheckNVRAMFileExists
    functionSourceFile: /src/libtpms/src/tpm_tpm2_interface.c
    functionUses: 0
    functionsReached:
    - TPMLIB_GetCallbacks
    - free
    - struct libtpms_callbacks*::tpm_nvram_loaddata
    linkageType: ''
    returnType: TPM_BOOL
    signature: TPM_BOOL _TPM2_CheckNVRAMFileExists(bool *has_nvram_loaddata_callback)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm_tpm2_interface.c:112,1
    - Dst: struct libtpms_callbacks*::tpm_io_init
      Src: /src/libtpms/src/tpm_tpm2_interface.c:115,1
    - Dst: struct libtpms_callbacks*::tpm_nvram_init
      Src: /src/libtpms/src/tpm_tpm2_interface.c:121,1
    - Dst: _rpc__Signal_PowerOff
      Src: /src/libtpms/src/tpm_tpm2_interface.c:127,1
    - Dst: HasCachedState
      Src: /src/libtpms/src/tpm_tpm2_interface.c:129,1
    - Dst: _TPM2_CheckNVRAMFileExists
      Src: /src/libtpms/src/tpm_tpm2_interface.c:130,1
    - Dst: _plat__NVEnable
      Src: /src/libtpms/src/tpm_tpm2_interface.c:134,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm_tpm2_interface.c:136,1
    - Dst: TPM_Manufacture
      Src: /src/libtpms/src/tpm_tpm2_interface.c:139,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm_tpm2_interface.c:140,1
    - Dst: _plat__NVEnable_NVChipFile
      Src: /src/libtpms/src/tpm_tpm2_interface.c:148,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm_tpm2_interface.c:150,1
    - Dst: _rpc__Signal_PowerOn
      Src: /src/libtpms/src/tpm_tpm2_interface.c:154,1
    - Dst: _rpc__Signal_NvOn
      Src: /src/libtpms/src/tpm_tpm2_interface.c:156,1
    - Dst: NvCommit
      Src: /src/libtpms/src/tpm_tpm2_interface.c:164,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 168
    functionName: TPM2_MainInit
    functionSourceFile: /src/libtpms/src/tpm_tpm2_interface.c
    functionUses: 0
    functionsReached:
    - _plat__NVEnable
    - TPM_Manufacture
    - _TPM2_CheckNVRAMFileExists
    - _plat__NVEnable_NVChipFile
    - TPMLIB_GetCallbacks
    - struct libtpms_callbacks*::tpm_io_init
    - HasCachedState
    - NvCommit
    - struct libtpms_callbacks*::tpm_nvram_init
    - _rpc__Signal_PowerOn
    - TPMLIB_LogTPM2Error
    - _rpc__Signal_PowerOff
    - _rpc__Signal_NvOn
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM2_MainInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_TearDown
      Src: /src/libtpms/src/tpm_tpm2_interface.c:172,1
    - Dst: _rpc__Signal_PowerOff
      Src: /src/libtpms/src/tpm_tpm2_interface.c:174,1
    - Dst: ExpDCacheFree
      Src: /src/libtpms/src/tpm_tpm2_interface.c:175,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: TPM2_Terminate
    functionSourceFile: /src/libtpms/src/tpm_tpm2_interface.c
    functionUses: 0
    functionsReached:
    - ExpDCacheFree
    - free
    - _rpc__Signal_PowerOff
    - TPM_TearDown
    linkageType: ''
    returnType: void
    signature: void TPM2_Terminate(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm_tpm2_interface.c:191,1
    - Dst: struct libtpms_callbacks*::tpm_io_getlocality
      Src: /src/libtpms/src/tpm_tpm2_interface.c:197,1
    - Dst: realloc
      Src: /src/libtpms/src/tpm_tpm2_interface.c:208,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm_tpm2_interface.c:210,1
    - Dst: _rpc__Signal_CancelOff
      Src: /src/libtpms/src/tpm_tpm2_interface.c:223,1
    - Dst: _rpc__Send_Command
      Src: /src/libtpms/src/tpm_tpm2_interface.c:225,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm_tpm2_interface.c:231,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm_tpm2_interface.c:238,1
    - Dst: TPMLIB_LogArray
      Src: /src/libtpms/src/tpm_tpm2_interface.c:240,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - respbuffer
    - resp_size
    - respbufsize
    - command
    - command_size
    argTypes:
    - unsigned char**
    - uint32_t*
    - uint32_t*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 244
    functionName: TPM2_Process
    functionSourceFile: /src/libtpms/src/tpm_tpm2_interface.c
    functionUses: 0
    functionsReached:
    - _rpc__Send_Command
    - memcpy
    - struct libtpms_callbacks*::tpm_io_getlocality
    - TPMLIB_GetCallbacks
    - realloc
    - TPMLIB_LogTPM2Error
    - _rpc__Signal_CancelOff
    - TPMLIB_LogArray
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM2_Process(unsigned char **respbuffer, uint32_t *resp_size,\n
      \                              uint32_t *respbufsize,\n                               unsigned
      char *command, uint32_t command_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/libtpms/src/tpm_tpm2_interface.c:265,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:267,1
    - Dst: PERSISTENT_ALL_Marshal
      Src: /src/libtpms/src/tpm_tpm2_interface.c:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - buf
    - buflen
    argTypes:
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 282
    functionName: TPM2_PersistentAllStore
    functionSourceFile: /src/libtpms/src/tpm_tpm2_interface.c
    functionUses: 0
    functionsReached:
    - PERSISTENT_ALL_Marshal
    - free
    - realloc
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM2_PersistentAllStore(unsigned char **buf,\n                                   uint32_t
      *buflen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/libtpms/src/tpm_tpm2_interface.c:293,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm_tpm2_interface.c:295,1
    - Dst: VolatileSave
      Src: /src/libtpms/src/tpm_tpm2_interface.c:302,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - buffer
    - buflen
    argTypes:
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 312
    functionName: TPM2_VolatileAllStore
    functionSourceFile: /src/libtpms/src/tpm_tpm2_interface.c
    functionUses: 0
    functionsReached:
    - VolatileSave
    - malloc
    - TPMLIB_LogTPM2Error
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM2_VolatileAllStore(unsigned char **buffer,\n                                        uint32_t
      *buflen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _rpc__Signal_CancelOn
      Src: /src/libtpms/src/tpm_tpm2_interface.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: TPM2_CancelCommand
    functionSourceFile: /src/libtpms/src/tpm_tpm2_interface.c
    functionUses: 0
    functionsReached:
    - _rpc__Signal_CancelOn
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM2_CancelCommand(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - prop
    - result
    argTypes:
    - enum TPMLIB_TPMProperty
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 352
    functionName: TPM2_GetTPMProperty
    functionSourceFile: /src/libtpms/src/tpm_tpm2_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM2_GetTPMProperty(enum TPMLIB_TPMProperty prop,\n                                      int
      *result)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/libtpms/src/tpm_tpm2_interface.c:430,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:436,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:438,1
    - Dst: _plat__GetTpmFirmwareVersionHigh
      Src: /src/libtpms/src/tpm_tpm2_interface.c:443,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:447,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:449,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:452,1
    - Dst: snprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:459,1
    - Dst: snprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:465,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:471,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:474,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:477,1
    - Dst: RuntimeAlgorithmPrint
      Src: /src/libtpms/src/tpm_tpm2_interface.c:485,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:489,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:495,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:498,1
    - Dst: RuntimeCommandsPrint
      Src: /src/libtpms/src/tpm_tpm2_interface.c:506,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:510,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:516,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:519,1
    - Dst: RuntimeAttributesGet
      Src: /src/libtpms/src/tpm_tpm2_interface.c:527,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:531,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:537,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:540,1
    - Dst: RuntimeProfileGetJSON
      Src: /src/libtpms/src/tpm_tpm2_interface.c:545,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:548,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:550,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:553,1
    - Dst: RuntimeProfileGetByIndex
      Src: /src/libtpms/src/tpm_tpm2_interface.c:566,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:567,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:572,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:576,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:577,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:582,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:585,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:588,1
    - Dst: TPMLIB_asprintf
      Src: /src/libtpms/src/tpm_tpm2_interface.c:595,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:599,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:600,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:601,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:602,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:604,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:606,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:608,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:609,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:610,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:611,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:612,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:613,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:618,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 166
    argCount: 1
    argNames:
    - flags
    argTypes:
    - enum TPMLIB_InfoFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 621
    functionName: TPM2_GetInfo
    functionSourceFile: /src/libtpms/src/tpm_tpm2_interface.c
    functionUses: 0
    functionsReached:
    - RuntimeAttributesGet
    - strdup
    - RuntimeCommandsPrint
    - RuntimeProfileGetJSON
    - RuntimeProfileGetByIndex
    - snprintf
    - TPMLIB_asprintf
    - RuntimeAlgorithmPrint
    - _plat__GetTpmFirmwareVersionHigh
    - free
    linkageType: ''
    returnType: char
    signature: char *TPM2_GetInfo(enum TPMLIB_InfoFlags flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - wanted_size
    - min_size
    - max_size
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 648
    functionName: TPM2_SetBufferSize
    functionSourceFile: /src/libtpms/src/tpm_tpm2_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t TPM2_SetBufferSize(uint32_t wanted_size,\n                                   uint32_t
      *min_size,\n                                   uint32_t *max_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2_SetBufferSize
      Src: /src/libtpms/src/tpm_tpm2_interface.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 653
    functionName: TPM2_GetBufferSize
    functionSourceFile: /src/libtpms/src/tpm_tpm2_interface.c
    functionUses: 0
    functionsReached:
    - TPM2_SetBufferSize
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t TPM2_GetBufferSize(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtpms/src/tpm_tpm2_interface.c:672,1
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm_tpm2_interface.c:675,1
    - Dst: struct libtpms_callbacks*::tpm_nvram_init
      Src: /src/libtpms/src/tpm_tpm2_interface.c:678,1
    - Dst: struct libtpms_callbacks*::tpm_nvram_loaddata
      Src: /src/libtpms/src/tpm_tpm2_interface.c:690,1
    - Dst: PERSISTENT_ALL_Unmarshal
      Src: /src/libtpms/src/tpm_tpm2_interface.c:702,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:703,1
    - Dst: VolatileLoad
      Src: /src/libtpms/src/tpm_tpm2_interface.c:708,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - st
    - LIBTPMS_ATTR_UNUSED
    argTypes:
    - enum TPMLIB_StateType
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 714
    functionName: TPM2_ValidateState
    functionSourceFile: /src/libtpms/src/tpm_tpm2_interface.c
    functionUses: 0
    functionsReached:
    - memcpy
    - TPMLIB_GetCallbacks
    - struct libtpms_callbacks*::tpm_nvram_init
    - PERSISTENT_ALL_Unmarshal
    - VolatileLoad
    - struct libtpms_callbacks*::tpm_nvram_loaddata
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM2_ValidateState(enum TPMLIB_StateType st,\n                                     unsigned
      int flags LIBTPMS_ATTR_UNUSED)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _rpc__Signal_IsPowerOn
      Src: /src/libtpms/src/tpm_tpm2_interface.c:727,1
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm_tpm2_interface.c:728,1
    - Dst: CopyCachedState
      Src: /src/libtpms/src/tpm_tpm2_interface.c:731,1
    - Dst: struct libtpms_callbacks*::tpm_nvram_init
      Src: /src/libtpms/src/tpm_tpm2_interface.c:736,1
    - Dst: TPM_NVRAM_LoadData
      Src: /src/libtpms/src/tpm_tpm2_interface.c:741,1
    - Dst: TPMLIB_StateTypeToName
      Src: /src/libtpms/src/tpm_tpm2_interface.c:742,1
    - Dst: TPM2_PersistentAllStore
      Src: /src/libtpms/src/tpm_tpm2_interface.c:752,1
    - Dst: TPM2_VolatileAllStore
      Src: /src/libtpms/src/tpm_tpm2_interface.c:755,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - st
    - buffer
    - buflen
    argTypes:
    - enum TPMLIB_StateType
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 722
    functionDepth: 2
    functionLinenumber: 722
    functionLinenumberEnd: 765
    functionName: TPM2_GetState
    functionSourceFile: /src/libtpms/src/tpm_tpm2_interface.c
    functionUses: 0
    functionsReached:
    - CopyCachedState
    - TPMLIB_GetCallbacks
    - TPM_NVRAM_LoadData
    - struct libtpms_callbacks*::tpm_nvram_init
    - TPM2_PersistentAllStore
    - TPM2_VolatileAllStore
    - TPMLIB_StateTypeToName
    - _rpc__Signal_IsPowerOn
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM2_GetState(enum TPMLIB_StateType st,\n                                unsigned
      char **buffer, uint32_t *buflen)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SetCachedState
      Src: /src/libtpms/src/tpm_tpm2_interface.c:788,1
    - Dst: _rpc__Signal_IsPowerOn
      Src: /src/libtpms/src/tpm_tpm2_interface.c:792,1
    - Dst: malloc
      Src: /src/libtpms/src/tpm_tpm2_interface.c:796,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm_tpm2_interface.c:803,1
    - Dst: PERSISTENT_ALL_Unmarshal
      Src: /src/libtpms/src/tpm_tpm2_interface.c:810,1
    - Dst: TPM2_GetState
      Src: /src/libtpms/src/tpm_tpm2_interface.c:814,1
    - Dst: PERSISTENT_ALL_Unmarshal
      Src: /src/libtpms/src/tpm_tpm2_interface.c:818,1
    - Dst: VolatileState_Load
      Src: /src/libtpms/src/tpm_tpm2_interface.c:820,1
    - Dst: ClearAllCachedState
      Src: /src/libtpms/src/tpm_tpm2_interface.c:830,1
    - Dst: SetCachedState
      Src: /src/libtpms/src/tpm_tpm2_interface.c:835,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:837,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:839,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 3
    argNames:
    - st
    - buffer
    - buflen
    argTypes:
    - enum TPMLIB_StateType
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 777
    functionDepth: 3
    functionLinenumber: 777
    functionLinenumberEnd: 842
    functionName: TPM2_SetState
    functionSourceFile: /src/libtpms/src/tpm_tpm2_interface.c
    functionUses: 0
    functionsReached:
    - memcpy
    - TPM2_GetState
    - SetCachedState
    - VolatileState_Load
    - malloc
    - PERSISTENT_ALL_Unmarshal
    - ClearAllCachedState
    - free
    - _rpc__Signal_IsPowerOn
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM2_SetState(enum TPMLIB_StateType st,\n                                const
      unsigned char *buffer, uint32_t buflen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _rpc__Signal_IsPowerOn
      Src: /src/libtpms/src/tpm_tpm2_interface.c:849,1
    - Dst: RuntimeProfileTest
      Src: /src/libtpms/src/tpm_tpm2_interface.c:854,1
    - Dst: strdup
      Src: /src/libtpms/src/tpm_tpm2_interface.c:858,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm2_interface.c:863,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - profile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 867
    functionName: TPM2_SetProfile
    functionSourceFile: /src/libtpms/src/tpm_tpm2_interface.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - RuntimeProfileTest
    - _rpc__Signal_IsPowerOn
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM2_SetProfile(const char *profile)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 872
    functionName: TPM2_WasManufactured
    functionSourceFile: /src/libtpms/src/tpm_tpm2_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_BOOL
    signature: TPM_BOOL TPM2_WasManufactured(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_MainInit
      Src: /src/libtpms/src/tpm_tpm12_interface.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: TPM12_MainInit
    functionSourceFile: /src/libtpms/src/tpm_tpm12_interface.c
    functionUses: 0
    functionsReached:
    - TPM_MainInit
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM12_MainInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Global_Delete
      Src: /src/libtpms/src/tpm_tpm12_interface.c:65,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm12_interface.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: TPM12_Terminate
    functionSourceFile: /src/libtpms/src/tpm_tpm12_interface.c
    functionUses: 0
    functionsReached:
    - TPM_Global_Delete
    - free
    linkageType: ''
    returnType: void
    signature: void TPM12_Terminate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ProcessA
      Src: /src/libtpms/src/tpm_tpm12_interface.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - respbuffer
    - resp_size
    - respbufsize
    - command
    - command_size
    argTypes:
    - unsigned char**
    - uint32_t*
    - uint32_t*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: TPM12_Process
    functionSourceFile: /src/libtpms/src/tpm_tpm12_interface.c
    functionUses: 0
    functionsReached:
    - TPM_ProcessA
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM12_Process(unsigned char **respbuffer, uint32_t *resp_size,\n
      \                               uint32_t *respbufsize,\n                                unsigned
      char *command, uint32_t command_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm_tpm12_interface.c:84,1
    - Dst: assert
      Src: /src/libtpms/src/tpm_tpm12_interface.c:88,1
    - Dst: TPM_VolatileAll_Store
      Src: /src/libtpms/src/tpm_tpm12_interface.c:91,1
    - Dst: TPM_Sbuffer_GetAll
      Src: /src/libtpms/src/tpm_tpm12_interface.c:95,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm_tpm12_interface.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buffer
    - buflen
    argTypes:
    - unsigned char**
    - uint32_t*
    assertStmts:
    - condition: (tpm_instances[0] != NULL)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/libtpms/src/tpm_tpm12_interface.c
    constantsTouched: []
    func_position:
      end: 103
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 103
    functionName: TPM12_VolatileAllStore
    functionSourceFile: /src/libtpms/src/tpm_tpm12_interface.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_GetAll
    - TPM_Sbuffer_Delete
    - TPM_VolatileAll_Store
    - assert
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM12_VolatileAllStore(unsigned char **buffer,\n                                         uint32_t
      *buflen)"
  - 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: TPM12_CancelCommand
    functionSourceFile: /src/libtpms/src/tpm_tpm12_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM12_CancelCommand(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/libtpms/src/tpm_tpm12_interface.c:162,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - prop
    - result
    argTypes:
    - enum TPMLIB_TPMProperty
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 178
    functionName: TPM12_GetTPMProperty
    functionSourceFile: /src/libtpms/src/tpm_tpm12_interface.c
    functionUses: 0
    functionsReached:
    - ROUNDUP
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM12_GetTPMProperty(enum TPMLIB_TPMProperty prop,\n                                int
      *result)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/libtpms/src/tpm_tpm12_interface.c:204,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm_tpm12_interface.c:210,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm12_interface.c:212,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm_tpm12_interface.c:218,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm12_interface.c:221,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm_tpm12_interface.c:228,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm12_interface.c:230,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm12_interface.c:235,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm12_interface.c:236,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - flags
    argTypes:
    - enum TPMLIB_InfoFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 239
    functionName: TPM12_GetInfo
    functionSourceFile: /src/libtpms/src/tpm_tpm12_interface.c
    functionUses: 0
    functionsReached:
    - asprintf
    - strdup
    - free
    linkageType: ''
    returnType: char
    signature: char *TPM12_GetInfo(enum TPMLIB_InfoFlags flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - wanted_size
    - min_size
    - max_size
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 263
    functionName: TPM12_SetBufferSize
    functionSourceFile: /src/libtpms/src/tpm_tpm12_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t TPM12_SetBufferSize(uint32_t wanted_size,\n                                    uint32_t
      *min_size,\n                                    uint32_t *max_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM12_SetBufferSize
      Src: /src/libtpms/src/tpm_tpm12_interface.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: TPM12_GetBufferSize
    functionSourceFile: /src/libtpms/src/tpm_tpm12_interface.c
    functionUses: 0
    functionsReached:
    - TPM12_SetBufferSize
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t TPM12_GetBufferSize(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm_tpm12_interface.c:285,1
    - Dst: struct libtpms_callbacks*::tpm_nvram_init
      Src: /src/libtpms/src/tpm_tpm12_interface.c:288,1
    - Dst: TPM_Global_Init
      Src: /src/libtpms/src/tpm_tpm12_interface.c:294,1
    - Dst: TPM_PermanentAll_NVLoad
      Src: /src/libtpms/src/tpm_tpm12_interface.c:299,1
    - Dst: HasCachedState
      Src: /src/libtpms/src/tpm_tpm12_interface.c:306,1
    - Dst: TPM_VolatileAll_NVLoad
      Src: /src/libtpms/src/tpm_tpm12_interface.c:313,1
    - Dst: TPM_SaveState_NVLoad
      Src: /src/libtpms/src/tpm_tpm12_interface.c:316,1
    - Dst: TPM_Global_Delete
      Src: /src/libtpms/src/tpm_tpm12_interface.c:321,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - st
    - LIBTPMS_ATTR_UNUSED
    argTypes:
    - enum TPMLIB_StateType
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 324
    functionName: TPM12_ValidateState
    functionSourceFile: /src/libtpms/src/tpm_tpm12_interface.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVLoad
    - TPM_SaveState_NVLoad
    - TPMLIB_GetCallbacks
    - HasCachedState
    - TPM_Global_Delete
    - struct libtpms_callbacks*::tpm_nvram_init
    - TPM_Global_Init
    - TPM_VolatileAll_NVLoad
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM12_ValidateState(enum TPMLIB_StateType st,\n                                      unsigned
      int flags LIBTPMS_ATTR_UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_PermanentAll_Store
      Src: /src/libtpms/src/tpm_tpm12_interface.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sbuffer
    - tpm_state
    argTypes:
    - TPM_STORE_BUFFER*
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 333
    functionName: _TPM_PermanentAll_Store
    functionSourceFile: /src/libtpms/src/tpm_tpm12_interface.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT _TPM_PermanentAll_Store(TPM_STORE_BUFFER *sbuffer,\n                                          tpm_state_t
      *tpm_state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CopyCachedState
      Src: /src/libtpms/src/tpm_tpm12_interface.c:351,1
    - Dst: TPM_PermanentAll_NVLoad
      Src: /src/libtpms/src/tpm_tpm12_interface.c:354,1
    - Dst: SetCachedState
      Src: /src/libtpms/src/tpm_tpm12_interface.c:358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 362
    functionName: TPM_PermanentAll_NVLoad_Preserve
    functionSourceFile: /src/libtpms/src/tpm_tpm12_interface.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVLoad
    - CopyCachedState
    - SetCachedState
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_PermanentAll_NVLoad_Preserve(tpm_state_t *tpm_state)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm_tpm12_interface.c:379,1
    - Dst: CopyCachedState
      Src: /src/libtpms/src/tpm_tpm12_interface.c:383,1
    - Dst: struct libtpms_callbacks*::tpm_nvram_init
      Src: /src/libtpms/src/tpm_tpm12_interface.c:388,1
    - Dst: TPM_NVRAM_LoadData
      Src: /src/libtpms/src/tpm_tpm12_interface.c:392,1
    - Dst: TPMLIB_StateTypeToName
      Src: /src/libtpms/src/tpm_tpm12_interface.c:393,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm_tpm12_interface.c:400,1
    - Dst: _TPM_PermanentAll_Store
      Src: /src/libtpms/src/tpm_tpm12_interface.c:404,1
    - Dst: TPM_VolatileAll_Store
      Src: /src/libtpms/src/tpm_tpm12_interface.c:407,1
    - Dst: TPM_SaveState_Store
      Src: /src/libtpms/src/tpm_tpm12_interface.c:410,1
    - Dst: TPM_Sbuffer_GetAll
      Src: /src/libtpms/src/tpm_tpm12_interface.c:416,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm_tpm12_interface.c:418,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - st
    - buffer
    - buflen
    argTypes:
    - enum TPMLIB_StateType
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 424
    functionName: TPM12_GetState
    functionSourceFile: /src/libtpms/src/tpm_tpm12_interface.c
    functionUses: 0
    functionsReached:
    - TPM_SaveState_Store
    - CopyCachedState
    - TPM_Sbuffer_GetAll
    - TPMLIB_GetCallbacks
    - TPM_Sbuffer_Delete
    - TPM_VolatileAll_Store
    - TPM_NVRAM_LoadData
    - struct libtpms_callbacks*::tpm_nvram_init
    - TPMLIB_StateTypeToName
    - _TPM_PermanentAll_Store
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM12_GetState(enum TPMLIB_StateType st,\n                                 unsigned
      char **buffer, uint32_t *buflen)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SetCachedState
      Src: /src/libtpms/src/tpm_tpm12_interface.c:445,1
    - Dst: malloc
      Src: /src/libtpms/src/tpm_tpm12_interface.c:453,1
    - Dst: TPMLIB_LogError
      Src: /src/libtpms/src/tpm_tpm12_interface.c:455,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm_tpm12_interface.c:462,1
    - Dst: malloc
      Src: /src/libtpms/src/tpm_tpm12_interface.c:464,1
    - Dst: TPMLIB_LogError
      Src: /src/libtpms/src/tpm_tpm12_interface.c:466,1
    - Dst: TPM_Global_Init
      Src: /src/libtpms/src/tpm_tpm12_interface.c:473,1
    - Dst: TPM_PermanentAll_Load
      Src: /src/libtpms/src/tpm_tpm12_interface.c:482,1
    - Dst: TPM_PermanentAll_NVLoad_Preserve
      Src: /src/libtpms/src/tpm_tpm12_interface.c:486,1
    - Dst: TPM_VolatileAll_Load
      Src: /src/libtpms/src/tpm_tpm12_interface.c:488,1
    - Dst: TPM_PermanentAll_NVLoad_Preserve
      Src: /src/libtpms/src/tpm_tpm12_interface.c:491,1
    - Dst: TPM_SaveState_Load
      Src: /src/libtpms/src/tpm_tpm12_interface.c:493,1
    - Dst: ClearAllCachedState
      Src: /src/libtpms/src/tpm_tpm12_interface.c:497,1
    - Dst: SetCachedState
      Src: /src/libtpms/src/tpm_tpm12_interface.c:502,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm12_interface.c:504,1
    - Dst: TPM_Global_Delete
      Src: /src/libtpms/src/tpm_tpm12_interface.c:507,1
    - Dst: free
      Src: /src/libtpms/src/tpm_tpm12_interface.c:508,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 3
    argNames:
    - st
    - buffer
    - buflen
    argTypes:
    - enum TPMLIB_StateType
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 511
    functionName: TPM12_SetState
    functionSourceFile: /src/libtpms/src/tpm_tpm12_interface.c
    functionUses: 0
    functionsReached:
    - TPM_SaveState_Load
    - memcpy
    - TPMLIB_LogError
    - TPM_PermanentAll_NVLoad_Preserve
    - SetCachedState
    - TPM_VolatileAll_Load
    - malloc
    - TPM_PermanentAll_Load
    - TPM_Global_Init
    - ClearAllCachedState
    - TPM_Global_Delete
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM12_SetState(enum TPMLIB_StateType st,\n                                 const
      unsigned char *buffer, uint32_t buflen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - profile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: TPM12_SetProfile
    functionSourceFile: /src/libtpms/src/tpm_tpm12_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM12_SetProfile(const char *profile)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 521
    functionName: TPM12_WasManufactured
    functionSourceFile: /src/libtpms/src/tpm_tpm12_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_BOOL
    signature: TPM_BOOL TPM12_WasManufactured(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm_tpm12_tis.c:75,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm_tpm12_tis.c:76,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_tpm12_tis.c:83,1
    - Dst: TPM_TransportSessions_TerminateHandle
      Src: /src/libtpms/src/tpm_tpm12_tis.c:99,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm_tpm12_tis.c:108,1
    - Dst: TPM_PCR_Store
      Src: /src/libtpms/src/tpm_tpm12_tis.c:117,1
    - Dst: TPM_PCR_Store
      Src: /src/libtpms/src/tpm_tpm12_tis.c:118,1
    - Dst: TPM_PCR_Store
      Src: /src/libtpms/src/tpm_tpm12_tis.c:119,1
    - Dst: TPM_PCR_Store
      Src: /src/libtpms/src/tpm_tpm12_tis.c:120,1
    - Dst: TPM_PCR_Store
      Src: /src/libtpms/src/tpm_tpm12_tis.c:121,1
    - Dst: TPM_PCR_Store
      Src: /src/libtpms/src/tpm_tpm12_tis.c:122,1
    - Dst: TPM_SHA1InitCmd
      Src: /src/libtpms/src/tpm_tpm12_tis.c:126,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm_tpm12_tis.c:128,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_tpm12_tis.c:138,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_tpm12_tis.c:139,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 143
    functionName: TPM12_IO_Hash_Start
    functionSourceFile: /src/libtpms/src/tpm_tpm12_tis.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_SetCapability_Flag
    - TPM_TransportSessions_TerminateHandle
    - TPM_PCR_Store
    - printf
    - TPM_SHA1InitCmd
    - TPM_Digest_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM12_IO_Hash_Start(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm_tpm12_tis.c:153,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_tpm12_tis.c:158,1
    - Dst: TPM_SHA1UpdateCmd
      Src: /src/libtpms/src/tpm_tpm12_tis.c:163,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_tpm12_tis.c:172,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_tpm12_tis.c:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - data
    - data_length
    argTypes:
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 177
    functionName: TPM12_IO_Hash_Data
    functionSourceFile: /src/libtpms/src/tpm_tpm12_tis.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1UpdateCmd
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM12_IO_Hash_Data(const unsigned char *data,\n\t\t\t      uint32_t
      data_length)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm_tpm12_tis.c:188,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_tpm12_tis.c:191,1
    - Dst: TPM_SHA1FinalCmd
      Src: /src/libtpms/src/tpm_tpm12_tis.c:198,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm_tpm12_tis.c:205,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm_tpm12_tis.c:207,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_tpm12_tis.c:221,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_tpm12_tis.c:222,1
    - Dst: TPM_SHA1Delete
      Src: /src/libtpms/src/tpm_tpm12_tis.c:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 227
    functionName: TPM12_IO_Hash_End
    functionSourceFile: /src/libtpms/src/tpm_tpm12_tis.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1
    - TPM_SHA1FinalCmd
    - printf
    - TPM_SHA1Delete
    - TPM_Digest_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM12_IO_Hash_End(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm_tpm12_tis.c:244,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_tpm12_tis.c:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tpmEstablished
    argTypes:
    - TPM_BOOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: TPM12_IO_TpmEstablished_Get
    functionSourceFile: /src/libtpms/src/tpm_tpm12_tis.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM12_IO_TpmEstablished_Get(TPM_BOOL *tpmEstablished)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_IO_GetLocality
      Src: /src/libtpms/src/tpm_tpm12_tis.c:258,1
    - Dst: TPM_Locality_Check
      Src: /src/libtpms/src/tpm_tpm12_tis.c:264,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm_tpm12_tis.c:269,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm_tpm12_tis.c:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 280
    functionName: TPM12_IO_TpmEstablished_Reset
    functionSourceFile: /src/libtpms/src/tpm_tpm12_tis.c
    functionUses: 0
    functionsReached:
    - TPM_SetCapability_Flag
    - TPM_PermanentAll_NVStore
    - TPM_IO_GetLocality
    - TPM_Locality_Check
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM12_IO_TpmEstablished_Reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: printf
    functionSourceFile: /src/libtpms/src/tpm_debug.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: printf(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: tpm_swallow_printf_args
    functionSourceFile: /src/libtpms/src/tpm_debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tpm_swallow_printf_args(const char *format, ...)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_LogPrintf
      Src: /src/libtpms/src/tpm_debug.c:63,1
    - Dst: TPMLIB_LogPrintf
      Src: /src/libtpms/src/tpm_debug.c:66,1
    - Dst: TPMLIB_LogPrintf
      Src: /src/libtpms/src/tpm_debug.c:71,1
    - Dst: TPMLIB_LogPrintf
      Src: /src/libtpms/src/tpm_debug.c:77,1
    - Dst: TPMLIB_LogPrintf
      Src: /src/libtpms/src/tpm_debug.c:84,1
    - Dst: TPMLIB_LogPrintf
      Src: /src/libtpms/src/tpm_debug.c:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - string
    - buff
    - buflen
    argTypes:
    - char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 96
    functionName: TPM_PrintFourLimit
    functionSourceFile: /src/libtpms/src/tpm_debug.c
    functionUses: 0
    functionsReached:
    - TPMLIB_LogPrintf
    linkageType: ''
    returnType: void
    signature: "void TPM_PrintFourLimit(const char *string,\n                        const
      unsigned char *buff, size_t buflen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm_debug.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - string
    - buff
    argTypes:
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: TPM_PrintFour
    functionSourceFile: /src/libtpms/src/tpm_debug.c
    functionUses: 0
    functionsReached:
    - TPM_PrintFourLimit
    linkageType: ''
    returnType: void
    signature: void TPM_PrintFour(const char *string, const unsigned char* buff)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_LogPrintf
      Src: /src/libtpms/src/tpm_debug.c:116,1
    - Dst: TPMLIB_LogPrintfA
      Src: /src/libtpms/src/tpm_debug.c:122,1
    - Dst: TPMLIB_LogPrintf
      Src: /src/libtpms/src/tpm_debug.c:125,1
    - Dst: TPMLIB_LogPrintfA
      Src: /src/libtpms/src/tpm_debug.c:127,1
    - Dst: TPMLIB_LogPrintfA
      Src: /src/libtpms/src/tpm_debug.c:129,1
    - Dst: TPMLIB_LogPrintf
      Src: /src/libtpms/src/tpm_debug.c:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - string
    - buff
    - length
    argTypes:
    - char*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 134
    functionName: TPM_PrintAll
    functionSourceFile: /src/libtpms/src/tpm_debug.c
    functionUses: 0
    functionsReached:
    - TPMLIB_LogPrintf
    - TPMLIB_LogPrintfA
    linkageType: ''
    returnType: void
    signature: void TPM_PrintAll(const char *string, const unsigned char* buff, uint32_t
      length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _rpc__Signal_GetTPMEstablished
      Src: /src/libtpms/src/tpm_tpm2_tis.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tpmEstablished
    argTypes:
    - TPM_BOOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: TPM2_IO_TpmEstablished_Get
    functionSourceFile: /src/libtpms/src/tpm_tpm2_tis.c
    functionUses: 0
    functionsReached:
    - _rpc__Signal_GetTPMEstablished
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM2_IO_TpmEstablished_Get(TPM_BOOL *tpmEstablished)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm_tpm2_tis.c:67,1
    - Dst: struct libtpms_callbacks*::tpm_io_getlocality
      Src: /src/libtpms/src/tpm_tpm2_tis.c:72,1
    - Dst: _plat__LocalitySet
      Src: /src/libtpms/src/tpm_tpm2_tis.c:75,1
    - Dst: _rpc__Signal_ResetTPMEstablished
      Src: /src/libtpms/src/tpm_tpm2_tis.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: TPM2_IO_TpmEstablished_Reset
    functionSourceFile: /src/libtpms/src/tpm_tpm2_tis.c
    functionUses: 0
    functionsReached:
    - TPMLIB_GetCallbacks
    - _rpc__Signal_ResetTPMEstablished
    - _plat__LocalitySet
    - struct libtpms_callbacks*::tpm_io_getlocality
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM2_IO_TpmEstablished_Reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _TPM_Hash_Start
      Src: /src/libtpms/src/tpm_tpm2_tis.c:88,1
    - Dst: _rpc__Signal_SetTPMEstablished
      Src: /src/libtpms/src/tpm_tpm2_tis.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: TPM2_IO_Hash_Start
    functionSourceFile: /src/libtpms/src/tpm_tpm2_tis.c
    functionUses: 0
    functionsReached:
    - _TPM_Hash_Start
    - _rpc__Signal_SetTPMEstablished
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM2_IO_Hash_Start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _TPM_Hash_Data
      Src: /src/libtpms/src/tpm_tpm2_tis.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - data_length
    argTypes:
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: TPM2_IO_Hash_Data
    functionSourceFile: /src/libtpms/src/tpm_tpm2_tis.c
    functionUses: 0
    functionsReached:
    - _TPM_Hash_Data
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM2_IO_Hash_Data(const unsigned char *data,\n                             uint32_t
      data_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _TPM_Hash_End
      Src: /src/libtpms/src/tpm_tpm2_tis.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: TPM2_IO_Hash_End
    functionSourceFile: /src/libtpms/src/tpm_tpm2_tis.c
    functionUses: 0
    functionsReached:
    - _TPM_Hash_End
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM2_IO_Hash_End(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - STRING_IDX
    - ','
    - FIRST_TO_CHECK
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: ATTRIBUTE_FORMAT
    functionSourceFile: /src/libtpms/src/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATTRIBUTE_FORMAT(STRING_IDX, FIRST_TO_CHECK)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - STRING_IDX
    - ','
    - FIRST_TO_CHECK
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: ATTRIBUTE_FORMAT
    functionSourceFile: /src/libtpms/src/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATTRIBUTE_FORMAT(STRING_IDX, FIRST_TO_CHECK)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - VAL
    - ','
    - SIZE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: ROUNDUP
    functionSourceFile: /src/libtpms/src/tpm_library_intern.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDUP(VAL, SIZE)
  - 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/libtpms/src/tpm_library_intern.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _STRINGIFY(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: STRINGIFY
    functionSourceFile: /src/libtpms/src/tpm_library_intern.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRINGIFY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: TPMLIB_LogError
    functionSourceFile: /src/libtpms/src/tpm_library_intern.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMLIB_LogError(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: TPMLIB_LogTPM12Error
    functionSourceFile: /src/libtpms/src/tpm_library_intern.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMLIB_LogTPM12Error(format, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - format
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: TPMLIB_LogTPM2Error
    functionSourceFile: /src/libtpms/src/tpm_library_intern.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMLIB_LogTPM2Error(format, ...)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm_nvfile.c:106,1
    - Dst: struct libtpms_callbacks*::tpm_nvram_init
      Src: /src/libtpms/src/tpm_nvfile.c:111,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:116,1
    - Dst: getenv
      Src: /src/libtpms/src/tpm_nvfile.c:120,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:122,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm_nvfile.c:131,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:133,1
    - Dst: strcpy
      Src: /src/libtpms/src/tpm_nvfile.c:139,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 143
    functionName: TPM_NVRAM_Init
    functionSourceFile: /src/libtpms/src/tpm_nvfile.c
    functionUses: 0
    functionsReached:
    - TPMLIB_GetCallbacks
    - strlen
    - getenv
    - struct libtpms_callbacks*::tpm_nvram_init
    - printf
    - strcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_NVRAM_Init(void)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: GetCachedState
      Src: /src/libtpms/src/tpm_nvfile.c:172,1
    - Dst: TPMLIB_NameToStateType
      Src: /src/libtpms/src/tpm_nvfile.c:172,1
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm_nvfile.c:178,1
    - Dst: struct libtpms_callbacks*::tpm_nvram_loaddata
      Src: /src/libtpms/src/tpm_nvfile.c:183,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:188,1
    - Dst: TPM_NVRAM_GetFilenameForName
      Src: /src/libtpms/src/tpm_nvfile.c:194,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:198,1
    - Dst: fopen
      Src: /src/libtpms/src/tpm_nvfile.c:199,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:202,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:206,1
    - Dst: strerror
      Src: /src/libtpms/src/tpm_nvfile.c:207,1
    - Dst: fseek
      Src: /src/libtpms/src/tpm_nvfile.c:214,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:216,1
    - Dst: strerror
      Src: /src/libtpms/src/tpm_nvfile.c:217,1
    - Dst: ftell
      Src: /src/libtpms/src/tpm_nvfile.c:222,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:224,1
    - Dst: strerror
      Src: /src/libtpms/src/tpm_nvfile.c:225,1
    - Dst: fseek
      Src: /src/libtpms/src/tpm_nvfile.c:233,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:235,1
    - Dst: strerror
      Src: /src/libtpms/src/tpm_nvfile.c:236,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:242,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm_nvfile.c:243,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:245,1
    - Dst: fread
      Src: /src/libtpms/src/tpm_nvfile.c:251,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:253,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:260,1
    - Dst: fclose
      Src: /src/libtpms/src/tpm_nvfile.c:261,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:263,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:267,1
    - Dst: free
      Src: /src/libtpms/src/tpm_nvfile.c:272,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 83
    argCount: 4
    argNames:
    - data
    - length
    - tpm_number
    - name
    argTypes:
    - unsigned char**
    - uint32_t*
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 276
    functionName: TPM_NVRAM_LoadData
    functionSourceFile: /src/libtpms/src/tpm_nvfile.c
    functionUses: 2
    functionsReached:
    - fseek
    - TPMLIB_NameToStateType
    - ftell
    - TPM_NVRAM_GetFilenameForName
    - TPMLIB_GetCallbacks
    - fopen
    - fread
    - strerror
    - GetCachedState
    - TPM_Malloc
    - fclose
    - printf
    - struct libtpms_callbacks*::tpm_nvram_loaddata
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVRAM_LoadData(unsigned char **data,     /* freed by
      caller */\n                              uint32_t *length,\n\t\t\t      uint32_t
      tpm_number,\n                              const char *name)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm_nvfile.c:297,1
    - Dst: struct libtpms_callbacks*::tpm_nvram_storedata
      Src: /src/libtpms/src/tpm_nvfile.c:302,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:307,1
    - Dst: TPM_NVRAM_GetFilenameForName
      Src: /src/libtpms/src/tpm_nvfile.c:310,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:315,1
    - Dst: fopen
      Src: /src/libtpms/src/tpm_nvfile.c:316,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:318,1
    - Dst: strerror
      Src: /src/libtpms/src/tpm_nvfile.c:319,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:325,1
    - Dst: fwrite
      Src: /src/libtpms/src/tpm_nvfile.c:326,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:328,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:334,1
    - Dst: fclose
      Src: /src/libtpms/src/tpm_nvfile.c:335,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:337,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:341,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - data
    - length
    - tpm_number
    - name
    argTypes:
    - unsigned char*
    - uint32_t
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 345
    functionName: TPM_NVRAM_StoreData
    functionSourceFile: /src/libtpms/src/tpm_nvfile.c
    functionUses: 0
    functionsReached:
    - fwrite
    - TPM_NVRAM_GetFilenameForName
    - TPMLIB_GetCallbacks
    - fopen
    - strerror
    - fclose
    - printf
    - struct libtpms_callbacks*::tpm_nvram_storedata
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVRAM_StoreData(const unsigned char *data,\n                               uint32_t
      length,\n\t\t\t       uint32_t tpm_number,\n                               const
      char *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:363,1
    - Dst: snprintf
      Src: /src/libtpms/src/tpm_nvfile.c:364,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:368,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:370,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - filename
    - filename_len
    - tpm_number
    - name
    argTypes:
    - char*
    - size_t
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 376
    functionName: TPM_NVRAM_GetFilenameForName
    functionSourceFile: /src/libtpms/src/tpm_nvfile.c
    functionUses: 2
    functionsReached:
    - printf
    - snprintf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVRAM_GetFilenameForName(char *filename,        /*
      output: rooted filename */\n\t\t\t\t\t       size_t filename_len,\n\t\t\t\t\t
      \      uint32_t tpm_number,\n                                               const
      char *name)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm_nvfile.c:397,1
    - Dst: struct libtpms_callbacks*::tpm_nvram_deletename
      Src: /src/libtpms/src/tpm_nvfile.c:402,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:407,1
    - Dst: TPM_NVRAM_GetFilenameForName
      Src: /src/libtpms/src/tpm_nvfile.c:410,1
    - Dst: remove
      Src: /src/libtpms/src/tpm_nvfile.c:414,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_nvfile.c:418,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - tpm_number
    - name
    - mustExist
    argTypes:
    - uint32_t
    - char*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 424
    functionName: TPM_NVRAM_DeleteName
    functionSourceFile: /src/libtpms/src/tpm_nvfile.c
    functionUses: 0
    functionsReached:
    - TPM_NVRAM_GetFilenameForName
    - TPMLIB_GetCallbacks
    - printf
    - struct libtpms_callbacks*::tpm_nvram_deletename
    - remove
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVRAM_DeleteName(uint32_t tpm_number,\n\t\t\t\tconst
      char *name,\n                                TPM_BOOL mustExist)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 8
    functionName: Disabled_MainInit
    functionSourceFile: /src/libtpms/src/disabled_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT Disabled_MainInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 12
    functionName: Disabled_Terminate
    functionSourceFile: /src/libtpms/src/disabled_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Disabled_Terminate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - respbuffer LIBTPMS_ATTR_UNUSED
    - LIBTPMS_ATTR_UNUSED
    - respbufsize LIBTPMS_ATTR_UNUSED
    - LIBTPMS_ATTR_UNUSED
    - command_size LIBTPMS_ATTR_UNUSED
    argTypes:
    - unsigned char**
    - uint32_t*
    - uint32_t*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 22
    functionName: Disabled_Process
    functionSourceFile: /src/libtpms/src/disabled_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT Disabled_Process(unsigned char **respbuffer LIBTPMS_ATTR_UNUSED,\n
      \                uint32_t *resp_size LIBTPMS_ATTR_UNUSED,\n                 uint32_t
      *respbufsize LIBTPMS_ATTR_UNUSED,\n                 unsigned char *command LIBTPMS_ATTR_UNUSED,\n
      \                uint32_t command_size LIBTPMS_ATTR_UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - LIBTPMS_ATTR_UNUSED
    - LIBTPMS_ATTR_UNUSED
    argTypes:
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: Disabled_VolatileAllStore
    functionSourceFile: /src/libtpms/src/disabled_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT Disabled_VolatileAllStore(unsigned char **buffer LIBTPMS_ATTR_UNUSED,\n
      \                         uint32_t *buflen LIBTPMS_ATTR_UNUSED)"
  - 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: Disabled_CancelCommand
    functionSourceFile: /src/libtpms/src/disabled_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT Disabled_CancelCommand(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - LIBTPMS_ATTR_UNUSED
    - LIBTPMS_ATTR_UNUSED
    argTypes:
    - enum TPMLIB_TPMProperty
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: Disabled_GetTPMProperty
    functionSourceFile: /src/libtpms/src/disabled_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT Disabled_GetTPMProperty(enum TPMLIB_TPMProperty prop LIBTPMS_ATTR_UNUSED,\n
      \                       int *result LIBTPMS_ATTR_UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - LIBTPMS_ATTR_UNUSED
    argTypes:
    - enum TPMLIB_InfoFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: Disabled_GetInfo
    functionSourceFile: /src/libtpms/src/disabled_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      Disabled_GetInfo(enum TPMLIB_InfoFlags flags LIBTPMS_ATTR_UNUSED)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - wanted_size LIBTPMS_ATTR_UNUSED
    - LIBTPMS_ATTR_UNUSED
    - LIBTPMS_ATTR_UNUSED
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: Disabled_SetBufferSize
    functionSourceFile: /src/libtpms/src/disabled_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Disabled_SetBufferSize(uint32_t wanted_size LIBTPMS_ATTR_UNUSED,\n
      \                      uint32_t *min_size LIBTPMS_ATTR_UNUSED,\n                       uint32_t
      *max_size LIBTPMS_ATTR_UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - LIBTPMS_ATTR_UNUSED
    - LIBTPMS_ATTR_UNUSED
    argTypes:
    - enum TPMLIB_StateType
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: Disabled_ValidateState
    functionSourceFile: /src/libtpms/src/disabled_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT Disabled_ValidateState(enum TPMLIB_StateType st LIBTPMS_ATTR_UNUSED,\n
      \                      unsigned int flags LIBTPMS_ATTR_UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - LIBTPMS_ATTR_UNUSED
    - LIBTPMS_ATTR_UNUSED
    - LIBTPMS_ATTR_UNUSED
    argTypes:
    - enum TPMLIB_StateType
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: Disabled_GetState
    functionSourceFile: /src/libtpms/src/disabled_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT Disabled_GetState(enum TPMLIB_StateType st LIBTPMS_ATTR_UNUSED,\n
      \                 unsigned char **buffer LIBTPMS_ATTR_UNUSED,\n                  uint32_t
      *buflen LIBTPMS_ATTR_UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - LIBTPMS_ATTR_UNUSED
    - LIBTPMS_ATTR_UNUSED
    - LIBTPMS_ATTR_UNUSED
    argTypes:
    - enum TPMLIB_StateType
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: Disabled_SetState
    functionSourceFile: /src/libtpms/src/disabled_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT Disabled_SetState(enum TPMLIB_StateType st LIBTPMS_ATTR_UNUSED,\n
      \                 const unsigned char *buffer LIBTPMS_ATTR_UNUSED,\n                  uint32_t
      buflen LIBTPMS_ATTR_UNUSED)"
  - 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: Disabled_IO_Hash_Start
    functionSourceFile: /src/libtpms/src/disabled_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT Disabled_IO_Hash_Start(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - LIBTPMS_ATTR_UNUSED
    - data_length LIBTPMS_ATTR_UNUSED
    argTypes:
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: Disabled_IO_Hash_Data
    functionSourceFile: /src/libtpms/src/disabled_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT Disabled_IO_Hash_Data(const unsigned char *data LIBTPMS_ATTR_UNUSED,\n
      \                     uint32_t data_length LIBTPMS_ATTR_UNUSED)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: Disabled_IO_Hash_End
    functionSourceFile: /src/libtpms/src/disabled_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT Disabled_IO_Hash_End(void)
  - 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: Disabled_IO_TpmEstablished_Reset
    functionSourceFile: /src/libtpms/src/disabled_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT Disabled_IO_TpmEstablished_Reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: Disabled_WasManufactured
    functionSourceFile: /src/libtpms/src/disabled_interface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_BOOL
    signature: TPM_BOOL Disabled_WasManufactured(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm_memory.c:60,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_memory.c:67,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_memory.c:74,1
    - Dst: malloc
      Src: /src/libtpms/src/tpm_memory.c:79,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_memory.c:81,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - unsigned char**
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 86
    functionName: TPM_Malloc
    functionSourceFile: /src/libtpms/src/tpm_memory.c
    functionUses: 3
    functionsReached:
    - malloc
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Malloc(unsigned char **buffer, uint32_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm_memory.c:100,1
    - Dst: realloc
      Src: /src/libtpms/src/tpm_memory.c:105,1
    - Dst: printf
      Src: /src/libtpms/src/tpm_memory.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - unsigned char**
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 115
    functionName: TPM_Realloc
    functionSourceFile: /src/libtpms/src/tpm_memory.c
    functionUses: 0
    functionsReached:
    - printf
    - realloc
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Realloc(unsigned char **buffer,\n                       uint32_t
      size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libtpms/src/tpm_memory.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: TPM_Free
    functionSourceFile: /src/libtpms/src/tpm_memory.c
    functionUses: 7
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void TPM_Free(unsigned char *buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tpm_sized_buffer
    argTypes:
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: TPM_SizedBuffer_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_sizedbuffer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TPM_SizedBuffer_Init(TPM_SIZED_BUFFER *tpm_sized_buffer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:81,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:83,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:89,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - tpm_sized_buffer
    - stream
    - stream_size
    argTypes:
    - TPM_SIZED_BUFFER*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 97
    functionName: TPM_SizedBuffer_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_sizedbuffer.c
    functionUses: 0
    functionsReached:
    - TPM_Malloc
    - printf
    - TPM_Load32
    - TPM_Loadn
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SizedBuffer_Load(TPM_SIZED_BUFFER *tpm_sized_buffer,
      \    /* result */\n                                unsigned char **stream,\t\t/*
      pointer to next parameter */\n                                uint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:114,1
    - Dst: TPM_Realloc
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:118,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:122,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - tpm_sized_buffer
    - size
    - data
    argTypes:
    - TPM_SIZED_BUFFER*
    - uint32_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 131
    functionName: TPM_SizedBuffer_Set
    functionSourceFile: /src/libtpms/src/tpm12/tpm_sizedbuffer.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Delete
    - TPM_Realloc
    - printf
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SizedBuffer_Set(TPM_SIZED_BUFFER *tpm_sized_buffer,\n
      \                              uint32_t size,\n                               const
      unsigned char *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:147,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tpm_sized_buffer
    - sbuffer
    argTypes:
    - TPM_SIZED_BUFFER*
    - TPM_STORE_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 151
    functionName: TPM_SizedBuffer_SetFromStore
    functionSourceFile: /src/libtpms/src/tpm12/tpm_sizedbuffer.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Set
    - TPM_Sbuffer_Get
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SizedBuffer_SetFromStore(TPM_SIZED_BUFFER *tpm_sized_buffer,\n
      \                                       TPM_STORE_BUFFER *sbuffer)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:164,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:165,1
    - Dst: storeFunction
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:169,1
    - Dst: TPM_SizedBuffer_SetFromStore
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:174,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:176,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - tpm_sized_buffer
    - tpmStructure
    - storeFunction
    argTypes:
    - TPM_SIZED_BUFFER*
    - void*
    - TPM_STORE_FUNCTION_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 178
    functionName: TPM_SizedBuffer_SetStructure
    functionSourceFile: /src/libtpms/src/tpm12/tpm_sizedbuffer.c
    functionUses: 0
    functionsReached:
    - storeFunction
    - TPM_Sbuffer_Delete
    - printf
    - TPM_SizedBuffer_SetFromStore
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SizedBuffer_SetStructure(TPM_SIZED_BUFFER *tpm_sized_buffer,\n
      \                                       void *tpmStructure,\n                                        TPM_STORE_FUNCTION_T
      storeFunction)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tpm_sized_buffer_dest
    - tpm_sized_buffer_src
    argTypes:
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 188
    functionName: TPM_SizedBuffer_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_sizedbuffer.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Set
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SizedBuffer_Copy(TPM_SIZED_BUFFER *tpm_sized_buffer_dest,\n
      \                               TPM_SIZED_BUFFER *tpm_sized_buffer_src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:199,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:202,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sbuffer
    - tpm_sized_buffer
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: TPM_SizedBuffer_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_sizedbuffer.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SizedBuffer_Store(TPM_STORE_BUFFER *sbuffer,\n                                 const
      TPM_SIZED_BUFFER *tpm_sized_buffer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:213,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:215,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_sized_buffer
    argTypes:
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 219
    functionName: TPM_SizedBuffer_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_sizedbuffer.c
    functionUses: 1
    functionsReached:
    - TPM_SizedBuffer_Init
    - printf
    - free
    linkageType: ''
    returnType: void
    signature: void TPM_SizedBuffer_Delete(TPM_SIZED_BUFFER *tpm_sized_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:232,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tpm_sized_buffer
    - size
    argTypes:
    - TPM_SIZED_BUFFER*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 236
    functionName: TPM_SizedBuffer_Allocate
    functionSourceFile: /src/libtpms/src/tpm12/tpm_sizedbuffer.c
    functionUses: 0
    functionsReached:
    - TPM_Malloc
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SizedBuffer_Allocate(TPM_SIZED_BUFFER *tpm_sized_buffer,\n
      \                                   uint32_t size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:250,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - tpm_bool
    - tpm_sized_buffer
    argTypes:
    - TPM_BOOL*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 258
    functionName: TPM_SizedBuffer_GetBool
    functionSourceFile: /src/libtpms/src/tpm12/tpm_sizedbuffer.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SizedBuffer_GetBool(TPM_BOOL *tpm_bool,\n                                   TPM_SIZED_BUFFER
      *tpm_sized_buffer)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:274,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - uint32
    - tpm_sized_buffer
    argTypes:
    - uint32_t*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 285
    functionName: TPM_SizedBuffer_GetUint32
    functionSourceFile: /src/libtpms/src/tpm12/tpm_sizedbuffer.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SizedBuffer_GetUint32(uint32_t *uint32,\n                                     TPM_SIZED_BUFFER
      *tpm_sized_buffer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:296,1
    - Dst: TPM_Realloc
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:300,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:304,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tpm_sized_buffer
    - uint32
    argTypes:
    - TPM_SIZED_BUFFER*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 311
    functionName: TPM_SizedBuffer_Append32
    functionSourceFile: /src/libtpms/src/tpm12/tpm_sizedbuffer.c
    functionUses: 0
    functionsReached:
    - TPM_Realloc
    - printf
    - htonl
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SizedBuffer_Append32(TPM_SIZED_BUFFER *tpm_sized_buffer,\n
      \                                   uint32_t uint32)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:328,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:338,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:357,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - tpm_sized_buffer
    - uint32
    argTypes:
    - TPM_SIZED_BUFFER*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 361
    functionName: TPM_SizedBuffer_Remove32
    functionSourceFile: /src/libtpms/src/tpm12/tpm_sizedbuffer.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SizedBuffer_Remove32(TPM_SIZED_BUFFER *tpm_sized_buffer,\n
      \                                   uint32_t uint32)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:369,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_sizedbuffer.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_sized_buffer
    argTypes:
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 374
    functionName: TPM_SizedBuffer_Zero
    functionSourceFile: /src/libtpms/src/tpm12/tpm_sizedbuffer.c
    functionUses: 0
    functionsReached:
    - printf
    - memset
    linkageType: ''
    returnType: void
    signature: void TPM_SizedBuffer_Zero(TPM_SIZED_BUFFER *tpm_sized_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - offset
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 65
    functionName: LOAD32
    functionSourceFile: /src/libtpms/src/tpm12/tpm_load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t LOAD32(const unsigned char *buffer, unsigned int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - offset
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: LOAD16
    functionSourceFile: /src/libtpms/src/tpm12/tpm_load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t LOAD16(const unsigned char *buffer, unsigned int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buffer
    - offset
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: LOAD8
    functionSourceFile: /src/libtpms/src/tpm12/tpm_load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t LOAD8(const unsigned char *buffer, unsigned int offset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_load.c:102,1
    - Dst: LOAD32
      Src: /src/libtpms/src/tpm12/tpm_load.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - tpm_uint32
    - stream
    - stream_size
    argTypes:
    - uint32_t*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 114
    functionName: TPM_Load32
    functionSourceFile: /src/libtpms/src/tpm12/tpm_load.c
    functionUses: 3
    functionsReached:
    - LOAD32
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Load32(uint32_t *tpm_uint32,\n                      unsigned
      char **stream,\n                      uint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_load.c:131,1
    - Dst: LOAD16
      Src: /src/libtpms/src/tpm12/tpm_load.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - tpm_uint16
    - stream
    - stream_size
    argTypes:
    - uint16_t*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 143
    functionName: TPM_Load16
    functionSourceFile: /src/libtpms/src/tpm12/tpm_load.c
    functionUses: 0
    functionsReached:
    - LOAD16
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Load16(uint16_t *tpm_uint16,\n                      unsigned
      char **stream,\n                      uint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_load.c:153,1
    - Dst: LOAD8
      Src: /src/libtpms/src/tpm12/tpm_load.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - tpm_uint8
    - stream
    - stream_size
    argTypes:
    - uint8_t*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 165
    functionName: TPM_Load8
    functionSourceFile: /src/libtpms/src/tpm12/tpm_load.c
    functionUses: 0
    functionsReached:
    - LOAD8
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Load8(uint8_t *tpm_uint8,\n                     unsigned
      char **stream,\n                     uint32_t *stream_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_load.c:179,1
    - Dst: LOAD8
      Src: /src/libtpms/src/tpm12/tpm_load.c:186,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_load.c:192,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - tpm_bool
    - stream
    - stream_size
    argTypes:
    - TPM_BOOL*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 197
    functionName: TPM_LoadBool
    functionSourceFile: /src/libtpms/src/tpm12/tpm_load.c
    functionUses: 0
    functionsReached:
    - LOAD8
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_LoadBool(TPM_BOOL *tpm_bool,\n                        unsigned
      char **stream,\n                        uint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_load.c:211,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_load.c:218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - data
    - data_length
    - stream
    - stream_size
    argTypes:
    - BYTE*
    - size_t
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 223
    functionName: TPM_Loadn
    functionSourceFile: /src/libtpms/src/tpm12/tpm_load.c
    functionUses: 1
    functionsReached:
    - printf
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Loadn(BYTE *data,\n                     size_t data_length,\n
      \                    unsigned char **stream,\n                     uint32_t
      *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_load.c:237,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_load.c:240,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_load.c:252,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - result
    - stream
    - stream_size
    argTypes:
    - unsigned long*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 255
    functionName: TPM_LoadLong
    functionSourceFile: /src/libtpms/src/tpm12/tpm_load.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_LoadLong(unsigned long *result,\n                        const
      unsigned char *stream,\n                        uint32_t stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memchr
      Src: /src/libtpms/src/tpm12/tpm_load.c:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - name
    - stream
    - stream_size
    argTypes:
    - char**
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 283
    functionName: TPM_LoadString
    functionSourceFile: /src/libtpms/src/tpm12/tpm_load.c
    functionUses: 0
    functionsReached:
    - memchr
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_LoadString(const char **name,\n                          unsigned
      char **stream,\n                          uint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_load.c:299,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_load.c:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - expectedTag
    - stream
    - stream_size
    argTypes:
    - TPM_STRUCTURE_TAG
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 308
    functionName: TPM_CheckTag
    functionSourceFile: /src/libtpms/src/tpm12/tpm_load.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CheckTag(TPM_STRUCTURE_TAG expectedTag,\n\t\t\tunsigned
      char **stream,\n\t\t\tuint32_t   *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:193,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 204
    functionName: TPM_Crypto_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Crypto_Init()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:229,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:232,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:235,1
    - Dst: SHA1_Init
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:239,1
    - Dst: SHA1_Update
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:240,1
    - Dst: TPM_Sha1Context_Store
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:244,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:248,1
    - Dst: TPM_Sha1Context_Load
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:249,1
    - Dst: SHA1_Update
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:254,1
    - Dst: SHA1_Final
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:255,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:258,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:260,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:261,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:262,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:266,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:267,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:268,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 270
    functionName: TPM_Crypto_TestSpecific
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_Sha1Context_Store
    - TPM_Sbuffer_Get
    - TPM_PrintFour
    - free
    - TPM_Sha1Context_Load
    - SHA1_Final
    - TPM_Sbuffer_Delete
    - TPM_Malloc
    - SHA1_Update
    - memcmp
    - printf
    - SHA1_Init
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Crypto_TestSpecific()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:285,1
    - Dst: RAND_bytes
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:289,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - buffer
    - bytes
    argTypes:
    - BYTE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 299
    functionName: TPM_Random
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - RAND_bytes
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Random(BYTE *buffer, size_t bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:305,1
    - Dst: RAND_add
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inData
    argTypes:
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 315
    functionName: TPM_StirRandomCmd
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - printf
    - RAND_add
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_StirRandomCmd(TPM_SIZED_BUFFER *inData)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:349,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:359,1
    - Dst: TPM_LoadLong
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:366,1
    - Dst: TPM_RSA_exponent_verify
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:371,1
    - Dst: RSA_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:374,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:376,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:381,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:384,1
    - Dst: RSA_generate_key_ex
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:385,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:387,1
    - Dst: RSA_get0_key
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:401,1
    - Dst: RSA_get0_factors
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:402,1
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:407,1
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:411,1
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:415,1
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:419,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:422,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:426,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:427,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:428,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:429,1
    - Dst: RSA_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:436,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:439,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 75
    argCount: 7
    argNames:
    - n
    - p
    - q
    - d
    - num_bits
    - earr
    - e_size
    argTypes:
    - unsigned char**
    - unsigned char**
    - unsigned char**
    - unsigned char**
    - int
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 442
    functionName: TPM_RSAGenerateKeyPair
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - RSA_free
    - BN_free
    - RSA_new
    - RSA_get0_key
    - TPM_bn2binMalloc
    - RSA_generate_key_ex
    - TPM_LoadLong
    - printf
    - TPM_bin2bn
    - RSA_get0_factors
    - TPM_RSA_exponent_verify
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAGenerateKeyPair(unsigned char **n,            /*
      public key - modulus */\n                                  unsigned char **p,
      \           /* private key prime */\n                                  unsigned
      char **q,            /* private key prime */\n                                  unsigned
      char **d,            /* private key (private exponent) */\n                                  int
      num_bits,                 /* key size in bits */\n                                  const
      unsigned char *earr,    /* public exponent as an array */\n                                  uint32_t
      e_size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:460,1
    - Dst: RSA_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:468,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:470,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:475,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:478,1
    - Dst: RSA_set0_key
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:486,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:488,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - rsa_pub_key
    - narr
    - nbytes
    - earr
    - ebytes
    argTypes:
    - RSA**
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 494
    functionName: TPM_RSAGeneratePublicToken
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - RSA_set0_key
    - printf
    - TPM_bin2bn
    - RSA_new
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAGeneratePublicToken(RSA **rsa_pub_key,\t\t/* freed
      by caller */\n\t\t\t\t\t     unsigned char *narr,      \t/* public modulus */\n\t\t\t\t\t
      \    uint32_t nbytes,\n\t\t\t\t\t     unsigned char *earr,      \t/* public
      exponent */\n\t\t\t\t\t     uint32_t ebytes)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:515,1
    - Dst: RSA_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:523,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:525,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:530,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:533,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:536,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:543,1
    - Dst: RSA_set0_key
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:545,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:547,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 7
    argNames:
    - rsa_pri_key
    - narr
    - nbytes
    - earr
    - ebytes
    - darr
    - dbytes
    argTypes:
    - RSA**
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 553
    functionName: TPM_RSAGeneratePrivateToken
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - RSA_set0_key
    - RSA_new
    - BN_set_flags
    - printf
    - TPM_bin2bn
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAGeneratePrivateToken(RSA **rsa_pri_key,\t/* freed
      by caller */\n\t\t\t\t\t      unsigned char *narr,      /* public modulus */\n\t\t\t\t\t
      \     uint32_t nbytes,\n\t\t\t\t\t      unsigned char *earr,      /* public
      exponent */\n\t\t\t\t\t      uint32_t ebytes,\n\t\t\t\t\t      unsigned char
      *darr,\t/* private exponent */\n\t\t\t\t\t      uint32_t dbytes)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:583,1
    - Dst: TPM_RSAGeneratePrivateToken
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:586,1
    - Dst: RSA_size
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:597,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:598,1
    - Dst: RSA_private_decrypt
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:604,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:610,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:615,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:616,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:617,1
    - Dst: RSA_padding_check_PKCS1_OAEP
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:621,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:631,1
    - Dst: RSA_padding_check_PKCS1_type_2
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:636,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:643,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:648,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:654,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:655,1
    - Dst: RSA_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:658,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:660,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 12
    argNames:
    - decrypt_data
    - decrypt_data_length
    - decrypt_data_size
    - encScheme
    - encrypt_data
    - encrypt_data_size
    - narr
    - nbytes
    - earr
    - ebytes
    - darr
    - dbytes
    argTypes:
    - unsigned char*
    - uint32_t*
    - size_t
    - TPM_ENC_SCHEME
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 562
    functionDepth: 3
    functionLinenumber: 562
    functionLinenumberEnd: 662
    functionName: TPM_RSAPrivateDecrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - RSA_free
    - TPM_PrintFour
    - TPM_RSAGeneratePrivateToken
    - RSA_padding_check_PKCS1_type_2
    - TPM_Malloc
    - RSA_private_decrypt
    - RSA_size
    - printf
    - TPM_PrintFourLimit
    - free
    - RSA_padding_check_PKCS1_OAEP
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAPrivateDecrypt(unsigned char *decrypt_data,   /*
      decrypted data */\n                                 uint32_t *decrypt_data_length,\t/*
      length of data put into\n                                                                   decrypt_data
      */\n                                 size_t decrypt_data_size,      /* size
      of decrypt_data buffer */\n                                 TPM_ENC_SCHEME encScheme,
      \     /* encryption scheme */\n                                 unsigned char
      *encrypt_data,   /* encrypted data */\n                                 uint32_t
      encrypt_data_size,\n                                 unsigned char *narr,           /*
      public modulus */\n                                 uint32_t nbytes,\n                                 unsigned
      char *earr,           /* public exponent */\n                                 uint32_t
      ebytes,\n                                 unsigned char *darr,           /*
      private exponent */\n                                 uint32_t dbytes)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:688,1
    - Dst: TPM_RSAGenerateEVP_PKEY
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:691,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:701,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:703,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:708,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:709,1
    - Dst: EVP_get_digestbyname
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:718,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:720,1
    - Dst: EVP_PKEY_CTX_set_rsa_oaep_md
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:721,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:722,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:727,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:729,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:733,1
    - Dst: EVP_PKEY_CTX_set0_rsa_oaep_label
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:734,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:735,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:745,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:746,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:753,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:761,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:763,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:768,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:775,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:776,1
    - Dst: EVP_PKEY_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:780,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:781,1
    - Dst: TPM_Free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:782,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 12
    argNames:
    - decrypt_data
    - decrypt_data_length
    - decrypt_data_size
    - encScheme
    - encrypt_data
    - encrypt_data_size
    - narr
    - nbytes
    - earr
    - ebytes
    - darr
    - dbytes
    argTypes:
    - unsigned char*
    - uint32_t*
    - size_t
    - TPM_ENC_SCHEME
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 785
    functionName: TPM_RSAPrivateDecrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_Free
    - EVP_PKEY_CTX_set0_rsa_oaep_label
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set_rsa_oaep_md
    - memcpy
    - EVP_PKEY_CTX_set_rsa_padding
    - EVP_PKEY_decrypt_init
    - TPM_RSAGenerateEVP_PKEY
    - TPM_Malloc
    - EVP_PKEY_CTX_new
    - printf
    - EVP_get_digestbyname
    - EVP_PKEY_free
    - EVP_PKEY_decrypt
    - TPM_PrintFourLimit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAPrivateDecrypt(unsigned char *decrypt_data,   /*
      decrypted data */\n                                 uint32_t *decrypt_data_length,\t/*
      length of data put into\n                                                                   decrypt_data
      */\n                                 size_t decrypt_data_size,      /* size
      of decrypt_data buffer */\n                                 TPM_ENC_SCHEME encScheme,
      \     /* encryption scheme */\n                                 unsigned char
      *encrypt_data,   /* encrypted data */\n                                 uint32_t
      encrypt_data_size,\n                                 unsigned char *narr,           /*
      public modulus */\n                                 uint32_t nbytes,\n                                 unsigned
      char *earr,           /* public exponent */\n                                 uint32_t
      ebytes,\n                                 unsigned char *darr,           /*
      private exponent */\n                                 uint32_t dbytes)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:810,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:813,1
    - Dst: TPM_RSAGeneratePublicToken
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:817,1
    - Dst: RSA_padding_add_PKCS1_OAEP
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:825,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:834,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:838,1
    - Dst: RSA_padding_add_PKCS1_type_2
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:842,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:847,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:851,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:855,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:860,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:861,1
    - Dst: RSA_public_encrypt
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:865,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:871,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:876,1
    - Dst: RSA_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:879,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:881,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 9
    argNames:
    - encrypt_data
    - encrypt_data_size
    - encScheme
    - decrypt_data
    - decrypt_data_size
    - narr
    - nbytes
    - earr
    - ebytes
    argTypes:
    - unsigned char*
    - size_t
    - TPM_ENC_SCHEME
    - unsigned char*
    - size_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 795
    functionDepth: 3
    functionLinenumber: 795
    functionLinenumberEnd: 883
    functionName: TPM_RSAPublicEncrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - RSA_free
    - TPM_RSAGeneratePublicToken
    - TPM_PrintFour
    - RSA_padding_add_PKCS1_type_2
    - TPM_Malloc
    - printf
    - RSA_padding_add_PKCS1_OAEP
    - RSA_public_encrypt
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAPublicEncrypt(unsigned char* encrypt_data,    /*
      encrypted data */\n                                size_t encrypt_data_size,
      \      /* size of encrypted data buffer */\n                                TPM_ENC_SCHEME
      encScheme,\n                                const unsigned char *decrypt_data,
      \     /* decrypted data */\n                                size_t decrypt_data_size,\n
      \                               unsigned char *narr,           /* public modulus
      */\n                                uint32_t nbytes,\n                                unsigned
      char *earr,           /* public exponent */\n                                uint32_t
      ebytes)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:904,1
    - Dst: TPM_RSAGenerateEVP_PKEY
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:908,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:918,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:920,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:925,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:926,1
    - Dst: EVP_get_digestbyname
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:935,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:937,1
    - Dst: EVP_PKEY_CTX_set_rsa_oaep_md
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:938,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:939,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:944,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:946,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:950,1
    - Dst: EVP_PKEY_CTX_set0_rsa_oaep_label
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:951,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:952,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:962,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:963,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:970,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:978,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:980,1
    - Dst: EVP_PKEY_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:985,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:986,1
    - Dst: TPM_Free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:987,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 9
    argNames:
    - encrypt_data
    - encrypt_data_size
    - encScheme
    - decrypt_data
    - decrypt_data_size
    - narr
    - nbytes
    - earr
    - ebytes
    argTypes:
    - unsigned char*
    - size_t
    - TPM_ENC_SCHEME
    - unsigned char*
    - size_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 887
    functionDepth: 2
    functionLinenumber: 887
    functionLinenumberEnd: 990
    functionName: TPM_RSAPublicEncrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_Free
    - EVP_PKEY_CTX_set0_rsa_oaep_label
    - EVP_PKEY_encrypt
    - EVP_PKEY_CTX_set_rsa_oaep_md
    - memcpy
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set_rsa_padding
    - TPM_RSAGenerateEVP_PKEY
    - TPM_Malloc
    - EVP_PKEY_CTX_new
    - printf
    - EVP_get_digestbyname
    - EVP_PKEY_free
    - EVP_PKEY_encrypt_init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAPublicEncrypt(unsigned char* encrypt_data,    /*
      encrypted data */\n                                size_t encrypt_data_size,
      \      /* size of encrypted data buffer */\n                                TPM_ENC_SCHEME
      encScheme,\n                                const unsigned char *decrypt_data,
      \     /* decrypted data */\n                                size_t decrypt_data_size,\n
      \                               unsigned char *narr,           /* public modulus
      */\n                                uint32_t nbytes,\n                                unsigned
      char *earr,           /* public exponent */\n                                uint32_t
      ebytes)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1012,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1016,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1024,1
    - Dst: TPM_RSAGeneratePublicToken
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1031,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1038,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1039,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1040,1
    - Dst: RSA_public_encrypt
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1042,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1048,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1053,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1055,1
    - Dst: RSA_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1060,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 8
    argNames:
    - encrypt_data
    - encrypt_data_size
    - decrypt_data
    - decrypt_data_size
    - narr
    - nbytes
    - earr
    - ebytes
    argTypes:
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 999
    functionDepth: 3
    functionLinenumber: 999
    functionLinenumberEnd: 1063
    functionName: TPM_RSAPublicEncryptRaw
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - RSA_free
    - TPM_RSAGeneratePublicToken
    - TPM_PrintFour
    - printf
    - TPM_PrintAll
    - RSA_public_encrypt
    - TPM_PrintFourLimit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAPublicEncryptRaw(unsigned char *encrypt_data,\t/*
      output */\n\t\t\t\t   uint32_t encrypt_data_size,\t/* input, size of message
      buffer */\n\t\t\t\t   unsigned char *decrypt_data,\t/* input */\n\t\t\t\t   uint32_t
      decrypt_data_size,\t/* input, size of sig buffer */\n\t\t\t\t   unsigned char
      *narr,\t\t/* public modulus */\n\t\t\t\t   uint32_t nbytes,\n\t\t\t\t   unsigned
      char *earr,\t\t/* public exponent */\n\t\t\t\t   uint32_t ebytes)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1099,1
    - Dst: TPM_RSAGeneratePrivateToken
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1102,1
    - Dst: RSA_size
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1112,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1115,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1124,1
    - Dst: TPM_RSASignSHA1
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1129,1
    - Dst: TPM_RSASignDER
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1136,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1143,1
    - Dst: RSA_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1149,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 12
    argNames:
    - signature
    - signature_length
    - signature_size
    - sigScheme
    - message
    - message_size
    - narr
    - nbytes
    - earr
    - ebytes
    - darr
    - dbytes
    argTypes:
    - unsigned char*
    - unsigned int*
    - unsigned int
    - TPM_SIG_SCHEME
    - unsigned char*
    - size_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1152
    functionName: TPM_RSASign
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - RSA_free
    - TPM_RSAGeneratePrivateToken
    - TPM_RSASignSHA1
    - RSA_size
    - printf
    - TPM_RSASignDER
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSASign(unsigned char *signature,        /* output
      */\n                       unsigned int *signature_length,  /* output, size
      of signature */\n                       unsigned int signature_size,     /*
      input, size of signature buffer */\n                       TPM_SIG_SCHEME sigScheme,
      \       /* input, type of signature */\n                       const unsigned
      char *message,    /* input */\n                       size_t message_size,             /*
      input */\n                       unsigned char *narr,             /* public
      modulus */\n                       uint32_t nbytes,\n                       unsigned
      char *earr,             /* public exponent */\n                       uint32_t
      ebytes,\n                       unsigned char *darr,             /* private
      exponent */\n                       uint32_t dbytes)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1169,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1173,1
    - Dst: RSA_sign
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1180,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - signature
    - signature_length
    - message
    - message_size
    - rsa_pri_key
    argTypes:
    - unsigned char*
    - unsigned int*
    - unsigned char*
    - size_t
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1191
    functionName: TPM_RSASignSHA1
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 1
    functionsReached:
    - printf
    - RSA_sign
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSASignSHA1(unsigned char *signature,             /*
      output */\n                                  unsigned int *signature_length,
      /* output, size of signature */\n                                  const unsigned
      char *message,         /* input */\n                                  size_t
      message_size,                  /* input */\n                                  RSA
      *rsa_pri_key)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1213,1
    - Dst: RSA_size
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1217,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1219,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1225,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1226,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1230,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1232,1
    - Dst: RSA_padding_add_PKCS1_type_1
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1234,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1239,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1246,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1247,1
    - Dst: RSA_private_encrypt
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1249,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1258,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1263,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1265,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 5
    argNames:
    - signature
    - signature_length
    - message
    - message_size
    - rsa_pri_key
    argTypes:
    - unsigned char*
    - unsigned int*
    - unsigned char*
    - size_t
    - RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1201
    functionDepth: 3
    functionLinenumber: 1201
    functionLinenumberEnd: 1267
    functionName: TPM_RSASignDER
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 1
    functionsReached:
    - RSA_private_encrypt
    - TPM_PrintFour
    - TPM_Malloc
    - RSA_size
    - printf
    - RSA_padding_add_PKCS1_type_1
    - TPM_PrintFourLimit
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSASignDER(unsigned char *signature,              /*
      output */\n                                 unsigned int *signature_length,
      /* output, size of signature */\n                                 const unsigned
      char *message,          /* input */\n                                 size_t
      message_size,                   /* input */\n                                 RSA
      *rsa_pri_key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1290,1
    - Dst: TPM_RSAGeneratePublicToken
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1293,1
    - Dst: RSA_verify
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1301,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1305,1
    - Dst: RSA_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 8
    argNames:
    - signature
    - signature_size
    - message
    - message_size
    - narr
    - nbytes
    - earr
    - ebytes
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1276
    functionDepth: 1
    functionLinenumber: 1276
    functionLinenumberEnd: 1313
    functionName: TPM_RSAVerifySHA1
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_RSAGeneratePublicToken
    - RSA_free
    - printf
    - RSA_verify
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAVerifySHA1(unsigned char *signature,\t\t/* input
      */\n\t\t\t     unsigned int signature_size, \t/* input, size of signature\n\t\t\t\t\t\t\t\t
      \  buffer */\n\t\t\t     const unsigned char *message,\t/* input */\n\t\t\t
      \    uint32_t message_size,             /* input */\n\t\t\t     unsigned char
      *narr,\t\t/* public modulus */\n\t\t\t     uint32_t nbytes,\n\t\t\t     unsigned
      char *earr,\t\t/* public exponent */\n\t\t\t     uint32_t ebytes)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1346,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1352,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1359,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1366,1
    - Dst: TPM_BN_CTX_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1372,1
    - Dst: BN_CTX_start
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1375,1
    - Dst: BN_CTX_get
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1376,1
    - Dst: BN_CTX_get
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1377,1
    - Dst: BN_CTX_get
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1378,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1380,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1381,1
    - Dst: TPM_BN_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1387,1
    - Dst: TPM_BN_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1390,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1394,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1397,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1400,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1402,1
    - Dst: BN_div
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1406,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1408,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1409,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1412,1
    - Dst: BN_is_zero
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1416,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1418,1
    - Dst: BN_sub
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1424,1
    - Dst: BN_value_one
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1424,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1426,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1427,1
    - Dst: BN_sub
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1433,1
    - Dst: BN_value_one
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1433,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1435,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1436,1
    - Dst: BN_mul
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1442,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1444,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1445,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1448,1
    - Dst: BN_mod_inverse
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1452,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1454,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1455,1
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1461,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1465,1
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1466,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1469,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1470,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1473,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1474,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1475,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1476,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1477,1
    - Dst: BN_CTX_end
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1478,1
    - Dst: BN_CTX_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1479,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 121
    argCount: 10
    argNames:
    - qbytes
    - qarr
    - dbytes
    - darr
    - nbytes
    - narr
    - ebytes
    - earr
    - pbytes
    - parr
    argTypes:
    - uint32_t*
    - unsigned char**
    - uint32_t*
    - unsigned char**
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1324
    functionDepth: 3
    functionLinenumber: 1324
    functionLinenumberEnd: 1481
    functionName: TPM_RSAGetPrivateKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - BN_mul
    - TPM_bin2bn
    - BN_mod_inverse
    - BN_is_zero
    - TPM_OpenSSL_PrintError
    - BN_CTX_start
    - BN_value_one
    - TPM_BN_new
    - BN_free
    - BN_CTX_get
    - TPM_PrintFour
    - BN_set_flags
    - BN_div
    - printf
    - TPM_BN_CTX_new
    - BN_CTX_end
    - TPM_bn2binMalloc
    - BN_sub
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAGetPrivateKey(uint32_t *qbytes, unsigned char **qarr,\n
      \                               uint32_t *dbytes, unsigned char **darr,\n                                uint32_t
      nbytes, unsigned char *narr,\n                                uint32_t ebytes,
      unsigned char *earr,\n                                uint32_t pbytes, unsigned
      char *parr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_get_error_line_data
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1500,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1491
    functionDepth: 1
    functionLinenumber: 1491
    functionLinenumberEnd: 1504
    functionName: TPM_OpenSSL_PrintError
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 1
    functionsReached:
    - printf
    - ERR_get_error_line_data
    linkageType: ''
    returnType: void
    signature: void TPM_OpenSSL_PrintError()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1517,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1522,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - numBytes
    - bn_in
    argTypes:
    - unsigned int*
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1511
    functionDepth: 2
    functionLinenumber: 1511
    functionLinenumberEnd: 1527
    functionName: TPM_BN_num_bytes
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_OpenSSL_PrintError
    - BN_num_bytes
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_BN_num_bytes(unsigned int *numBytes, TPM_BIGNUM bn_in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_is_one
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1543,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bn_in
    argTypes:
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1534
    functionDepth: 1
    functionLinenumber: 1534
    functionLinenumberEnd: 1549
    functionName: TPM_BN_is_one
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - printf
    - BN_is_one
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_BN_is_one(TPM_BIGNUM bn_in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BN_CTX_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1568,1
    - Dst: BN_mod
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1583,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1585,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1586,1
    - Dst: BN_CTX_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - rem_in
    - a_in
    - m_in
    argTypes:
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1556
    functionDepth: 2
    functionLinenumber: 1556
    functionLinenumberEnd: 1591
    functionName: TPM_BN_mod
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - BN_mod
    - TPM_OpenSSL_PrintError
    - printf
    - TPM_BN_CTX_new
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BN_mod(TPM_BIGNUM rem_in,\n\t\t      const TPM_BIGNUM
      a_in,\n\t\t      const TPM_BIGNUM m_in)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1607,1
    - Dst: BN_mask_bits
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1619,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1621,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1622,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - bn_in
    - n
    argTypes:
    - TPM_BIGNUM
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1599
    functionDepth: 2
    functionLinenumber: 1599
    functionLinenumberEnd: 1628
    functionName: TPM_BN_mask_bits
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - BN_mask_bits
    - TPM_OpenSSL_PrintError
    - printf
    - TPM_BN_num_bytes
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_BN_mask_bits(TPM_BIGNUM bn_in, unsigned int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1644,1
    - Dst: TPM_BN_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1646,1
    - Dst: BN_rshift
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1653,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1655,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1656,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - rBignum_in
    - aBignum_in
    - n
    argTypes:
    - TPM_BIGNUM*
    - TPM_BIGNUM
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1635
    functionDepth: 2
    functionLinenumber: 1635
    functionLinenumberEnd: 1661
    functionName: TPM_BN_rshift
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_BN_new
    - TPM_OpenSSL_PrintError
    - printf
    - BN_rshift
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BN_rshift(TPM_BIGNUM *rBignum_in,              /* freed
      by caller */\n                         TPM_BIGNUM aBignum_in,\n                         int
      n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1677,1
    - Dst: TPM_BN_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1679,1
    - Dst: BN_lshift
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1686,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1688,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1689,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - rBignum_in
    - aBignum_in
    - n
    argTypes:
    - TPM_BIGNUM*
    - TPM_BIGNUM
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1668
    functionDepth: 2
    functionLinenumber: 1668
    functionLinenumberEnd: 1694
    functionName: TPM_BN_lshift
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_OpenSSL_PrintError
    - TPM_BN_new
    - BN_lshift
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BN_lshift(TPM_BIGNUM *rBignum_in,              /* freed
      by caller */\n                         TPM_BIGNUM aBignum_in,\n                         int
      n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1713,1
    - Dst: BN_add
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1718,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1720,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - rBignum_in
    - aBignum_in
    - bBignum_in
    argTypes:
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1703
    functionDepth: 2
    functionLinenumber: 1703
    functionLinenumberEnd: 1725
    functionName: TPM_BN_add
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_OpenSSL_PrintError
    - printf
    - BN_add
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BN_add(TPM_BIGNUM rBignum_in,\n                      TPM_BIGNUM
      aBignum_in,\n                      TPM_BIGNUM bBignum_in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1743,1
    - Dst: TPM_BN_CTX_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1746,1
    - Dst: BN_mul
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1754,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1756,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1757,1
    - Dst: BN_CTX_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1761,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - rBignum_in
    - aBignum_in
    - bBignum_in
    argTypes:
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1732
    functionDepth: 2
    functionLinenumber: 1732
    functionLinenumberEnd: 1763
    functionName: TPM_BN_mul
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - BN_mul
    - TPM_OpenSSL_PrintError
    - printf
    - TPM_BN_CTX_new
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BN_mul(TPM_BIGNUM rBignum_in,\n                      TPM_BIGNUM
      aBignum_in,\n                      TPM_BIGNUM bBignum_in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1783,1
    - Dst: TPM_BN_CTX_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1786,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1797,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1798,1
    - Dst: BN_mod_exp
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1799,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1801,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1802,1
    - Dst: BN_CTX_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1806,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - rBignum_in
    - aBignum_in
    - pBignum_in
    - nBignum_in
    argTypes:
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1770
    functionDepth: 2
    functionLinenumber: 1770
    functionLinenumberEnd: 1808
    functionName: TPM_BN_mod_exp
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - BN_mod_exp
    - TPM_OpenSSL_PrintError
    - BN_set_flags
    - printf
    - TPM_BN_CTX_new
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BN_mod_exp(TPM_BIGNUM rBignum_in,\n                          TPM_BIGNUM
      aBignum_in,\n                          TPM_BIGNUM pBignum_in,\n                          TPM_BIGNUM
      nBignum_in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1828,1
    - Dst: TPM_BN_CTX_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1831,1
    - Dst: BN_mod_add
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1838,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1840,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1841,1
    - Dst: BN_CTX_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1846,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - rBignum_in
    - aBignum_in
    - bBignum_in
    - mBignum_in
    argTypes:
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1815
    functionDepth: 2
    functionLinenumber: 1815
    functionLinenumberEnd: 1848
    functionName: TPM_BN_mod_add
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - TPM_OpenSSL_PrintError
    - BN_mod_add
    - printf
    - TPM_BN_CTX_new
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BN_mod_add(TPM_BIGNUM rBignum_in,\n                          TPM_BIGNUM
      aBignum_in,\n                          TPM_BIGNUM bBignum_in,\n                          TPM_BIGNUM
      mBignum_in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1868,1
    - Dst: TPM_BN_CTX_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1871,1
    - Dst: BN_mod_mul
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1879,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1881,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1882,1
    - Dst: BN_CTX_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1886,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - rBignum_in
    - aBignum_in
    - bBignum_in
    - mBignum_in
    argTypes:
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1855
    functionDepth: 2
    functionLinenumber: 1855
    functionLinenumberEnd: 1888
    functionName: TPM_BN_mod_mul
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - BN_mod_mul
    - TPM_OpenSSL_PrintError
    - printf
    - TPM_BN_CTX_new
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BN_mod_mul(TPM_BIGNUM rBignum_in,\n                          TPM_BIGNUM
      aBignum_in,\n                          TPM_BIGNUM bBignum_in,\n                          TPM_BIGNUM
      mBignum_in)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1898,1
    - Dst: BN_CTX_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1904,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1906,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1907,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BN_CTX**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1892
    functionDepth: 2
    functionLinenumber: 1892
    functionLinenumberEnd: 1913
    functionName: TPM_BN_CTX_new
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 6
    functionsReached:
    - TPM_OpenSSL_PrintError
    - BN_CTX_new
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_BN_CTX_new(BN_CTX **ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1925,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1927,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - bn_in
    argTypes:
    - TPM_BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1920
    functionDepth: 2
    functionLinenumber: 1920
    functionLinenumberEnd: 1932
    functionName: TPM_BN_new
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 3
    functionsReached:
    - TPM_OpenSSL_PrintError
    - printf
    - BN_new
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_BN_new(TPM_BIGNUM *bn_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bn_in
    argTypes:
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1939
    functionDepth: 0
    functionLinenumber: 1939
    functionLinenumberEnd: 1945
    functionName: TPM_BN_free
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void TPM_BN_free(TPM_BIGNUM bn_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_bn2bin
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bin
    - bn_in
    argTypes:
    - unsigned char*
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1957
    functionDepth: 0
    functionLinenumber: 1957
    functionLinenumberEnd: 1963
    functionName: TPM_bn2bin
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - BN_bn2bin
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_bn2bin(unsigned char *bin,\n\t\t      TPM_BIGNUM bn_in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1986,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1988,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:1989,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - bn_in
    - bin
    - bytes
    argTypes:
    - TPM_BIGNUM*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1973
    functionDepth: 2
    functionLinenumber: 1973
    functionLinenumberEnd: 1994
    functionName: TPM_bin2bn
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 4
    functionsReached:
    - BN_bin2bn
    - TPM_OpenSSL_PrintError
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_bin2bn(TPM_BIGNUM *bn_in, const unsigned char *bin,
      unsigned int bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2011,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2013,1
    - Dst: SHA1_Init
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2016,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - context
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 2007
    functionDepth: 2
    functionLinenumber: 2007
    functionLinenumberEnd: 2019
    functionName: TPM_SHA1InitCmd
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 1
    functionsReached:
    - TPM_Malloc
    - SHA1_Init
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SHA1InitCmd(void **context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2028,1
    - Dst: SHA1_Update
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2030,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2033,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - context
    - data
    - length
    argTypes:
    - void*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2024
    functionDepth: 1
    functionLinenumber: 2024
    functionLinenumberEnd: 2037
    functionName: TPM_SHA1UpdateCmd
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 1
    functionsReached:
    - SHA1_Update
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SHA1UpdateCmd(void *context, const unsigned char *data,
      uint32_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2046,1
    - Dst: SHA1_Final
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2048,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - md
    - context
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 2042
    functionDepth: 1
    functionLinenumber: 2042
    functionLinenumberEnd: 2055
    functionName: TPM_SHA1FinalCmd
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 1
    functionsReached:
    - printf
    - SHA1_Final
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SHA1FinalCmd(unsigned char *md, void *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2062,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2064,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2065,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - context
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2059
    functionDepth: 1
    functionLinenumber: 2059
    functionLinenumberEnd: 2069
    functionName: TPM_SHA1Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 1
    functionsReached:
    - printf
    - free
    - memset
    linkageType: ''
    returnType: void
    signature: void TPM_SHA1Delete(void **context)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2087,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2090,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2091,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2097,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2100,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2105,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2109,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2113,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2117,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2121,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2125,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2129,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2133,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2137,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 41
    argCount: 3
    argNames:
    - context
    - stream
    - stream_size
    argTypes:
    - void**
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2077
    functionDepth: 3
    functionLinenumber: 2077
    functionLinenumberEnd: 2140
    functionName: TPM_Sha1Context_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 1
    functionsReached:
    - TPM_CheckTag
    - TPM_LoadBool
    - TPM_Malloc
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Sha1Context_Load(void **context,\n\t\t\t\tunsigned
      char **stream,\n\t\t\t\tuint32_t *stream_size)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2156,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2160,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2164,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2167,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2171,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2174,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2177,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2180,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2183,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2186,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2189,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2192,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2195,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2198,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 43
    argCount: 2
    argNames:
    - sbuffer
    - context
    argTypes:
    - TPM_STORE_BUFFER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2148
    functionDepth: 1
    functionLinenumber: 2148
    functionLinenumberEnd: 2201
    functionName: TPM_Sha1Context_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    - TPM_Sbuffer_Append
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Sha1Context_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      void *context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2214,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2216,1
    - Dst: TPM_SymmetricKeyData_Init
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tpm_symmetric_key_data
    argTypes:
    - TPM_SYMMETRIC_KEY_TOKEN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2222
      start: 2210
    functionDepth: 2
    functionLinenumber: 2210
    functionLinenumberEnd: 2222
    functionName: TPM_SymmetricKeyData_New
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_Malloc
    - printf
    - TPM_SymmetricKeyData_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SymmetricKeyData_New(TPM_SYMMETRIC_KEY_TOKEN *tpm_symmetric_key_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2230,1
    - Dst: TPM_SymmetricKeyData_Init
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2232,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tpm_symmetric_key_data
    argTypes:
    - TPM_SYMMETRIC_KEY_TOKEN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2237
      start: 2228
    functionDepth: 1
    functionLinenumber: 2228
    functionLinenumberEnd: 2237
    functionName: TPM_SymmetricKeyData_Free
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_SymmetricKeyData_Init
    - printf
    - free
    linkageType: ''
    returnType: void
    signature: void TPM_SymmetricKeyData_Free(TPM_SYMMETRIC_KEY_TOKEN *tpm_symmetric_key_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2251,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2255,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2256,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tpm_symmetric_key_token
    argTypes:
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2246
    functionDepth: 1
    functionLinenumber: 2246
    functionLinenumberEnd: 2259
    functionName: TPM_SymmetricKeyData_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 2
    functionsReached:
    - printf
    - memset
    linkageType: ''
    returnType: void
    signature: void TPM_SymmetricKeyData_Init(TPM_SYMMETRIC_KEY_TOKEN tpm_symmetric_key_token)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2274,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2277,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2281,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2285,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2290,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2294,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2298,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2302,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2303,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2304,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - tpm_symmetric_key_token
    - stream
    - stream_size
    argTypes:
    - TPM_SYMMETRIC_KEY_TOKEN
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2266
    functionDepth: 3
    functionLinenumber: 2266
    functionLinenumberEnd: 2307
    functionName: TPM_SymmetricKeyData_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_CheckTag
    - TPM_LoadBool
    - TPM_PrintFour
    - TPM_Loadn
    - printf
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_Load(TPM_SYMMETRIC_KEY_TOKEN tpm_symmetric_key_token,\n
      \                                    unsigned char **stream,\n                                     uint32_t
      *stream_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2321,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2323,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2324,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2325,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2329,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2333,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2337,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2341,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2344,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - sbuffer
    - tpm_symmetric_key_token
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2314
    functionDepth: 3
    functionLinenumber: 2314
    functionLinenumberEnd: 2350
    functionName: TPM_SymmetricKeyData_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append
    - TPM_PrintFour
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_Store(TPM_STORE_BUFFER *sbuffer,\n
      \                                     const TPM_SYMMETRIC_KEY_TOKEN tpm_symmetric_key_token)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2363,1
    - Dst: DES_random_key
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2366,1
    - Dst: DES_random_key
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2367,1
    - Dst: DES_random_key
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2368,1
    - Dst: DES_set_odd_parity
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2370,1
    - Dst: DES_set_odd_parity
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2371,1
    - Dst: DES_set_odd_parity
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2372,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2373,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2375,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - tpm_symmetric_key_token
    argTypes:
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2382
      start: 2357
    functionDepth: 3
    functionLinenumber: 2357
    functionLinenumberEnd: 2382
    functionName: TPM_SymmetricKeyData_GenerateKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - DES_set_odd_parity
    - TPM_PrintFour
    - DES_random_key
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SymmetricKeyData_GenerateKey(TPM_SYMMETRIC_KEY_TOKEN
      tpm_symmetric_key_token)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2405,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2411,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2414,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2418,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2423,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2425,1
    - Dst: TPM_SymmetricKeyData_Crypt
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2427,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - encrypt_data
    - encrypt_length
    - decrypt_data
    - decrypt_length
    - tpm_symmetric_key_token
    argTypes:
    - unsigned char**
    - uint32_t*
    - unsigned char*
    - uint32_t
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2392
    functionDepth: 2
    functionLinenumber: 2392
    functionLinenumberEnd: 2436
    functionName: TPM_SymmetricKeyData_Encrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memset
    - TPM_Malloc
    - TPM_SymmetricKeyData_Crypt
    - printf
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_Encrypt(unsigned char **encrypt_data,
      \  /* output, caller frees */\n                                        uint32_t
      *encrypt_length,\t\t/* output */\n                                        const
      unsigned char *decrypt_data,      /* input */\n                                        uint32_t
      decrypt_length,\t\t/* input */\n                                        const
      TPM_SYMMETRIC_KEY_TOKEN\n\t\t\t\t\ttpm_symmetric_key_token)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2458,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2462,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2468,1
    - Dst: TPM_SymmetricKeyData_Crypt
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2472,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2484,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2487,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2499,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 5
    argNames:
    - decrypt_data
    - decrypt_length
    - encrypt_data
    - encrypt_length
    - tpm_symmetric_key_data
    argTypes:
    - unsigned char**
    - uint32_t*
    - unsigned char*
    - uint32_t
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2506
      start: 2446
    functionDepth: 2
    functionLinenumber: 2446
    functionLinenumberEnd: 2506
    functionName: TPM_SymmetricKeyData_Decrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_Malloc
    - TPM_SymmetricKeyData_Crypt
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_Decrypt(unsigned char **decrypt_data,
      \  /* output, caller frees */\n                                        uint32_t
      *decrypt_length,\t/* output */\n                                        const
      unsigned char *encrypt_data,      /* input */\n                                        uint32_t
      encrypt_length,\t\t/* input */\n                                        const
      TPM_SYMMETRIC_KEY_TOKEN\n\t\t\t\t\ttpm_symmetric_key_data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2541,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2546,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2547,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2548,1
    - Dst: DES_set_key_checked
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2553,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2555,1
    - Dst: DES_set_key_checked
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2560,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2562,1
    - Dst: DES_set_key_checked
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2567,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2569,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2575,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2577,1
    - Dst: DES_ede3_cbc_encrypt
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2578,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2586,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 6
    argNames:
    - data_out
    - data_in
    - length
    - tpm_symmetric_key_data
    - enc
    - error
    argTypes:
    - unsigned char*
    - unsigned char*
    - uint32_t
    - TPM_SYMMETRIC_KEY_DATA*
    - int
    - TPM_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2525
    functionDepth: 3
    functionLinenumber: 2525
    functionLinenumberEnd: 2589
    functionName: TPM_SymmetricKeyData_Crypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 2
    functionsReached:
    - DES_ede3_cbc_encrypt
    - TPM_PrintFour
    - memset
    - printf
    - TPM_PrintFourLimit
    - DES_set_key_checked
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_Crypt(unsigned char *data_out,           /*
      output */\n                                             const unsigned char
      *data_in,      /* input */\n                                             uint32_t
      length,\t\t\t/* input */\n                                             TPM_SYMMETRIC_KEY_DATA
      *tpm_symmetric_key_data, /*in*/\n                                             int
      enc,                           /* input */\n                                             TPM_RESULT
      error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2605,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2609,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2610,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tpm_symmetric_key_token
    argTypes:
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2613
      start: 2600
    functionDepth: 1
    functionLinenumber: 2600
    functionLinenumberEnd: 2613
    functionName: TPM_SymmetricKeyData_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 2
    functionsReached:
    - printf
    - memset
    linkageType: ''
    returnType: void
    signature: void TPM_SymmetricKeyData_Init(TPM_SYMMETRIC_KEY_TOKEN tpm_symmetric_key_token)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2628,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2631,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2635,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2639,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2643,1
    - Dst: TPM_SymmetricKeyData_SetKeys
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2648,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - tpm_symmetric_key_token
    - stream
    - stream_size
    argTypes:
    - TPM_SYMMETRIC_KEY_TOKEN
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2620
    functionDepth: 3
    functionLinenumber: 2620
    functionLinenumberEnd: 2651
    functionName: TPM_SymmetricKeyData_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_CheckTag
    - TPM_LoadBool
    - TPM_Loadn
    - TPM_SymmetricKeyData_SetKeys
    - printf
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_Load(TPM_SYMMETRIC_KEY_TOKEN tpm_symmetric_key_token,\n
      \                                    unsigned char **stream,\n                                     uint32_t
      *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2665,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2668,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2672,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2676,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2680,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_symmetric_key_token
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2686
      start: 2658
    functionDepth: 1
    functionLinenumber: 2658
    functionLinenumberEnd: 2686
    functionName: TPM_SymmetricKeyData_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_Store(TPM_STORE_BUFFER *sbuffer,\n
      \                                     const TPM_SYMMETRIC_KEY_TOKEN tpm_symmetric_key_token)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2699,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2702,1
    - Dst: TPM_SymmetricKeyData_SetKeys
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - tpm_symmetric_key_token
    argTypes:
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2712
      start: 2693
    functionDepth: 1
    functionLinenumber: 2693
    functionLinenumberEnd: 2712
    functionName: TPM_SymmetricKeyData_GenerateKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_Random
    - TPM_SymmetricKeyData_SetKeys
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SymmetricKeyData_GenerateKey(TPM_SYMMETRIC_KEY_TOKEN
      tpm_symmetric_key_token)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2725,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2729,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2736,1
    - Dst: TPM_SymmetricKeyData_SetKeys
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2738,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - tpm_symmetric_key_data
    - key_data
    - key_data_size
    argTypes:
    - TPM_SYMMETRIC_KEY_DATA*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2744
      start: 2719
    functionDepth: 1
    functionLinenumber: 2719
    functionLinenumberEnd: 2744
    functionName: TPM_SymmetricKeyData_SetKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_SymmetricKeyData_SetKeys
    - printf
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_SetKey(TPM_SYMMETRIC_KEY_DATA *tpm_symmetric_key_data,\n
      \                                      const unsigned char *key_data,\n                                       uint32_t
      key_data_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2757,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2759,1
    - Dst: AES_set_encrypt_key
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2760,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2764,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2765,1
    - Dst: AES_set_decrypt_key
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2770,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2774,1
    - Dst: TPM_OpenSSL_PrintError
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2775,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - tpm_symmetric_key_data
    argTypes:
    - TPM_SYMMETRIC_KEY_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2752
    functionDepth: 3
    functionLinenumber: 2752
    functionLinenumberEnd: 2780
    functionName: TPM_SymmetricKeyData_SetKeys
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 3
    functionsReached:
    - TPM_PrintFour
    - TPM_OpenSSL_PrintError
    - AES_set_decrypt_key
    - AES_set_encrypt_key
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SymmetricKeyData_SetKeys(TPM_SYMMETRIC_KEY_DATA *tpm_symmetric_key_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2804,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2810,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2813,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2817,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2822,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2824,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2826,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2828,1
    - Dst: AES_cbc_encrypt
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2829,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2835,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2837,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - encrypt_data
    - encrypt_length
    - decrypt_data
    - decrypt_length
    - tpm_symmetric_key_token
    argTypes:
    - unsigned char**
    - uint32_t*
    - unsigned char*
    - uint32_t
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2839
      start: 2790
    functionDepth: 3
    functionLinenumber: 2790
    functionLinenumberEnd: 2839
    functionName: TPM_SymmetricKeyData_Encrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - memcpy
    - TPM_PrintFour
    - memset
    - TPM_Malloc
    - printf
    - AES_cbc_encrypt
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_Encrypt(unsigned char **encrypt_data,
      \  /* output, caller frees */\n                                        uint32_t
      *encrypt_length,\t\t/* output */\n                                        const
      unsigned char *decrypt_data,\t/* input */\n                                        uint32_t
      decrypt_length,\t\t/* input */\n                                        const
      TPM_SYMMETRIC_KEY_TOKEN\n\t\t\t\t\ttpm_symmetric_key_token)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2864,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2868,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2874,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2879,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2881,1
    - Dst: AES_cbc_encrypt
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2882,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2888,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2895,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2898,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2910,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 5
    argNames:
    - decrypt_data
    - decrypt_length
    - encrypt_data
    - encrypt_length
    - tpm_symmetric_key_token
    argTypes:
    - unsigned char**
    - uint32_t*
    - unsigned char*
    - uint32_t
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2917
      start: 2849
    functionDepth: 3
    functionLinenumber: 2849
    functionLinenumberEnd: 2917
    functionName: TPM_SymmetricKeyData_Decrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_PrintFour
    - memset
    - TPM_Malloc
    - printf
    - AES_cbc_encrypt
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_Decrypt(unsigned char **decrypt_data,
      \  /* output, caller frees */\n                                        uint32_t
      *decrypt_length,\t\t/* output */\n                                        const
      unsigned char *encrypt_data,\t/* input */\n                                        uint32_t
      encrypt_length,\t\t/* input */\n                                        const
      TPM_SYMMETRIC_KEY_TOKEN\n\t\t\t\t\ttpm_symmetric_key_token)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2940,1
    - Dst: TPM_SymmetricKeyData_New
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2944,1
    - Dst: TPM_SymmetricKeyData_SetKey
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2948,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2955,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2962,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2963,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2964,1
    - Dst: TPM_AES_ctr128_encrypt
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2965,1
    - Dst: TPM_SymmetricKeyData_Free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2971,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 7
    argNames:
    - data_out
    - data_in
    - data_size
    - symmetric_key
    - symmetric_key_size
    - ctr_in
    - ctr_in_size
    argTypes:
    - unsigned char*
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2973
      start: 2928
    functionDepth: 3
    functionLinenumber: 2928
    functionLinenumberEnd: 2973
    functionName: TPM_SymmetricKeyData_CtrCrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_SymmetricKeyData_SetKey
    - memcpy
    - TPM_PrintFour
    - TPM_SymmetricKeyData_Free
    - TPM_AES_ctr128_encrypt
    - printf
    - TPM_SymmetricKeyData_New
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_CtrCrypt(unsigned char *data_out,
      \              /* output */\n                                         const
      unsigned char *data_in,          /* input */\n                                         uint32_t
      data_size,\t\t\t/* input */\n                                         const
      unsigned char *symmetric_key,    /* input */\n                                         uint32_t
      symmetric_key_size,\t\t/* input */\n                                         const
      unsigned char *ctr_in,\t\t/* input */\n                                         uint32_t
      ctr_in_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2991,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2993,1
    - Dst: AES_encrypt
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2995,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:2998,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:3003,1
    - Dst: LOAD32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:3011,1
    - Dst: STORE32
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:3013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - data_out
    - data_in
    - data_size
    - aes_enc_key
    - ctr
    argTypes:
    - unsigned char*
    - unsigned char*
    - uint32_t
    - AES_KEY*
    - unsigned char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3017
      start: 2981
    functionDepth: 1
    functionLinenumber: 2981
    functionLinenumberEnd: 3017
    functionName: TPM_AES_ctr128_encrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 1
    functionsReached:
    - TPM_XOR
    - LOAD32
    - AES_encrypt
    - printf
    - STORE32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AES_ctr128_encrypt(unsigned char *data_out,\n\t\t\t\t\t
      const unsigned char *data_in,\n\t\t\t\t\t uint32_t data_size,\n\t\t\t\t\t const
      AES_KEY *aes_enc_key,\n\t\t\t\t\t unsigned char ctr[TPM_AES_BLOCK_SIZE])"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:3051,1
    - Dst: TPM_SymmetricKeyData_New
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:3055,1
    - Dst: TPM_SymmetricKeyData_SetKey
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:3059,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:3066,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:3073,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:3075,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:3076,1
    - Dst: AES_ofb128_encrypt
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:3077,1
    - Dst: TPM_SymmetricKeyData_Free
      Src: /src/libtpms/src/tpm12/tpm_crypto.c:3084,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 7
    argNames:
    - data_out
    - data_in
    - data_size
    - symmetric_key
    - symmetric_key_size
    - ivec_in
    - ivec_in_size
    argTypes:
    - unsigned char*
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3086
      start: 3038
    functionDepth: 3
    functionLinenumber: 3038
    functionLinenumberEnd: 3086
    functionName: TPM_SymmetricKeyData_OfbCrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto.c
    functionUses: 0
    functionsReached:
    - TPM_SymmetricKeyData_SetKey
    - memcpy
    - TPM_PrintFour
    - TPM_SymmetricKeyData_Free
    - printf
    - TPM_SymmetricKeyData_New
    - AES_ofb128_encrypt
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_OfbCrypt(unsigned char *data_out,
      \      /* output */\n                                         const unsigned
      char *data_in,  /* input */\n                                         uint32_t
      data_size,\t\t/* input */\n                                         const unsigned
      char *symmetric_key,    /* in */\n                                         uint32_t
      symmetric_key_size,\t\t/* in */\n                                         unsigned
      char *ivec_in,        /* input */\n                                         uint32_t
      ivec_in_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:73,1
    - Dst: TPM_Pubkey_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:74,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tpm_migrationkeyauth
    argTypes:
    - TPM_MIGRATIONKEYAUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: TPM_Migrationkeyauth_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Pubkey_Init
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_Migrationkeyauth_Init(TPM_MIGRATIONKEYAUTH *tpm_migrationkeyauth)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:96,1
    - Dst: TPM_Pubkey_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:99,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_migration.c:103,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tpm_migrationkeyauth
    - stream
    - stream_size
    argTypes:
    - TPM_MIGRATIONKEYAUTH*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 110
    functionName: TPM_Migrationkeyauth_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - TPM_Digest_Load
    - TPM_Pubkey_Load
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Migrationkeyauth_Load(TPM_MIGRATIONKEYAUTH *tpm_migrationkeyauth,\n\t\t\t\t
      \    unsigned char **stream,\n\t\t\t\t     uint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:123,1
    - Dst: TPM_Pubkey_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:126,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_migration.c:130,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - tpm_migrationkeyauth
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_MIGRATIONKEYAUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 137
    functionName: TPM_Migrationkeyauth_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Pubkey_Store
    - TPM_Digest_Store
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Migrationkeyauth_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \     TPM_MIGRATIONKEYAUTH *tpm_migrationkeyauth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:150,1
    - Dst: TPM_Pubkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:152,1
    - Dst: TPM_Migrationkeyauth_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_migrationkeyauth
    argTypes:
    - TPM_MIGRATIONKEYAUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: TPM_Migrationkeyauth_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Pubkey_Delete
    - TPM_Migrationkeyauth_Init
    linkageType: ''
    returnType: void
    signature: void TPM_Migrationkeyauth_Delete(TPM_MIGRATIONKEYAUTH *tpm_migrationkeyauth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpm_msa_composite
    argTypes:
    - TPM_MSA_COMPOSITE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: TPM_MsaComposite_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_MsaComposite_Init(TPM_MSA_COMPOSITE *tpm_msa_composite)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:194,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_migration.c:197,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:202,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_migration.c:209,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - tpm_msa_composite
    - stream
    - stream_size
    argTypes:
    - TPM_MSA_COMPOSITE*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 217
    functionName: TPM_MsaComposite_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Malloc
    - TPM_Digest_Load
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_MsaComposite_Load(TPM_MSA_COMPOSITE *tpm_msa_composite,\n\t\t\t\t
      unsigned char **stream,\n\t\t\t\t uint32_t *stream_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:231,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_migration.c:234,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:238,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - sbuffer
    - tpm_msa_composite
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_MSA_COMPOSITE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: TPM_MsaComposite_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Digest_Store
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_MsaComposite_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \ const TPM_MSA_COMPOSITE *tpm_msa_composite)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:254,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_migration.c:256,1
    - Dst: TPM_MsaComposite_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_msa_composite
    argTypes:
    - TPM_MSA_COMPOSITE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 260
    functionName: TPM_MsaComposite_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_MsaComposite_Init
    - printf
    - free
    linkageType: ''
    returnType: void
    signature: void TPM_MsaComposite_Delete(TPM_MSA_COMPOSITE *tpm_msa_composite)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:269,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_migration.c:271,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - tpm_digest
    - tpm_msa_composite
    argTypes:
    - TPM_DIGEST
    - TPM_MSA_COMPOSITE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 284
    functionName: TPM_MsaComposite_CheckMigAuthDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Compare
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_MsaComposite_CheckMigAuthDigest(TPM_DIGEST tpm_digest,
      /* value to check vs list */\n\t\t\t\t\t       TPM_MSA_COMPOSITE *tpm_msa_composite)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:308,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:310,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_migration.c:317,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_migration.c:319,1
    - Dst: TPM_Sbuffer_Clear
      Src: /src/libtpms/src/tpm12/tpm_migration.c:321,1
    - Dst: TPM_CmkSigticket_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:322,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_migration.c:323,1
    - Dst: TPM_HMAC_Check
      Src: /src/libtpms/src/tpm12/tpm_migration.c:326,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:335,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:339,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - sigTicket
    - tpmProof
    - tpm_msa_composite
    - tpm_cmk_sigticket
    argTypes:
    - TPM_DIGEST
    - TPM_SECRET
    - TPM_MSA_COMPOSITE*
    - TPM_CMK_SIGTICKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 341
    functionName: TPM_MsaComposite_CheckSigTicket
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Get
    - TPM_Sbuffer_Clear
    - TPM_PrintFour
    - TPM_CmkSigticket_Store
    - TPM_Sbuffer_Delete
    - TPM_HMAC_Check
    - printf
    - TPM_Digest_Copy
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_MsaComposite_CheckSigTicket(TPM_DIGEST sigTicket, /*
      expected HMAC */\n\t\t\t\t\t   TPM_SECRET tpmProof,\t  /* HMAC key */\n\t\t\t\t\t
      \  TPM_MSA_COMPOSITE *tpm_msa_composite,\n\t\t\t\t\t   TPM_CMK_SIGTICKET *tpm_cmk_sigticket)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:356,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:357,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:358,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tpm_cmk_auth
    argTypes:
    - TPM_CMK_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 361
    functionName: TPM_CmkAuth_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_CmkAuth_Init(TPM_CMK_AUTH *tpm_cmk_auth)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:379,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:382,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:386,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tpm_cmk_auth
    - stream
    - stream_size
    argTypes:
    - TPM_CMK_AUTH*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 393
    functionName: TPM_CmkAuth_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Load
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CmkAuth_Load(TPM_CMK_AUTH *tpm_cmk_auth,\n\t\t\t    unsigned
      char **stream,\n\t\t\t    uint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:406,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:409,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:413,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - tpm_cmk_auth
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_CMK_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 420
    functionName: TPM_CmkAuth_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Store
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CmkAuth_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t     const
      TPM_CMK_AUTH *tpm_cmk_auth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:433,1
    - Dst: TPM_CmkAuth_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_cmk_auth
    argTypes:
    - TPM_CMK_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 438
    functionName: TPM_CmkAuth_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_CmkAuth_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_CmkAuth_Delete(TPM_CMK_AUTH *tpm_cmk_auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:453,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:454,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpm_cmk_migauth
    argTypes:
    - TPM_CMK_MIGAUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 457
    functionName: TPM_CmkMigauth_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_CmkMigauth_Init(TPM_CMK_MIGAUTH *tpm_cmk_migauth)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:475,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_migration.c:478,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:482,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tpm_cmk_migauth
    - stream
    - stream_size
    argTypes:
    - TPM_CMK_MIGAUTH*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 469
    functionDepth: 3
    functionLinenumber: 469
    functionLinenumberEnd: 489
    functionName: TPM_CmkMigauth_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Load
    - printf
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CmkMigauth_Load(TPM_CMK_MIGAUTH *tpm_cmk_migauth,\n\t\t\t
      \      unsigned char **stream,\n\t\t\t       uint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:502,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_migration.c:505,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:509,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - tpm_cmk_migauth
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_CMK_MIGAUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 516
    functionName: TPM_CmkMigauth_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Store
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CmkMigauth_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\tconst
      TPM_CMK_MIGAUTH *tpm_cmk_migauth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:529,1
    - Dst: TPM_CmkMigauth_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_cmk_migauth
    argTypes:
    - TPM_CMK_MIGAUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 534
    functionName: TPM_CmkMigauth_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_CmkMigauth_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_CmkMigauth_Delete(TPM_CMK_MIGAUTH *tpm_cmk_migauth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:550,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:551,1
    - Dst: TPM_CmkMigauth_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:554,1
    - Dst: TPM_HMAC_CheckSbuffer
      Src: /src/libtpms/src/tpm12/tpm_migration.c:558,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - valid
    - tpm_hmac
    - tpm_hmac_key
    - tpm_cmk_migauth
    argTypes:
    - TPM_BOOL*
    - TPM_HMAC
    - TPM_SECRET
    - TPM_CMK_MIGAUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 565
    functionName: TPM_CmkMigauth_CheckHMAC
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Delete
    - TPM_HMAC_CheckSbuffer
    - TPM_CmkMigauth_Store
    - printf
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CmkMigauth_CheckHMAC(TPM_BOOL *valid,\t\t\t/* result
      */\n\t\t\t\t    TPM_HMAC tpm_hmac,\t\t\t/* expected */\n\t\t\t\t    TPM_SECRET
      tpm_hmac_key,\t\t/* key */\n\t\t\t\t    TPM_CMK_MIGAUTH *tpm_cmk_migauth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:580,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:581,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpm_cmk_sigticket
    argTypes:
    - TPM_CMK_SIGTICKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 584
    functionName: TPM_CmkSigticket_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_CmkSigticket_Init(TPM_CMK_SIGTICKET *tpm_cmk_sigticket)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:602,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_migration.c:605,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:609,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tpm_cmk_sigticket
    - stream
    - stream_size
    argTypes:
    - TPM_CMK_SIGTICKET*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 596
    functionDepth: 3
    functionLinenumber: 596
    functionLinenumberEnd: 616
    functionName: TPM_CmkSigticket_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Load
    - printf
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CmkSigticket_Load(TPM_CMK_SIGTICKET *tpm_cmk_sigticket,\n\t\t\t\t
      unsigned char **stream,\n\t\t\t\t uint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:629,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_migration.c:632,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:636,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - tpm_cmk_sigticket
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_CMK_SIGTICKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 643
    functionName: TPM_CmkSigticket_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 1
    functionsReached:
    - TPM_Digest_Store
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CmkSigticket_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \ const TPM_CMK_SIGTICKET *tpm_cmk_sigticket)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:656,1
    - Dst: TPM_CmkSigticket_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_cmk_sigticket
    argTypes:
    - TPM_CMK_SIGTICKET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 661
    functionName: TPM_CmkSigticket_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_CmkSigticket_Init
    linkageType: ''
    returnType: void
    signature: void TPM_CmkSigticket_Delete(TPM_CMK_SIGTICKET *tpm_cmk_sigticket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:676,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tpm_cmk_ma_approval
    argTypes:
    - TPM_CMK_MA_APPROVAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 679
    functionName: TPM_CmkMaApproval_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_CmkMaApproval_Init(TPM_CMK_MA_APPROVAL *tpm_cmk_ma_approval)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:697,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_migration.c:700,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tpm_cmk_ma_approval
    - stream
    - stream_size
    argTypes:
    - TPM_CMK_MA_APPROVAL*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 707
    functionName: TPM_CmkMaApproval_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Load
    - printf
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CmkMaApproval_Load(TPM_CMK_MA_APPROVAL *tpm_cmk_ma_approval,\n\t\t\t\t
      \ unsigned char **stream,\n\t\t\t\t  uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:720,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_migration.c:723,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:727,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sbuffer
    - tpm_cmk_ma_approval
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_CMK_MA_APPROVAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 730
    functionName: TPM_CmkMaApproval_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Store
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CmkMaApproval_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \  const TPM_CMK_MA_APPROVAL *tpm_cmk_ma_approval)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:743,1
    - Dst: TPM_CmkMaApproval_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_cmk_ma_approval
    argTypes:
    - TPM_CMK_MA_APPROVAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 748
    functionName: TPM_CmkMaApproval_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_CmkMaApproval_Init
    linkageType: ''
    returnType: void
    signature: void TPM_CmkMaApproval_Delete(TPM_CMK_MA_APPROVAL *tpm_cmk_ma_approval)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:764,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:765,1
    - Dst: TPM_CmkMaApproval_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:768,1
    - Dst: TPM_HMAC_CheckSbuffer
      Src: /src/libtpms/src/tpm12/tpm_migration.c:772,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - valid
    - tpm_hmac
    - tpm_hmac_key
    - tpm_cmk_ma_approval
    argTypes:
    - TPM_BOOL*
    - TPM_HMAC
    - TPM_SECRET
    - TPM_CMK_MA_APPROVAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 779
    functionName: TPM_CmkMaApproval_CheckHMAC
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_CmkMaApproval_Store
    - TPM_Sbuffer_Delete
    - TPM_HMAC_CheckSbuffer
    - printf
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CmkMaApproval_CheckHMAC(TPM_BOOL *valid,\t\t\t/* result
      */\n\t\t\t\t       TPM_HMAC tpm_hmac,\t\t/* expected */\n\t\t\t\t       TPM_SECRET
      tpm_hmac_key,\t\t/* key */\n\t\t\t\t       TPM_CMK_MA_APPROVAL *tpm_cmk_ma_approval)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:815,1
    - Dst: TPM_StoreAsymkey_GetO1Size
      Src: /src/libtpms/src/tpm12/tpm_migration.c:820,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_migration.c:823,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_migration.c:826,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_migration.c:829,1
    - Dst: TPM_StoreAsymkey_StoreO1
      Src: /src/libtpms/src/tpm12/tpm_migration.c:832,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_migration.c:843,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_migration.c:847,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_migration.c:848,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_migration.c:849,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_migration.c:851,1
    - Dst: TPM_RSAPublicEncrypt_Pubkey
      Src: /src/libtpms/src/tpm12/tpm_migration.c:855,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_migration.c:859,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_migration.c:861,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_migration.c:862,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_migration.c:863,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 6
    argNames:
    - outData
    - d1AsymKey
    - pHash
    - payload_type
    - random
    - migrationKey
    argTypes:
    - TPM_SIZED_BUFFER*
    - TPM_STORE_ASYMKEY*
    - TPM_DIGEST
    - TPM_PAYLOAD_TYPE
    - TPM_SIZED_BUFFER*
    - TPM_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 800
    functionDepth: 3
    functionLinenumber: 800
    functionLinenumberEnd: 865
    functionName: TPM_CreateBlobCommon
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_XOR
    - TPM_PrintFour
    - TPM_Random
    - TPM_Malloc
    - TPM_StoreAsymkey_StoreO1
    - printf
    - TPM_SizedBuffer_Set
    - TPM_RSAPublicEncrypt_Pubkey
    - TPM_StoreAsymkey_GetO1Size
    - TPM_PrintFourLimit
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CreateBlobCommon(TPM_SIZED_BUFFER *outData,\t/* The
      modified, encrypted\n\t\t\t\t\t\t\t\t   entity. */\n\t\t\t\tTPM_STORE_ASYMKEY
      *d1AsymKey,\n\t\t\t\tTPM_DIGEST pHash,\t\t/* for OAEP padding */\n\t\t\t\tTPM_PAYLOAD_TYPE
      payload_type,\n\t\t\t\tTPM_SIZED_BUFFER *random,\t/* String used for xor encryption
      */\n\t\t\t\tTPM_PUBKEY *migrationKey)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:952,1
    - Dst: TPM_Migrationkeyauth_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:953,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:954,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:955,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:956,1
    - Dst: TPM_StoreAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:958,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:959,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_migration.c:965,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:971,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_migration.c:972,1
    - Dst: TPM_Migrationkeyauth_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:976,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:980,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:986,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_migration.c:998,1
    - Dst: TPM_CheckRequestTag21
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1002,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1006,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1014,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1018,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1026,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1030,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1046,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1054,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1058,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1071,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1083,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1091,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1099,1
    - Dst: TPM_RSAPrivateDecryptMalloc
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1101,1
    - Dst: TPM_StoreAsymkey_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1111,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1119,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1130,1
    - Dst: TPM_Auth2data_Check
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1142,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1155,1
    - Dst: TPM_Pubkey_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1156,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1160,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1162,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1170,1
    - Dst: TPM_CreateBlobCommon
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1193,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1203,1
    - Dst: TPM_RSAPublicEncrypt_Pubkey
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1207,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1218,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1227,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1229,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1237,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1241,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1247,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1258,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1267,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1276,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1283,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1290,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1297,1
    - Dst: TPM_Migrationkeyauth_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1303,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1304,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1305,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1306,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1307,1
    - Dst: TPM_StoreAsymkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1308,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1309,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 165
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 890
    functionDepth: 4
    functionLinenumber: 890
    functionLinenumberEnd: 1311
    functionName: TPM_Process_CreateMigrationBlob
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Migrationkeyauth_Init
    - TPM_Sbuffer_Get
    - TPM_StoreAsymkey_Init
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_RSAPrivateDecryptMalloc
    - TPM_SizedBuffer_Store
    - TPM_CreateBlobCommon
    - TPM_RSAPublicEncrypt_Pubkey
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_Auth2data_Check
    - TPM_GetInParamDigest
    - TPM_StoreAsymkey_Load
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_Load16
    - TPM_SizedBuffer_Init
    - TPM_CheckRequestTag21
    - TPM_StoreAsymkey_Delete
    - TPM_SizedBuffer_Delete
    - printf
    - TPM_Migrationkeyauth_Delete
    - TPM_Pubkey_Store
    - TPM_ProcessAudit
    - TPM_Migrationkeyauth_Load
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_Sbuffer_Delete
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_SHA1_Check
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_CreateMigrationBlob(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \  TPM_STORE_BUFFER *response,\n\t\t\t\t\t   TPM_TAG tag,\n\t\t\t\t\t   uint32_t
      paramSize,\n\t\t\t\t\t   TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t   unsigned char
      *command,\n\t\t\t\t\t   TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1388,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1389,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1390,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1391,1
    - Dst: TPM_StoreAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1394,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1395,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1401,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1407,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1408,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1412,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1418,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1430,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1434,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1438,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1447,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1462,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1471,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1477,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1481,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1494,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1507,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1515,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1516,1
    - Dst: TPM_RSAPrivateDecryptMalloc
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1517,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1526,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1534,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1537,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1538,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1540,1
    - Dst: TPM_StoreAsymkey_LoadO1
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1544,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1554,1
    - Dst: TPM_StoreAsymkey_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1569,1
    - Dst: TPM_RSAPublicEncryptSbuffer_Key
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1573,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1580,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1582,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1590,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1596,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1607,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1616,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1623,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1630,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1635,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1636,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1637,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1638,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1639,1
    - Dst: TPM_StoreAsymkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1640,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1641,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 131
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1340
    functionDepth: 3
    functionLinenumber: 1340
    functionLinenumberEnd: 1643
    functionName: TPM_Process_ConvertMigrationBlob
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_StoreAsymkey_Init
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_RSAPrivateDecryptMalloc
    - TPM_SizedBuffer_Store
    - TPM_StoreAsymkey_Store
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_SizedBuffer_Init
    - TPM_StoreAsymkey_Delete
    - TPM_SizedBuffer_Delete
    - TPM_Malloc
    - printf
    - TPM_StoreAsymkey_LoadO1
    - TPM_CheckRequestTag10
    - TPM_RSAPublicEncryptSbuffer_Key
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_XOR
    - TPM_KeyHandleEntries_GetKey
    - TPM_Sbuffer_Delete
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_PrintFourLimit
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ConvertMigrationBlob(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \   TPM_STORE_BUFFER *response,\n\t\t\t\t\t    TPM_TAG tag,\n\t\t\t\t\t    uint32_t
      paramSize,\n\t\t\t\t\t    TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t    unsigned
      char *command,\n\t\t\t\t\t    TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1697,1
    - Dst: TPM_Pubkey_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1698,1
    - Dst: TPM_Migrationkeyauth_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1699,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1700,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1708,1
    - Dst: TPM_Pubkey_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1712,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1718,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1730,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1734,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1738,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1747,1
    - Dst: TPM_KeyParms_GetRSAKeyParms
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1763,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1768,1
    - Dst: TPM_KeyParams_CheckDefaultExponent
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1775,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1779,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1791,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1806,1
    - Dst: TPM_Pubkey_Copy
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1814,1
    - Dst: TPM_Pubkey_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1823,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1826,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1828,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1839,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1841,1
    - Dst: TPM_Migrationkeyauth_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1849,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1855,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1866,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1875,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1882,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1889,1
    - Dst: TPM_Pubkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1894,1
    - Dst: TPM_Migrationkeyauth_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1895,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1896,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 97
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1655
    functionDepth: 3
    functionLinenumber: 1655
    functionLinenumberEnd: 1898
    functionName: TPM_Process_AuthorizeMigrationKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_CheckRequestTag1
    - TPM_Migrationkeyauth_Init
    - TPM_Sbuffer_Get
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_SHA1
    - TPM_Pubkey_Init
    - TPM_KeyParms_GetRSAKeyParms
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Pubkey_Load
    - TPM_Pubkey_Copy
    - TPM_Load16
    - TPM_KeyParams_CheckDefaultExponent
    - printf
    - TPM_Migrationkeyauth_Delete
    - TPM_Pubkey_Store
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Sbuffer_Delete
    - TPM_Pubkey_Delete
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Migrationkeyauth_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_AuthorizeMigrationKey(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \    TPM_STORE_BUFFER *response,\n\t\t\t\t\t     TPM_TAG tag,\n\t\t\t\t\t     uint32_t
      paramSize,\n\t\t\t\t\t     TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t     unsigned
      char *command,\n\t\t\t\t\t     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1966,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1967,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1968,1
    - Dst: TPM_Pubkey_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1969,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1975,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1981,1
    - Dst: TPM_Pubkey_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1982,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1986,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:1992,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2004,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2008,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2012,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2021,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2035,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2042,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2046,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2047,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2059,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2071,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2079,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2084,1
    - Dst: TPM_KeyParms_GetRSAKeyParms
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2095,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2099,1
    - Dst: TPM_RSAPrivateDecryptMalloc
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2101,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2109,1
    - Dst: TPM_RSAPublicEncrypt_Pubkey
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2110,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2120,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2122,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2130,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2136,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2147,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2156,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2163,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2170,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2175,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2176,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2177,1
    - Dst: TPM_Pubkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2178,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 107
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 1921
    functionDepth: 3
    functionLinenumber: 1921
    functionLinenumberEnd: 2180
    functionName: TPM_Process_MigrateKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_RSAPrivateDecryptMalloc
    - TPM_SizedBuffer_Store
    - TPM_RSAPublicEncrypt_Pubkey
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Pubkey_Init
    - TPM_KeyParms_GetRSAKeyParms
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_Pubkey_Load
    - TPM_SizedBuffer_Init
    - TPM_SizedBuffer_Delete
    - printf
    - TPM_CheckRequestTag10
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_Pubkey_Delete
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_MigrateKey(tpm_state_t *tpm_state,\n\t\t\t\t
      \ TPM_STORE_BUFFER *response,\n\t\t\t\t  TPM_TAG tag,\n\t\t\t\t  uint32_t paramSize,\n\t\t\t\t
      \ TPM_COMMAND_CODE ordinal,\n\t\t\t\t  unsigned char *command,\n\t\t\t\t  TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2255,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2256,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2257,1
    - Dst: TPM_CmkMaApproval_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2258,1
    - Dst: TPM_CmkMigauth_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2259,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2265,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2271,1
    - Dst: TPM_Authdata_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2272,1
    - Dst: TPM_Key_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2276,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2280,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2284,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2290,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2302,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2306,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2310,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2318,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2322,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2337,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2346,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2358,1
    - Dst: TPM_Key_CheckProperties
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2370,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2372,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2376,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2378,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2385,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2391,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2393,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2400,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2406,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2410,1
    - Dst: TPM_CmkMaApproval_CheckHMAC
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2414,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2419,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2427,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2430,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2450,1
    - Dst: TPM_AuthSessionData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2458,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2471,1
    - Dst: TPM_Key_GenerateRSA
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2472,1
    - Dst: TPM_Key_GetStoreAsymkey
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2485,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2490,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2500,1
    - Dst: TPM_Key_GeneratePubkeyDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2502,1
    - Dst: TPM_HMAC_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2507,1
    - Dst: TPM_Key_GenerateEncData
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2522,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2529,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2531,1
    - Dst: TPM_Key_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2539,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2545,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2556,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2565,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2572,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2579,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2584,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2585,1
    - Dst: TPM_CmkMaApproval_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2586,1
    - Dst: TPM_CmkMigauth_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2587,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 163
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2200
    functionDepth: 3
    functionLinenumber: 2200
    functionLinenumberEnd: 2589
    functionName: TPM_Process_CMK_CreateKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_CheckRequestTag1
    - TPM_Secret_Copy
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CmkMaApproval_CheckHMAC
    - TPM_Key_GetStoreAsymkey
    - TPM_Key_Store
    - TPM_AuthSessions_TerminateHandle
    - TPM_Key_CheckProperties
    - TPM_AuthSessionData_Decrypt
    - TPM_Key_Load
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_Digest_Copy
    - TPM_GetOutParamDigest
    - TPM_Key_GeneratePubkeyDigest
    - TPM_CmkMaApproval_Delete
    - TPM_Authdata_Load
    - TPM_CmkMigauth_Init
    - TPM_CmkMaApproval_Init
    - TPM_Key_Delete
    - printf
    - TPM_ProcessAudit
    - TPM_Key_Init
    - TPM_AuthParams_Set
    - TPM_Digest_Load
    - TPM_KeyHandleEntries_GetKey
    - TPM_AuthParams_Get
    - TPM_HMAC_GenerateStructure
    - TPM_CheckState
    - TPM_Key_GenerateRSA
    - TPM_Load32
    - TPM_Key_GenerateEncData
    - TPM_CmkMigauth_Delete
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_CMK_CreateKey(tpm_state_t *tpm_state,\n\t\t\t\t
      \    TPM_STORE_BUFFER *response,\n\t\t\t\t     TPM_TAG tag,\n\t\t\t\t     uint32_t
      paramSize,\n\t\t\t\t     TPM_COMMAND_CODE ordinal,\n\t\t\t\t     unsigned char
      *command,\n\t\t\t\t     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2638,1
    - Dst: TPM_Pubkey_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2639,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2640,1
    - Dst: TPM_CmkSigticket_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2641,1
    - Dst: TPM_Pubkey_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2649,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2653,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2657,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2663,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2675,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2679,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2683,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2692,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2706,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2718,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2731,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2739,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2749,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2757,1
    - Dst: TPM_RSAVerifyH
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2758,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2763,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2770,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2775,1
    - Dst: TPM_HMAC_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2777,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2785,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2787,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2795,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2801,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2812,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2821,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2828,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2835,1
    - Dst: TPM_Pubkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2840,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2841,1
    - Dst: TPM_CmkSigticket_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2842,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 103
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2600
    functionDepth: 3
    functionLinenumber: 2600
    functionLinenumberEnd: 2844
    functionName: TPM_Process_CMK_CreateTicket
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_CheckRequestTag1
    - TPM_CmkSigticket_Init
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Pubkey_Init
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_Digest_Copy
    - TPM_GetOutParamDigest
    - TPM_Pubkey_Load
    - TPM_SizedBuffer_Init
    - TPM_SizedBuffer_Delete
    - printf
    - TPM_Digest_Store
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Digest_Load
    - TPM_Pubkey_Delete
    - TPM_CmkSigticket_Delete
    - TPM_AuthParams_Get
    - TPM_HMAC_GenerateStructure
    - TPM_CheckState
    - TPM_RSAVerifyH
    - TPM_SizedBuffer_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_CMK_CreateTicket(tpm_state_t *tpm_state,\n\t\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\t\tTPM_TAG tag,\n\t\t\t\t\tuint32_t paramSize,\n\t\t\t\t\tTPM_COMMAND_CODE
      ordinal,\n\t\t\t\t\tunsigned char *command,\n\t\t\t\t\tTPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 67
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2941,1
    - Dst: TPM_Migrationkeyauth_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2943,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2944,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2945,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2946,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2947,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2948,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2949,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2950,1
    - Dst: TPM_StoreAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2951,1
    - Dst: TPM_MsaComposite_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2952,1
    - Dst: TPM_CmkAuth_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2953,1
    - Dst: TPM_CmkMigauth_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2954,1
    - Dst: TPM_CmkSigticket_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2955,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2961,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2967,1
    - Dst: TPM_Migrationkeyauth_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2971,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2975,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2979,1
    - Dst: TPM_MsaComposite_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2985,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2989,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2993,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:2997,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3003,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3015,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3019,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3023,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3032,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3048,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3056,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3060,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3073,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3088,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3096,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3103,1
    - Dst: TPM_RSAPrivateDecryptMalloc
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3105,1
    - Dst: TPM_StoreAsymkey_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3115,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3126,1
    - Dst: TPM_Pubkey_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3127,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3131,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3135,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3145,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3154,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3159,1
    - Dst: TPM_CmkMigauth_CheckHMAC
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3162,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3167,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3173,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3182,1
    - Dst: TPM_MsaComposite_CheckMigAuthDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3185,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3192,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3203,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3213,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3221,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3230,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3246,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3251,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3254,1
    - Dst: TPM_MsaComposite_CheckSigTicket
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3259,1
    - Dst: TPM_CmkAuth_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3270,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3273,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3276,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3283,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3285,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3292,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3319,1
    - Dst: TPM_CreateBlobCommon
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3325,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3337,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3339,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3347,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3351,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3357,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3368,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3377,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3384,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3391,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3397,1
    - Dst: TPM_Migrationkeyauth_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3398,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3399,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3400,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3401,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3402,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3403,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3404,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3405,1
    - Dst: TPM_StoreAsymkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3406,1
    - Dst: TPM_MsaComposite_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3407,1
    - Dst: TPM_CmkAuth_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3408,1
    - Dst: TPM_CmkMigauth_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3409,1
    - Dst: TPM_CmkSigticket_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3410,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 250
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3412
      start: 2867
    functionDepth: 4
    functionLinenumber: 2867
    functionLinenumberEnd: 3412
    functionName: TPM_Process_CMK_CreateBlob
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_CheckRequestTag1
    - TPM_CmkAuth_Init
    - TPM_CmkSigticket_Init
    - TPM_CmkAuth_Load
    - TPM_Migrationkeyauth_Init
    - TPM_Sbuffer_Get
    - TPM_StoreAsymkey_Init
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_RSAPrivateDecryptMalloc
    - TPM_SizedBuffer_Store
    - TPM_CreateBlobCommon
    - TPM_MsaComposite_CheckMigAuthDigest
    - TPM_MsaComposite_CheckSigTicket
    - TPM_CmkAuth_Delete
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_SHA1
    - TPM_StoreAsymkey_Load
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_Digest_Copy
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_CmkMigauth_CheckHMAC
    - TPM_MsaComposite_Init
    - TPM_Load16
    - TPM_SizedBuffer_Init
    - TPM_Digest_Compare
    - TPM_StoreAsymkey_Delete
    - TPM_CmkMigauth_Init
    - TPM_SizedBuffer_Delete
    - printf
    - TPM_Migrationkeyauth_Delete
    - TPM_Pubkey_Store
    - TPM_ProcessAudit
    - TPM_Migrationkeyauth_Load
    - TPM_AuthParams_Set
    - TPM_Digest_Load
    - TPM_KeyHandleEntries_GetKey
    - TPM_Sbuffer_Delete
    - TPM_CmkSigticket_Delete
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_SHA1_Check
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_MsaComposite_Delete
    - TPM_MsaComposite_Load
    - TPM_CmkMigauth_Delete
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_CMK_CreateBlob(tpm_state_t *tpm_state,\n\t\t\t\t
      \     TPM_STORE_BUFFER *response,\n\t\t\t\t      TPM_TAG tag,\n\t\t\t\t      uint32_t
      paramSize,\n\t\t\t\t      TPM_COMMAND_CODE ordinal,\n\t\t\t\t      unsigned
      char *command,\n\t\t\t\t      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3462,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3470,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3473,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3479,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3491,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3495,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3499,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3508,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3523,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3535,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3536,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3551,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3552,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3557,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3563,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3565,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3577,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3588,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3597,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3604,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3611,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3617
      start: 3427
    functionDepth: 3
    functionLinenumber: 3427
    functionLinenumberEnd: 3617
    functionName: TPM_Process_CMK_SetRestrictions
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_AuthParams_Set
    - TPM_GetInParamDigest
    - TPM_CheckRequestTag1
    - TPM_PrintFour
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthParams_Get
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    - TPM_AuthSessions_GetData
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_CMK_SetRestrictions(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \  TPM_STORE_BUFFER *response,\n\t\t\t\t\t   TPM_TAG tag,\n\t\t\t\t\t   uint32_t
      paramSize,\n\t\t\t\t\t   TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t   unsigned char
      *command,\n\t\t\t\t\t   TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3668,1
    - Dst: TPM_CmkMaApproval_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3669,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3677,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3683,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3695,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3699,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3703,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3712,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3726,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3738,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3751,1
    - Dst: TPM_HMAC_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3753,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3764,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3766,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3774,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3780,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3791,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3800,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3807,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3814,1
    - Dst: TPM_CmkMaApproval_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3819,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 65
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3821
      start: 3629
    functionDepth: 3
    functionLinenumber: 3629
    functionLinenumberEnd: 3821
    functionName: TPM_Process_CMK_ApproveMA
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_CheckRequestTag1
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_Digest_Copy
    - TPM_GetOutParamDigest
    - TPM_CmkMaApproval_Delete
    - TPM_CmkMaApproval_Init
    - printf
    - TPM_Digest_Store
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Digest_Load
    - TPM_AuthParams_Get
    - TPM_HMAC_GenerateStructure
    - TPM_CheckState
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_CMK_ApproveMA(tpm_state_t *tpm_state,\n\t\t\t\t
      \    TPM_STORE_BUFFER *response,\n\t\t\t\t     TPM_TAG tag,\n\t\t\t\t     uint32_t
      paramSize,\n\t\t\t\t     TPM_COMMAND_CODE ordinal,\n\t\t\t\t     unsigned char
      *command,\n\t\t\t\t     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3903,1
    - Dst: TPM_CmkAuth_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3904,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3905,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3906,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3907,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3908,1
    - Dst: TPM_MsaComposite_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3910,1
    - Dst: TPM_StoreAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3911,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3912,1
    - Dst: TPM_CmkSigticket_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3913,1
    - Dst: TPM_CmkMigauth_Init
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3915,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3921,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3927,1
    - Dst: TPM_CmkAuth_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3928,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3932,1
    - Dst: TPM_Key_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3936,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3940,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3944,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3950,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3962,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3966,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3970,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3979,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_migration.c:3994,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4002,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4006,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4019,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4032,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4040,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4041,1
    - Dst: TPM_RSAPrivateDecryptMalloc
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4042,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4051,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4059,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4062,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4063,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4065,1
    - Dst: TPM_StoreAsymkey_LoadO1
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4072,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4075,1
    - Dst: TPM_Key_GeneratePubkeyDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4078,1
    - Dst: TPM_MsaComposite_Load
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4085,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4088,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4093,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4101,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4103,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4113,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4127,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4130,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4134,1
    - Dst: TPM_MsaComposite_CheckSigTicket
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4136,1
    - Dst: TPM_Key_GeneratePubkeyDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4145,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4150,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4153,1
    - Dst: TPM_StorePrivkey_Convert
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4160,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4168,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4177,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4185,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4187,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4195,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4200,1
    - Dst: TPM_HMAC_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4202,1
    - Dst: TPM_StoreAsymkey_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4211,1
    - Dst: TPM_RSAPublicEncryptSbuffer_Key
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4214,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4221,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4223,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4231,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4237,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4248,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4257,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4264,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4271,1
    - Dst: TPM_CmkAuth_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4276,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4277,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4278,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4279,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4280,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4281,1
    - Dst: TPM_MsaComposite_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4282,1
    - Dst: TPM_StoreAsymkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4283,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4284,1
    - Dst: TPM_CmkSigticket_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4285,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4286,1
    - Dst: TPM_CmkMigauth_Delete
      Src: /src/libtpms/src/tpm12/tpm_migration.c:4287,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 216
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4289
      start: 3841
    functionDepth: 4
    functionLinenumber: 3841
    functionLinenumberEnd: 4289
    functionName: TPM_Process_CMK_ConvertMigration
    functionSourceFile: /src/libtpms/src/tpm12/tpm_migration.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_CheckRequestTag1
    - TPM_CmkAuth_Init
    - TPM_CmkSigticket_Init
    - TPM_CmkAuth_Load
    - TPM_StoreAsymkey_Init
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_RSAPrivateDecryptMalloc
    - TPM_SizedBuffer_Store
    - TPM_CmkAuth_Delete
    - TPM_MsaComposite_CheckSigTicket
    - TPM_StoreAsymkey_Store
    - TPM_Key_Load
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_Digest_Copy
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_MsaComposite_Init
    - TPM_Key_GeneratePubkeyDigest
    - TPM_Digest_Compare
    - TPM_SizedBuffer_Init
    - TPM_StoreAsymkey_Delete
    - TPM_CmkMigauth_Init
    - TPM_SizedBuffer_Delete
    - TPM_PrintFour
    - TPM_StorePrivkey_Convert
    - TPM_Malloc
    - TPM_Key_Delete
    - printf
    - TPM_StoreAsymkey_LoadO1
    - TPM_RSAPublicEncryptSbuffer_Key
    - TPM_ProcessAudit
    - TPM_Key_Init
    - TPM_AuthParams_Set
    - TPM_Digest_Load
    - TPM_XOR
    - TPM_KeyHandleEntries_GetKey
    - TPM_Sbuffer_Delete
    - TPM_CmkSigticket_Delete
    - TPM_AuthParams_Get
    - TPM_HMAC_GenerateStructure
    - TPM_CheckState
    - TPM_SHA1_Check
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_MsaComposite_Delete
    - TPM_MsaComposite_Load
    - TPM_CmkMigauth_Delete
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_CMK_ConvertMigration(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \   TPM_STORE_BUFFER *response,\n\t\t\t\t\t    TPM_TAG tag,\n\t\t\t\t\t    uint32_t
      paramSize,\n\t\t\t\t\t    TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t    unsigned
      char *command,\n\t\t\t\t\t    TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tpm_nv_attributes
    argTypes:
    - TPM_NV_ATTRIBUTES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: TPM_NVAttributes_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_NVAttributes_Init(TPM_NV_ATTRIBUTES *tpm_nv_attributes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:102,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:105,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tpm_nv_attributes
    - stream
    - stream_size
    argTypes:
    - TPM_NV_ATTRIBUTES*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: TPM_NVAttributes_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Load32
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVAttributes_Load(TPM_NV_ATTRIBUTES *tpm_nv_attributes,\n\t\t\t\t
      unsigned char **stream,\n\t\t\t\t uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:125,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:128,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sbuffer
    - tpm_nv_attributes
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_NV_ATTRIBUTES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 134
    functionName: TPM_NVAttributes_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVAttributes_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \ const TPM_NV_ATTRIBUTES *tpm_nv_attributes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:147,1
    - Dst: TPM_NVAttributes_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_nv_attributes
    argTypes:
    - TPM_NV_ATTRIBUTES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: TPM_NVAttributes_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_NVAttributes_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_NVAttributes_Delete(TPM_NV_ATTRIBUTES *tpm_nv_attributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tpm_nv_attributes_dest
    - tpm_nv_attributes_src
    argTypes:
    - TPM_NV_ATTRIBUTES*
    - TPM_NV_ATTRIBUTES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: TPM_NVAttributes_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TPM_NVAttributes_Copy(TPM_NV_ATTRIBUTES *tpm_nv_attributes_dest,\n\t\t\t
      \  TPM_NV_ATTRIBUTES *tpm_nv_attributes_src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:174,1
    - Dst: TPM_PCRInfoShort_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:176,1
    - Dst: TPM_PCRInfoShort_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:177,1
    - Dst: TPM_NVAttributes_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tpm_nv_data_public
    argTypes:
    - TPM_NV_DATA_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 184
    functionName: TPM_NVDataPublic_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_NVAttributes_Init
    - printf
    - TPM_PCRInfoShort_Init
    linkageType: ''
    returnType: void
    signature: void TPM_NVDataPublic_Init(TPM_NV_DATA_PUBLIC *tpm_nv_data_public)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:203,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:206,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:210,1
    - Dst: TPM_PCRInfoShort_Load
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:214,1
    - Dst: TPM_PCRInfoShort_Load
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:218,1
    - Dst: TPM_NVAttributes_Load
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:222,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:226,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:230,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:234,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:238,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - tpm_nv_data_public
    - stream
    - stream_size
    - optimize
    argTypes:
    - TPM_NV_DATA_PUBLIC*
    - unsigned char**
    - uint32_t*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 241
    functionName: TPM_NVDataPublic_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_CheckTag
    - TPM_LoadBool
    - printf
    - TPM_Load32
    - TPM_NVAttributes_Load
    - TPM_PCRInfoShort_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVDataPublic_Load(TPM_NV_DATA_PUBLIC *tpm_nv_data_public,\n\t\t\t\t
      unsigned char **stream,\n\t\t\t\t uint32_t *stream_size,\n\t\t\t\t TPM_BOOL
      optimize)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:255,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:258,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:262,1
    - Dst: TPM_PCRInfoShort_Store
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:266,1
    - Dst: TPM_PCRInfoShort_Store
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:270,1
    - Dst: TPM_NVAttributes_Store
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:274,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:278,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:282,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:286,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:290,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - sbuffer
    - tpm_nv_data_public
    - optimize
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_NV_DATA_PUBLIC*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 293
    functionName: TPM_NVDataPublic_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append16
    - printf
    - TPM_PCRInfoShort_Store
    - TPM_NVAttributes_Store
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVDataPublic_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \ const TPM_NV_DATA_PUBLIC *tpm_nv_data_public,\n\t\t\t\t  TPM_BOOL optimize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:306,1
    - Dst: TPM_PCRInfoShort_Delete
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:308,1
    - Dst: TPM_PCRInfoShort_Delete
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:309,1
    - Dst: TPM_NVAttributes_Delete
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:310,1
    - Dst: TPM_NVDataPublic_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tpm_nv_data_public
    argTypes:
    - TPM_NV_DATA_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 314
    functionName: TPM_NVDataPublic_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_NVAttributes_Delete
    - TPM_PCRInfoShort_Delete
    - printf
    - TPM_NVDataPublic_Init
    linkageType: ''
    returnType: void
    signature: void TPM_NVDataPublic_Delete(TPM_NV_DATA_PUBLIC *tpm_nv_data_public)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:329,1
    - Dst: TPM_NVDataPublic_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:330,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:331,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tpm_nv_data_sensitive
    argTypes:
    - TPM_NV_DATA_SENSITIVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 335
    functionName: TPM_NVDataSensitive_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_Secret_Init
    - printf
    - TPM_Digest_Init
    - TPM_NVDataPublic_Init
    linkageType: ''
    returnType: void
    signature: void TPM_NVDataSensitive_Init(TPM_NV_DATA_SENSITIVE *tpm_nv_data_sensitive)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:356,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:359,1
    - Dst: TPM_NVDataPublic_Load
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:365,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:371,1
    - Dst: TPM_NVDataSensitive_IsGPIO
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:375,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:379,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:384,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:389,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - tpm_nv_data_sensitive
    - nvEntriesVersion
    - stream
    - stream_size
    argTypes:
    - TPM_NV_DATA_SENSITIVE*
    - TPM_TAG
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 347
    functionDepth: 5
    functionLinenumber: 347
    functionLinenumberEnd: 396
    functionName: TPM_NVDataSensitive_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_Secret_Load
    - TPM_SHA1
    - TPM_CheckTag
    - TPM_NVDataPublic_Load
    - TPM_NVDataSensitive_IsGPIO
    - TPM_Loadn
    - TPM_Malloc
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVDataSensitive_Load(TPM_NV_DATA_SENSITIVE *tpm_nv_data_sensitive,\n\t\t\t\t
      \   TPM_TAG nvEntriesVersion,\n\t\t\t\t    unsigned char **stream,\n\t\t\t\t
      \   uint32_t *stream_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:412,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:415,1
    - Dst: TPM_NVDataPublic_Store
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:419,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:424,1
    - Dst: TPM_NVDataSensitive_IsGPIO
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:428,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - sbuffer
    - tpm_nv_data_sensitive
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_NV_DATA_SENSITIVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 436
    functionName: TPM_NVDataSensitive_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append16
    - TPM_NVDataSensitive_IsGPIO
    - TPM_Secret_Store
    - TPM_NVDataPublic_Store
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVDataSensitive_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \    const TPM_NV_DATA_SENSITIVE *tpm_nv_data_sensitive)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:449,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:453,1
    - Dst: TPM_NVDataPublic_Delete
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:455,1
    - Dst: TPM_Secret_Delete
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:456,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:457,1
    - Dst: TPM_NVDataSensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - tpm_nv_data_sensitive
    argTypes:
    - TPM_NV_DATA_SENSITIVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 447
    functionDepth: 4
    functionLinenumber: 447
    functionLinenumberEnd: 461
    functionName: TPM_NVDataSensitive_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_NVDataPublic_Delete
    - TPM_NVDataSensitive_Init
    - memset
    - TPM_Secret_Delete
    - printf
    - free
    linkageType: ''
    returnType: void
    signature: void TPM_NVDataSensitive_Delete(TPM_NV_DATA_SENSITIVE *tpm_nv_data_sensitive)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:475,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:480,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:486,1
    - Dst: TPM_NVDataSensitive_IsValidPlatformIndex
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:491,1
    - Dst: TPM_NVDataSensitive_IsGPIO
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:495,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - nvIndex
    argTypes:
    - TPM_NV_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 498
    functionName: TPM_NVDataSensitive_IsValidIndex
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_NVDataSensitive_IsValidPlatformIndex
    - printf
    - TPM_NVDataSensitive_IsGPIO
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_NVDataSensitive_IsValidIndex(TPM_NV_INDEX nvIndex)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:514,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:521,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:531,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - isGPIO
    - nvIndex
    argTypes:
    - TPM_BOOL*
    - TPM_NV_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 537
    functionName: TPM_NVDataSensitive_IsGPIO
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 3
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_NVDataSensitive_IsGPIO(TPM_BOOL *isGPIO, TPM_NV_INDEX
      nvIndex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:543,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - nvIndex
    argTypes:
    - TPM_NV_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 553
    functionName: TPM_NVDataSensitive_IsValidPlatformIndex
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_NVDataSensitive_IsValidPlatformIndex(TPM_NV_INDEX nvIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpm_nv_index_entries
    argTypes:
    - TPM_NV_INDEX_ENTRIES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 571
    functionName: TPM_NVIndexEntries_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_NVIndexEntries_Init(TPM_NV_INDEX_ENTRIES *tpm_nv_index_entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:585,1
    - Dst: TPM_NVDataSensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:589,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:592,1
    - Dst: TPM_NVIndexEntries_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tpm_nv_index_entries
    argTypes:
    - TPM_NV_INDEX_ENTRIES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 581
    functionDepth: 5
    functionLinenumber: 581
    functionLinenumberEnd: 595
    functionName: TPM_NVIndexEntries_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_NVDataSensitive_Delete
    - printf
    - free
    - TPM_NVIndexEntries_Init
    linkageType: ''
    returnType: void
    signature: void TPM_NVIndexEntries_Delete(TPM_NV_INDEX_ENTRIES *tpm_nv_index_entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:607,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_nv_index_entries
    argTypes:
    - TPM_NV_INDEX_ENTRIES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 614
    functionName: TPM_NVIndexEntries_Trace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_NVIndexEntries_Trace(TPM_NV_INDEX_ENTRIES *tpm_nv_index_entries)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:630,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:633,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:642,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:650,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:654,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:655,1
    - Dst: TPM_NVDataSensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:660,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:664,1
    - Dst: TPM_NVDataSensitive_Load
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:666,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:671,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:674,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - tpm_nv_index_entries
    - stream
    - stream_size
    argTypes:
    - TPM_NV_INDEX_ENTRIES*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 622
    functionDepth: 6
    functionLinenumber: 622
    functionLinenumberEnd: 681
    functionName: TPM_NVIndexEntries_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - TPM_NVDataSensitive_Load
    - TPM_NVDataSensitive_Init
    - TPM_Malloc
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVIndexEntries_Load(TPM_NV_INDEX_ENTRIES *tpm_nv_index_entries,\n\t\t\t\t
      \  unsigned char **stream,\n\t\t\t\t   uint32_t *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:697,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:701,1
    - Dst: TPM_NVIndexEntries_GetUsedCount
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:705,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:709,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:715,1
    - Dst: TPM_NVDataSensitive_Store
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:717,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:720,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - sbuffer
    - tpm_nv_index_entries
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_NV_INDEX_ENTRIES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 690
    functionDepth: 4
    functionLinenumber: 690
    functionLinenumberEnd: 724
    functionName: TPM_NVIndexEntries_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_NVDataSensitive_Store
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append16
    - TPM_NVIndexEntries_GetUsedCount
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVIndexEntries_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \   TPM_NV_INDEX_ENTRIES *tpm_nv_index_entries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_nv_index_entries
    argTypes:
    - TPM_NV_INDEX_ENTRIES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 742
    functionName: TPM_NVIndexEntries_StClear
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_NVIndexEntries_StClear(TPM_NV_INDEX_ENTRIES *tpm_nv_index_entries)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:757,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:760,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:764,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:767,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:769,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:781,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:785,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:789,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - tpm_nv_index_entries
    - stream
    - stream_size
    argTypes:
    - TPM_NV_INDEX_ENTRIES*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 748
    functionDepth: 3
    functionLinenumber: 748
    functionLinenumberEnd: 793
    functionName: TPM_NVIndexEntries_LoadVolatile
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_LoadBool
    - printf
    - TPM_Load32
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVIndexEntries_LoadVolatile(TPM_NV_INDEX_ENTRIES *tpm_nv_index_entries,\n\t\t\t\t\t
      \  unsigned char **stream,\n\t\t\t\t\t   uint32_t *stream_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:807,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:810,1
    - Dst: TPM_NVIndexEntries_GetUsedCount
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:815,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:819,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:820,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:832,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:836,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:841,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - sbuffer
    - tpm_nv_index_entries
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_NV_INDEX_ENTRIES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 847
    functionName: TPM_NVIndexEntries_StoreVolatile
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append16
    - TPM_NVIndexEntries_GetUsedCount
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVIndexEntries_StoreVolatile(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t\t
      \   TPM_NV_INDEX_ENTRIES *tpm_nv_index_entries)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:862,1
    - Dst: TPM_NVIndexEntries_GetUsedCount
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:866,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:870,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:871,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:883,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:887,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - tpm_nv_data_st
    - tpm_nv_index_entries
    argTypes:
    - TPM_NV_DATA_ST**
    - TPM_NV_INDEX_ENTRIES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 854
    functionDepth: 2
    functionLinenumber: 854
    functionLinenumberEnd: 900
    functionName: TPM_NVIndexEntries_GetVolatile
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_Malloc
    - printf
    - TPM_NVIndexEntries_GetUsedCount
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVIndexEntries_GetVolatile(TPM_NV_DATA_ST **tpm_nv_data_st,
      /* freed by caller */\n\t\t\t\t\t  TPM_NV_INDEX_ENTRIES *tpm_nv_index_entries)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:914,1
    - Dst: TPM_NVIndexEntries_GetUsedCount
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:917,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:921,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:930,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:937,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:943,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:951,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - tpm_nv_data_st
    - tpm_nv_index_entries
    argTypes:
    - TPM_NV_DATA_ST*
    - TPM_NV_INDEX_ENTRIES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 960
    functionName: TPM_NVIndexEntries_SetVolatile
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_NVIndexEntries_GetUsedCount
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVIndexEntries_SetVolatile(TPM_NV_DATA_ST *tpm_nv_data_st,\n\t\t\t\t\t
      \ TPM_NV_INDEX_ENTRIES *tpm_nv_index_entries)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:978,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:983,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:991,1
    - Dst: TPM_Realloc
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:998,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1003,1
    - Dst: TPM_NVDataSensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1006,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - tpm_nv_data_sensitive
    - tpm_nv_index_entries
    argTypes:
    - TPM_NV_DATA_SENSITIVE**
    - TPM_NV_INDEX_ENTRIES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 971
    functionDepth: 4
    functionLinenumber: 971
    functionLinenumberEnd: 1010
    functionName: TPM_NVIndexEntries_GetFreeEntry
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_Realloc
    - printf
    - TPM_NVDataSensitive_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVIndexEntries_GetFreeEntry(TPM_NV_DATA_SENSITIVE **tpm_nv_data_sensitive,\n\t\t\t\t\t
      \  TPM_NV_INDEX_ENTRIES *tpm_nv_index_entries)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1025,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1030,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1045,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1046,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1049,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1059,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - tpm_nv_data_sensitive
    - tpm_nv_index_entries
    - nvIndex
    argTypes:
    - TPM_NV_DATA_SENSITIVE**
    - TPM_NV_INDEX_ENTRIES*
    - TPM_NV_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1064
    functionName: TPM_NVIndexEntries_GetEntry
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVIndexEntries_GetEntry(TPM_NV_DATA_SENSITIVE **tpm_nv_data_sensitive,\n\t\t\t\t
      \      TPM_NV_INDEX_ENTRIES *tpm_nv_index_entries,\n\t\t\t\t       TPM_NV_INDEX
      nvIndex)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1086,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - count
    - tpm_nv_index_entries
    argTypes:
    - uint32_t*
    - TPM_NV_INDEX_ENTRIES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1089
    functionName: TPM_NVIndexEntries_GetUsedCount
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 4
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVIndexEntries_GetUsedCount(uint32_t *count,\n\t\t\t\t\t
      \  TPM_NV_INDEX_ENTRIES *tpm_nv_index_entries)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1101,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - sbuffer
    - tpm_nv_index_entries
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_NV_INDEX_ENTRIES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1112
    functionName: TPM_NVIndexEntries_GetNVList
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVIndexEntries_GetNVList(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t\tTPM_NV_INDEX_ENTRIES
      *tpm_nv_index_entries)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1127,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1128,1
    - Dst: TPM_NVIndexEntries_Store
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1131,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1135,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1136,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - usedSpace
    - tpm_nv_index_entries
    argTypes:
    - uint32_t*
    - TPM_NV_INDEX_ENTRIES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1120
    functionDepth: 5
    functionLinenumber: 1120
    functionLinenumberEnd: 1140
    functionName: TPM_NVIndexEntries_GetUsedSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Get
    - TPM_Sbuffer_Delete
    - printf
    - TPM_NVIndexEntries_Store
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVIndexEntries_GetUsedSpace(uint32_t *usedSpace,\n\t\t\t\t\t
      \  TPM_NV_INDEX_ENTRIES *tpm_nv_index_entries)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1154,1
    - Dst: TPM_NVIndexEntries_GetUsedSpace
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1157,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1162,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1170,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - freeSpace
    - tpm_nv_index_entries
    argTypes:
    - uint32_t*
    - TPM_NV_INDEX_ENTRIES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1148
    functionDepth: 6
    functionLinenumber: 1148
    functionLinenumberEnd: 1173
    functionName: TPM_NVIndexEntries_GetFreeSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_NVIndexEntries_GetUsedSpace
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVIndexEntries_GetFreeSpace(uint32_t *freeSpace,\n\t\t\t\t\t
      \  TPM_NV_INDEX_ENTRIES *tpm_nv_index_entries)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1197,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1212,1
    - Dst: TPM_NVDataSensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - tpm_nv_index_entries
    - deleteAllNvram
    argTypes:
    - TPM_NV_INDEX_ENTRIES*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1190
    functionDepth: 5
    functionLinenumber: 1190
    functionLinenumberEnd: 1220
    functionName: TPM_NVIndexEntries_DeleteOwnerAuthorized
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_NVDataSensitive_Delete
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVIndexEntries_DeleteOwnerAuthorized(TPM_NV_INDEX_ENTRIES
      *tpm_nv_index_entries,\n\t\t\t\t\t\t    TPM_BOOL deleteAllNvram)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1232,1
    - Dst: TPM_NVIndexEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tpm_nv_data_public
    - tpm_nv_index_entries
    - nvIndex
    argTypes:
    - TPM_NV_DATA_PUBLIC**
    - TPM_NV_INDEX_ENTRIES*
    - TPM_NV_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1225
    functionDepth: 2
    functionLinenumber: 1225
    functionLinenumberEnd: 1242
    functionName: TPM_NVIndexEntries_GetDataPublic
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_NVIndexEntries_GetEntry
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_NVIndexEntries_GetDataPublic(TPM_NV_DATA_PUBLIC **tpm_nv_data_public,\n\t\t\t\t\t
      \   TPM_NV_INDEX_ENTRIES *tpm_nv_index_entries,\n\t\t\t\t\t    TPM_NV_INDEX
      nvIndex)"
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1302,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1303,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1311,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1315,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1319,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1325,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1337,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1343,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1347,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1356,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1375,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1378,1
    - Dst: TPM_NVDataSensitive_IsGPIO
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1383,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1391,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1395,1
    - Dst: TPM_NVIndexEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1396,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1400,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1412,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1417,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1433,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1442,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1454,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1467,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1474,1
    - Dst: TPM_Global_GetPhysicalPresence
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1489,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1493,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1504,1
    - Dst: TPM_PCRInfoShort_CheckDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1513,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1520,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1533,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1540,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1542,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1547,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1550,1
    - Dst: TPM_IO_GPIO_Read
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1551,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1557,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1568,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1575,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1576,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1585,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1587,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1595,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1601,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1612,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1621,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1628,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1635,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1640,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1641,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 186
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1257
    functionDepth: 3
    functionLinenumber: 1257
    functionLinenumberEnd: 1643
    functionName: TPM_Process_NVReadValue
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_SizedBuffer_Store
    - TPM_SizedBuffer_Set
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_NVIndexEntries_GetEntry
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_SizedBuffer_Init
    - TPM_SizedBuffer_Delete
    - TPM_NVDataSensitive_IsGPIO
    - TPM_Malloc
    - printf
    - TPM_CheckRequestTag10
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Global_GetPhysicalPresence
    - TPM_IO_GPIO_Read
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_PCRInfoShort_CheckDigest
    - TPM_PrintFourLimit
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_NVReadValue(tpm_state_t *tpm_state,\n\t\t\t\t
      \  TPM_STORE_BUFFER *response,\n\t\t\t\t   TPM_TAG tag,\n\t\t\t\t   uint32_t
      paramSize,\n\t\t\t\t   TPM_COMMAND_CODE ordinal,\n\t\t\t\t   unsigned char *command,\n\t\t\t\t
      \  TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1692,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1693,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1701,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1705,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1709,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1715,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1727,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1731,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1735,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1744,1
    - Dst: TPM_NVDataSensitive_IsGPIO
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1758,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1763,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1765,1
    - Dst: TPM_NVIndexEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1766,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1770,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1776,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1782,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1794,1
    - Dst: TPM_Global_GetPhysicalPresence
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1808,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1812,1
    - Dst: TPM_PCRInfoShort_CheckDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1828,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1837,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1844,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1857,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1864,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1866,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1870,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1873,1
    - Dst: TPM_IO_GPIO_Read
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1874,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1880,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1890,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1892,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1900,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1906,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1917,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1926,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1933,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1940,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:1945,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 134
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1650
    functionDepth: 3
    functionLinenumber: 1650
    functionLinenumberEnd: 1947
    functionName: TPM_Process_NVReadValueAuth
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_CheckRequestTag1
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_SizedBuffer_Store
    - TPM_SizedBuffer_Set
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_NVIndexEntries_GetEntry
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_SizedBuffer_Init
    - TPM_SizedBuffer_Delete
    - TPM_NVDataSensitive_IsGPIO
    - TPM_Malloc
    - printf
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Global_GetPhysicalPresence
    - TPM_IO_GPIO_Read
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_PCRInfoShort_CheckDigest
    - TPM_PrintFourLimit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_NVReadValueAuth(tpm_state_t *tpm_state,\n\t\t\t\t
      \      TPM_STORE_BUFFER *response,\n\t\t\t\t       TPM_TAG tag,\n\t\t\t\t       uint32_t
      paramSize,\n\t\t\t\t       TPM_COMMAND_CODE ordinal,\n\t\t\t\t       unsigned
      char *command,\n\t\t\t\t       TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 73
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2014,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2015,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2023,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2026,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2029,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2035,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2047,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2053,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2057,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2066,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2079,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2081,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2089,1
    - Dst: TPM_NVDataSensitive_IsGPIO
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2097,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2105,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2109,1
    - Dst: TPM_NVIndexEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2110,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2114,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2126,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2131,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2147,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2154,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2167,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2181,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2193,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2207,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2212,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2222,1
    - Dst: TPM_Global_GetPhysicalPresence
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2238,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2242,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2253,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2262,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2271,1
    - Dst: TPM_PCRInfoShort_CheckDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2280,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2287,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2306,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2316,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2325,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2327,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2329,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2335,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2340,1
    - Dst: TPM_IO_GPIO_Write
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2341,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2357,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2363,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2364,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2375,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2383,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2391,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2393,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2405,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2416,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2425,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2432,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2439,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2444,1
    CyclomaticComplexity: 121
    EdgeCount: 121
    ICount: 245
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2446
      start: 1964
    functionDepth: 3
    functionLinenumber: 1964
    functionLinenumberEnd: 2446
    functionName: TPM_Process_NVWriteValue
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - memcmp
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_NVIndexEntries_GetEntry
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_SizedBuffer_Init
    - TPM_IO_GPIO_Write
    - memcpy
    - TPM_SizedBuffer_Delete
    - TPM_NVDataSensitive_IsGPIO
    - printf
    - TPM_CheckRequestTag10
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Global_GetPhysicalPresence
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_PCRInfoShort_CheckDigest
    - TPM_PrintFourLimit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_NVWriteValue(tpm_state_t *tpm_state,\n\t\t\t\t
      \   TPM_STORE_BUFFER *response,\n\t\t\t\t    TPM_TAG tag,\n\t\t\t\t    uint32_t
      paramSize,\n\t\t\t\t    TPM_COMMAND_CODE ordinal,\n\t\t\t\t    unsigned char
      *command,\n\t\t\t\t    TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2499,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2500,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2508,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2512,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2516,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2522,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2534,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2538,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2542,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2551,1
    - Dst: TPM_NVDataSensitive_IsGPIO
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2565,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2570,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2572,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2573,1
    - Dst: TPM_NVIndexEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2574,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2578,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2584,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2590,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2602,1
    - Dst: TPM_Global_GetPhysicalPresence
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2622,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2626,1
    - Dst: TPM_PCRInfoShort_CheckDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2636,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2645,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2654,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2663,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2670,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2690,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2700,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2709,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2712,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2713,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2719,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2724,1
    - Dst: TPM_IO_GPIO_Write
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2725,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2736,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2739,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2747,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2749,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2761,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2772,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2781,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2788,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2795,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2800,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 162
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2802
      start: 2455
    functionDepth: 3
    functionLinenumber: 2455
    functionLinenumberEnd: 2802
    functionName: TPM_Process_NVWriteValueAuth
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_CheckRequestTag1
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - memcmp
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_NVIndexEntries_GetEntry
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_SizedBuffer_Init
    - TPM_IO_GPIO_Write
    - memcpy
    - TPM_SizedBuffer_Delete
    - TPM_NVDataSensitive_IsGPIO
    - printf
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Global_GetPhysicalPresence
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_PCRInfoShort_CheckDigest
    - TPM_PrintFourLimit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_NVWriteValueAuth(tpm_state_t *tpm_state,\n\t\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\t\tTPM_TAG tag,\n\t\t\t\t\tuint32_t paramSize,\n\t\t\t\t\tTPM_COMMAND_CODE
      ordinal,\n\t\t\t\t\tunsigned char *command,\n\t\t\t\t\tTPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 73
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2883,1
    - Dst: TPM_NVIndexEntries_GetFreeEntry
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2897,1
    - Dst: TPM_NVDataPublic_Load
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2902,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2912,1
    - Dst: TPM_PCRInfo_Trace
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2914,1
    - Dst: TPM_PCRInfo_Trace
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2917,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2921,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2927,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2939,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2943,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2947,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2956,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2974,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2981,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:2982,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3002,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3009,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3020,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3028,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3043,1
    - Dst: TPM_AuthSessionData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3054,1
    - Dst: TPM_Global_GetPhysicalPresence
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3066,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3070,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3078,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3086,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3098,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3110,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3115,1
    - Dst: TPM_NVIndexEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3116,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3120,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3126,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3134,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3145,1
    - Dst: TPM_AuthSessions_TerminateEntity
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3157,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3166,1
    - Dst: TPM_NVDataSensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3167,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3177,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3209,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3218,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3231,1
    - Dst: TPM_NVDataSensitive_IsValidIndex
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3238,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3243,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3253,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3270,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3276,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3278,1
    - Dst: TPM_NVIndexEntries_GetFreeSpace
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3279,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3282,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3291,1
    - Dst: TPM_NVDataSensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3295,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3299,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3301,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3316,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3324,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3326,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3338,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3349,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3358,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3365,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3372,1
    CyclomaticComplexity: 132
    EdgeCount: 132
    ICount: 251
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3378
      start: 2828
    functionDepth: 7
    functionLinenumber: 2828
    functionLinenumberEnd: 3378
    functionName: TPM_Process_NVDefineSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateEntity
    - TPM_NVDataPublic_Load
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthSessionData_Decrypt
    - TPM_NVIndexEntries_GetFreeSpace
    - TPM_AuthSessions_GetData
    - TPM_PCRInfo_Trace
    - TPM_Secret_Load
    - TPM_GetInParamDigest
    - TPM_SetCapability_Flag
    - TPM_Sbuffer_StoreInitialResponse
    - memset
    - TPM_NVIndexEntries_GetEntry
    - TPM_Authdata_Check
    - TPM_Digest_Copy
    - TPM_GetOutParamDigest
    - TPM_NVDataSensitive_IsValidIndex
    - TPM_NVDataSensitive_Delete
    - TPM_Malloc
    - printf
    - TPM_CheckRequestTag10
    - TPM_NVIndexEntries_GetFreeEntry
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Global_GetPhysicalPresence
    - TPM_AuthParams_Get
    - TPM_CheckState
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_NVDefineSpace(tpm_state_t *tpm_state,\n\t\t\t\t
      \    TPM_STORE_BUFFER *response,\n\t\t\t\t     TPM_TAG tag,\n\t\t\t\t     uint32_t
      paramSize,\n\t\t\t\t     TPM_COMMAND_CODE ordinal,\n\t\t\t\t     unsigned char
      *command,\n\t\t\t\t     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3446,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3454,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3458,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3459,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3462,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3468,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3480,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3484,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3488,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3497,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3512,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3524,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3536,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3542,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3543,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3545,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3554,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3556,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3568,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3579,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3588,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3595,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3602,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 76
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3608
      start: 3410
    functionDepth: 3
    functionLinenumber: 3410
    functionLinenumberEnd: 3608
    functionName: TPM_Process_DirWriteAuth
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_Digest_Load
    - TPM_GetInParamDigest
    - TPM_CheckRequestTag1
    - TPM_AuthParams_Set
    - TPM_PrintFour
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthParams_Get
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_Authdata_Check
    - TPM_Digest_Copy
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    - TPM_AuthSessions_GetData
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_DirWriteAuth(tpm_state_t *tpm_state,\n\t\t\t\t
      \   TPM_STORE_BUFFER *response,\n\t\t\t\t    TPM_TAG tag,\n\t\t\t\t    uint32_t
      paramSize,\n\t\t\t\t    TPM_COMMAND_CODE ordinal,\n\t\t\t\t    unsigned char
      *command,\n\t\t\t\t    TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3645,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3653,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3656,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3662,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3674,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3678,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3682,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3693,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3699,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3700,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3707,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3709,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3717,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3723,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3734,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_nvram.c:3741,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3747
      start: 3619
    functionDepth: 3
    functionLinenumber: 3619
    functionLinenumberEnd: 3747
    functionName: TPM_Process_DirRead
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nvram.c
    functionUses: 0
    functionsReached:
    - TPM_GetInParamDigest
    - TPM_PrintFour
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_GetOutParamDigest
    - TPM_Digest_Store
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_DirRead(tpm_state_t *tpm_state,\n\t\t\t       TPM_STORE_BUFFER
      *response,\n\t\t\t       TPM_TAG tag,\n\t\t\t       uint32_t paramSize,\n\t\t\t
      \      TPM_COMMAND_CODE ordinal,\n\t\t\t       unsigned char *command,\n\t\t\t
      \      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:99,1
    - Dst: TPM_Sbuffer_Test
      Src: /src/libtpms/src/tpm12/tpm_admin.c:102,1
    - Dst: TPM_Uint64_Test
      Src: /src/libtpms/src/tpm12/tpm_admin.c:106,1
    - Dst: TPM_CryptoTest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:109,1
    - Dst: TPM_GetTimeOfDay
      Src: /src/libtpms/src/tpm12/tpm_admin.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 119
    functionName: TPM_LimitedSelfTestCommon
    functionSourceFile: /src/libtpms/src/tpm12/tpm_admin.c
    functionUses: 0
    functionsReached:
    - TPM_Uint64_Test
    - TPM_CryptoTest
    - TPM_GetTimeOfDay
    - TPM_Sbuffer_Test
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_LimitedSelfTestCommon(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:130,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_admin.c:131,1
    - Dst: TPM_Key_CheckPubDataDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:148,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_admin.c:152,1
    - Dst: TPM_RSAPublicEncrypt_Key
      Src: /src/libtpms/src/tpm12/tpm_admin.c:153,1
    - Dst: TPM_RSAPrivateDecryptH
      Src: /src/libtpms/src/tpm12/tpm_admin.c:160,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:170,1
    - Dst: TPM_Nonce_Compare
      Src: /src/libtpms/src/tpm12/tpm_admin.c:176,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_admin.c:205,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:211,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:215,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 219
    functionName: TPM_LimitedSelfTestTPM
    functionSourceFile: /src/libtpms/src/tpm12/tpm_admin.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_Nonce_Compare
    - TPM_SizedBuffer_Delete
    - TPM_Nonce_Generate
    - printf
    - TPM_RSAPublicEncrypt_Key
    - TPM_RSAPrivateDecryptH
    - TPM_Key_CheckPubDataDigest
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_LimitedSelfTestTPM(tpm_state_t *tpm_state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:230,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:236,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 244
    functionName: TPM_ContinueSelfTestCmd
    functionSourceFile: /src/libtpms/src/tpm12/tpm_admin.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_ContinueSelfTestCmd(tpm_state_t *tpm_state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:257,1
    - Dst: TPM_LimitedSelfTestTPM
      Src: /src/libtpms/src/tpm12/tpm_admin.c:259,1
    - Dst: TPM_ContinueSelfTestCmd
      Src: /src/libtpms/src/tpm12/tpm_admin.c:262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 265
    functionName: TPM_SelfTestFullCmd
    functionSourceFile: /src/libtpms/src/tpm12/tpm_admin.c
    functionUses: 0
    functionsReached:
    - TPM_LimitedSelfTestTPM
    - printf
    - TPM_ContinueSelfTestCmd
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SelfTestFullCmd(tpm_state_t *tpm_state)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:298,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:308,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_admin.c:320,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_admin.c:325,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:329,1
    - Dst: TPM_SelfTestFullCmd
      Src: /src/libtpms/src/tpm12/tpm_admin.c:344,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:350,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:352,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:364,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_admin.c:375,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:382,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 385
    functionName: TPM_Process_SelfTestFull
    functionSourceFile: /src/libtpms/src/tpm12/tpm_admin.c
    functionUses: 0
    functionsReached:
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_SelfTestFullCmd
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_SelfTestFull(tpm_state_t *tpm_state,\n\t\t\t\t
      \   TPM_STORE_BUFFER *response,\n\t\t\t\t    TPM_TAG tag,\n\t\t\t\t    uint32_t
      paramSize,\n\t\t\t\t    TPM_COMMAND_CODE ordinal,\n\t\t\t\t    unsigned char
      *command,\n\t\t\t\t    TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:450,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:460,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_admin.c:472,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_admin.c:477,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:481,1
    - Dst: TPM_SelfTestFullCmd
      Src: /src/libtpms/src/tpm12/tpm_admin.c:493,1
    - Dst: TPM_ContinueSelfTestCmd
      Src: /src/libtpms/src/tpm12/tpm_admin.c:499,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:513,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:515,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:527,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_admin.c:538,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:545,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 427
    functionDepth: 4
    functionLinenumber: 427
    functionLinenumberEnd: 548
    functionName: TPM_Process_ContinueSelfTest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_admin.c
    functionUses: 0
    functionsReached:
    - TPM_GetInParamDigest
    - TPM_ContinueSelfTestCmd
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_SelfTestFullCmd
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ContinueSelfTest(tpm_state_t *tpm_state,\n\t\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\t\tTPM_TAG tag,\n\t\t\t\t\tuint32_t paramSize,\n\t\t\t\t\tTPM_COMMAND_CODE
      ordinal,\n\t\t\t\t\tunsigned char *command,\n\t\t\t\t\tTPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:582,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_admin.c:583,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:593,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_admin.c:606,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_admin.c:610,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:614,1
    - Dst: TPM_SizedBuffer_Allocate
      Src: /src/libtpms/src/tpm12/tpm_admin.c:626,1
    - Dst: snprintf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:632,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:635,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:644,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:646,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_admin.c:654,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:660,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_admin.c:671,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:678,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_admin.c:683,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 558
    functionDepth: 3
    functionLinenumber: 558
    functionLinenumberEnd: 685
    functionName: TPM_Process_GetTestResult
    functionSourceFile: /src/libtpms/src/tpm12/tpm_admin.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_GetInParamDigest
    - TPM_SizedBuffer_Delete
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_SizedBuffer_Store
    - snprintf
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_SizedBuffer_Allocate
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_GetTestResult(tpm_state_t *tpm_state,\n\t\t\t\t
      \    TPM_STORE_BUFFER *response,\n\t\t\t\t     TPM_TAG tag,\n\t\t\t\t     uint32_t
      paramSize,\n\t\t\t\t     TPM_COMMAND_CODE ordinal,\n\t\t\t\t     unsigned char
      *command,\n\t\t\t\t     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:721,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_admin.c:729,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:735,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_admin.c:747,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_admin.c:751,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:755,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:765,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:770,1
    - Dst: TPM_Global_GetPhysicalPresence
      Src: /src/libtpms/src/tpm12/tpm_admin.c:774,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:778,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:783,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_admin.c:784,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_admin.c:788,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:799,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:801,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:813,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_admin.c:824,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:831,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 693
    functionDepth: 2
    functionLinenumber: 693
    functionLinenumberEnd: 834
    functionName: TPM_Process_SetOwnerInstall
    functionSourceFile: /src/libtpms/src/tpm12/tpm_admin.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_SetCapability_Flag
    - TPM_GetInParamDigest
    - TPM_LoadBool
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Global_GetPhysicalPresence
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_SetOwnerInstall(tpm_state_t *tpm_state,\n\t\t\t\t
      \      TPM_STORE_BUFFER *response,\n\t\t\t\t       TPM_TAG tag,\n\t\t\t\t       uint32_t
      paramSize,\n\t\t\t\t       TPM_COMMAND_CODE ordinal,\n\t\t\t\t       unsigned
      char *command,\n\t\t\t\t       TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:877,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_admin.c:885,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:891,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_admin.c:903,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_admin.c:909,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_admin.c:913,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:922,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_admin.c:936,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_admin.c:948,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:960,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_admin.c:961,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_admin.c:965,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:974,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:976,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:988,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_admin.c:999,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1008,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1015,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1022,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 841
    functionDepth: 2
    functionLinenumber: 841
    functionLinenumberEnd: 1025
    functionName: TPM_Process_OwnerSetDisable
    functionSourceFile: /src/libtpms/src/tpm12/tpm_admin.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_SetCapability_Flag
    - TPM_GetInParamDigest
    - TPM_CheckRequestTag1
    - TPM_AuthParams_Set
    - TPM_LoadBool
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthParams_Get
    - TPM_CheckState
    - printf
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    - TPM_AuthSessions_GetData
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_OwnerSetDisable(tpm_state_t *tpm_state,\n\t\t\t\t
      \      TPM_STORE_BUFFER *response,\n\t\t\t\t       TPM_TAG tag,\n\t\t\t\t       uint32_t
      paramSize,\n\t\t\t\t       TPM_COMMAND_CODE ordinal,\n\t\t\t\t       unsigned
      char *command,\n\t\t\t\t       TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1057,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1067,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1079,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1084,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1088,1
    - Dst: TPM_Global_GetPhysicalPresence
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1097,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1101,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1107,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1108,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1112,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1121,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1123,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1135,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1146,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1153,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1032
    functionDepth: 1
    functionLinenumber: 1032
    functionLinenumberEnd: 1156
    functionName: TPM_Process_PhysicalEnable
    functionSourceFile: /src/libtpms/src/tpm12/tpm_admin.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_SetCapability_Flag
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Global_GetPhysicalPresence
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_PhysicalEnable(tpm_state_t *tpm_state,\n\t\t\t\t
      \     TPM_STORE_BUFFER *response,\n\t\t\t\t      TPM_TAG tag,\n\t\t\t\t      uint32_t
      paramSize,\n\t\t\t\t      TPM_COMMAND_CODE ordinal,\n\t\t\t\t      unsigned
      char *command,\n\t\t\t\t      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1188,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1198,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1210,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1216,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1220,1
    - Dst: TPM_Global_GetPhysicalPresence
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1229,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1233,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1239,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1240,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1244,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1253,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1255,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1267,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1278,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1285,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1288
    functionName: TPM_Process_PhysicalDisable
    functionSourceFile: /src/libtpms/src/tpm12/tpm_admin.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_SetCapability_Flag
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Global_GetPhysicalPresence
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_PhysicalDisable(tpm_state_t *tpm_state,\n\t\t\t\t
      \      TPM_STORE_BUFFER *response,\n\t\t\t\t       TPM_TAG tag,\n\t\t\t\t       uint32_t
      paramSize,\n\t\t\t\t       TPM_COMMAND_CODE ordinal,\n\t\t\t\t       unsigned
      char *command,\n\t\t\t\t       TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1323,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1331,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1334,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1340,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1352,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1358,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1362,1
    - Dst: TPM_Global_GetPhysicalPresence
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1372,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1376,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1383,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1384,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1388,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1397,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1399,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1411,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1422,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1429,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1295
    functionDepth: 2
    functionLinenumber: 1295
    functionLinenumberEnd: 1432
    functionName: TPM_Process_PhysicalSetDeactivated
    functionSourceFile: /src/libtpms/src/tpm12/tpm_admin.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_SetCapability_Flag
    - TPM_GetInParamDigest
    - TPM_LoadBool
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Global_GetPhysicalPresence
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_PhysicalSetDeactivated(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \     TPM_STORE_BUFFER *response,\n\t\t\t\t\t      TPM_TAG tag,\n\t\t\t\t\t
      \     uint32_t paramSize,\n\t\t\t\t\t      TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t
      \     unsigned char *command,\n\t\t\t\t\t      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1480,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1490,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1502,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1509,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1511,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1516,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1525,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1541,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1547,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1550,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1562,1
    - Dst: TPM_Global_GetPhysicalPresence
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1576,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1580,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1587,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1595,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1597,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1609,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1620,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1629,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1636,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1643,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 76
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1649
    functionName: TPM_Process_SetTempDeactivated
    functionSourceFile: /src/libtpms/src/tpm12/tpm_admin.c
    functionUses: 0
    functionsReached:
    - TPM_AuthParams_Set
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Global_GetPhysicalPresence
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthParams_Get
    - TPM_CheckState
    - printf
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_CheckRequestTag10
    - TPM_ProcessAudit
    - TPM_AuthSessions_GetData
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_SetTempDeactivated(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \ TPM_STORE_BUFFER *response,\n\t\t\t\t\t  TPM_TAG tag,\n\t\t\t\t\t  uint32_t
      paramSize,\n\t\t\t\t\t  TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t  unsigned char
      *command,\n\t\t\t\t\t  TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1689,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1697,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1703,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1715,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1719,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1723,1
    - Dst: TPM_Global_GetPhysicalPresence
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1733,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1737,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1743,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1745,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1746,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1750,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1759,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1761,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1773,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1784,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1791,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1661
    functionDepth: 1
    functionLinenumber: 1661
    functionLinenumberEnd: 1794
    functionName: TPM_Process_SetOperatorAuth
    functionSourceFile: /src/libtpms/src/tpm12/tpm_admin.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_Secret_Load
    - TPM_GetInParamDigest
    - TPM_SetCapability_Flag
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Global_GetPhysicalPresence
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_Digest_Copy
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_SetOperatorAuth(tpm_state_t *tpm_state,\n\t\t\t\t
      \      TPM_STORE_BUFFER *response,\n\t\t\t\t       TPM_TAG tag,\n\t\t\t\t       uint32_t
      paramSize,\n\t\t\t\t       TPM_COMMAND_CODE ordinal,\n\t\t\t\t       unsigned
      char *command,\n\t\t\t\t       TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1844,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1854,1
    - Dst: TPM_Authdata_CheckState
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1867,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1869,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1876,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1880,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1889,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1903,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1914,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1926,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1937,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1949,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1958,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1960,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1972,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1983,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1992,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_admin.c:1999,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_admin.c:2006,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 72
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 1810
    functionDepth: 1
    functionLinenumber: 1810
    functionLinenumberEnd: 2009
    functionName: TPM_Process_ResetLockValue
    functionSourceFile: /src/libtpms/src/tpm12/tpm_admin.c
    functionUses: 0
    functionsReached:
    - TPM_AuthParams_Set
    - TPM_GetInParamDigest
    - TPM_CheckRequestTag1
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthParams_Get
    - TPM_Authdata_CheckState
    - TPM_CheckState
    - printf
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    - TPM_AuthSessions_GetData
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ResetLockValue(tpm_state_t *tpm_state,\n\t\t\t\t
      \     TPM_STORE_BUFFER *response,\n\t\t\t\t      TPM_TAG tag,\n\t\t\t\t      uint32_t
      paramSize,\n\t\t\t\t      TPM_COMMAND_CODE ordinal,\n\t\t\t\t      unsigned
      char *command,\n\t\t\t\t      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:77,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - tpm_locality_selection
    - tpm_modifier_indicator
    argTypes:
    - TPM_LOCALITY_SELECTION*
    - TPM_MODIFIER_INDICATOR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 102
    functionName: TPM_Locality_Set
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Locality_Set(TPM_LOCALITY_SELECTION *tpm_locality_selection,\t/*
      BYTE bitmap */\n\t\t\t    TPM_MODIFIER_INDICATOR tpm_modifier_indicator)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:117,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:147,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:152,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - tpm_locality_selection
    - localityModifier
    argTypes:
    - TPM_LOCALITY_SELECTION
    - TPM_MODIFIER_INDICATOR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 157
    functionName: TPM_Locality_Check
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Locality_Check(TPM_LOCALITY_SELECTION tpm_locality_selection,\t/*
      BYTE bitmap */\n\t\t\t      TPM_MODIFIER_INDICATOR localityModifier)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:164,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - tpm_locality_selection
    argTypes:
    - TPM_LOCALITY_SELECTION
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 175
    functionName: TPM_LocalitySelection_CheckLegal
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_LocalitySelection_CheckLegal(TPM_LOCALITY_SELECTION
      tpm_locality_selection)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:181,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - localityModifier
    argTypes:
    - TPM_MODIFIER_INDICATOR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 189
    functionName: TPM_LocalityModifier_CheckLegal
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_LocalityModifier_CheckLegal(TPM_MODIFIER_INDICATOR localityModifier)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - match
    - tpm_locality_selection1
    - tpm_locality_selection2
    argTypes:
    - TPM_BOOL*
    - TPM_LOCALITY_SELECTION
    - TPM_LOCALITY_SELECTION
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 202
    functionName: TPM_PCRLocality_Compare
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TPM_PCRLocality_Compare(TPM_BOOL *match,\n\t\t\t     TPM_LOCALITY_SELECTION
      tpm_locality_selection1,\n\t\t\t     TPM_LOCALITY_SELECTION tpm_locality_selection2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - index
    argTypes:
    - TPM_PCRINDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 218
    functionName: TPM_PCR_CheckRange
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_PCR_CheckRange(TPM_PCRINDEX index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:230,1
    - Dst: TPM_Digest_Set
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:235,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:238,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:244,1
    - Dst: TPM_Digest_Set
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - tpm_pcrs
    - tpm_pcr_attributes
    - pcrIndex
    argTypes:
    - TPM_PCRVALUE*
    - TPM_PCR_ATTRIBUTES*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 252
    functionName: TPM_PCR_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Set
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: "void TPM_PCR_Init(TPM_PCRVALUE *tpm_pcrs,\t\t/* points to the TPM
      PCR array */\n\t\t  const TPM_PCR_ATTRIBUTES *tpm_pcr_attributes,\n\t\t  size_t
      pcrIndex)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:267,1
    - Dst: TPM_Digest_Set
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:268,1
    - Dst: TPM_PCR_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:273,1
    - Dst: TPM_PCR_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:276,1
    - Dst: TPM_PCR_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:281,1
    - Dst: TPM_PCR_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:284,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - tpm_pcrs
    - TOSPresent
    - pcrIndex
    argTypes:
    - TPM_PCRVALUE*
    - TPM_BOOL
    - TPM_PCRINDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 288
    functionName: TPM_PCR_Reset
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCR_Store
    - TPM_Digest_Set
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: "void TPM_PCR_Reset(TPM_PCRVALUE *tpm_pcrs,\t\t/* points to the TPM
      PCR array */\n\t\t   TPM_BOOL TOSPresent,\n\t\t   TPM_PCRINDEX pcrIndex)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_PCR_CheckRange
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:302,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - dest_pcr
    - tpm_pcrs
    - index
    argTypes:
    - TPM_PCRVALUE
    - TPM_PCRVALUE*
    - TPM_PCRINDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 308
    functionName: TPM_PCR_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Copy
    - TPM_PCR_CheckRange
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCR_Load(TPM_PCRVALUE dest_pcr,\n\t\t\tTPM_PCRVALUE
      *tpm_pcrs,\n\t\t\tTPM_PCRINDEX index)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_PCR_CheckRange
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:322,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - tpm_pcrs
    - index
    - src_pcr
    argTypes:
    - TPM_PCRVALUE*
    - TPM_PCRINDEX
    - TPM_PCRVALUE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 328
    functionName: TPM_PCR_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 2
    functionsReached:
    - TPM_Digest_Copy
    - TPM_PCR_CheckRange
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCR_Store(TPM_PCRVALUE *tpm_pcrs,\n\t\t\t TPM_PCRINDEX
      index,\n\t\t\t TPM_PCRVALUE src_pcr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tpm_select_size
    argTypes:
    - TPM_SELECT_SIZE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: TPM_SelectSize_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_SelectSize_Init(TPM_SELECT_SIZE *tpm_select_size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:364,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:367,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:372,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:378,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:384,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:390,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - tpm_select_size
    - stream
    - stream_size
    argTypes:
    - TPM_SELECT_SIZE*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 393
    functionName: TPM_SelectSize_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - printf
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SelectSize_Load(TPM_SELECT_SIZE *tpm_select_size,\n\t\t\t
      \      unsigned char **stream,\n\t\t\t       uint32_t *stream_size)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:433,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 1
    argNames:
    - tpm_pcr_attributes
    argTypes:
    - TPM_PCR_ATTRIBUTES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 487
    functionName: TPM_PCRAttributes_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_PCRAttributes_Init(TPM_PCR_ATTRIBUTES *tpm_pcr_attributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:495,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:496,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:497,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - message
    - pcrSelection
    - digestAtRelease
    argTypes:
    - char*
    - TPM_PCR_SELECTION
    - TPM_COMPOSITE_HASH
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 504
    functionName: TPM_PCRInfo_Trace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 1
    functionsReached:
    - TPM_PrintFour
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_PCRInfo_Trace(const char *message,\n\t\t       TPM_PCR_SELECTION
      pcrSelection,\n\t\t       TPM_COMPOSITE_HASH digestAtRelease)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:520,1
    - Dst: TPM_PCR_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tpm_pcrs
    - tpm_pcr_attributes
    argTypes:
    - TPM_PCRVALUE*
    - TPM_PCR_ATTRIBUTES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 525
    functionName: TPM_PCRs_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCR_Init
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_PCRs_Init(TPM_PCRVALUE *tpm_pcrs,\t\t/* points to the TPM
      PCR array */\n\t\t   const TPM_PCR_ATTRIBUTES *tpm_pcr_attributes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:535,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - tpm_pcrs
    - tpm_pcr_attributes
    - stream
    - stream_size
    argTypes:
    - TPM_PCRVALUE*
    - TPM_PCR_ATTRIBUTES*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 544
    functionName: TPM_PCRs_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Load
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRs_Load(TPM_PCRVALUE *tpm_pcrs,\t\t/* points to the
      TPM PCR array */\n\t\t\t const TPM_PCR_ATTRIBUTES *tpm_pcr_attributes,\n\t\t\t
      unsigned char **stream,\n\t\t\t uint32_t *stream_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:553,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - sbuffer
    - tpm_pcrs
    - tpm_pcr_attributes
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_PCRVALUE*
    - TPM_PCR_ATTRIBUTES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 562
    functionName: TPM_PCRs_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Store
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRs_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t  TPM_PCRVALUE
      *tpm_pcrs,\t\t/* points to the TPM PCR array */\n\t\t\t  const TPM_PCR_ATTRIBUTES
      *tpm_pcr_attributes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_PCRSelection_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:577,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tpm_pcr_composite
    argTypes:
    - TPM_PCR_COMPOSITE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 580
    functionName: TPM_PCRComposite_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_PCRSelection_Init
    linkageType: ''
    returnType: void
    signature: void TPM_PCRComposite_Init(TPM_PCR_COMPOSITE *tpm_pcr_composite)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:595,1
    - Dst: TPM_PCRSelection_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:599,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sbuffer
    - tpm_pcr_composite
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_PCR_COMPOSITE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 606
    functionName: TPM_PCRComposite_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRSelection_Store
    - printf
    - TPM_SizedBuffer_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRComposite_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \ const TPM_PCR_COMPOSITE *tpm_pcr_composite)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:619,1
    - Dst: TPM_PCRSelection_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:621,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:622,1
    - Dst: TPM_PCRComposite_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tpm_pcr_composite
    argTypes:
    - TPM_PCR_COMPOSITE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 626
    functionName: TPM_PCRComposite_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Delete
    - TPM_PCRComposite_Init
    - printf
    - TPM_PCRSelection_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_PCRComposite_Delete(TPM_PCR_COMPOSITE *tpm_pcr_composite)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:648,1
    - Dst: TPM_PCRSelection_CheckRange
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:651,1
    - Dst: TPM_PCRSelection_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:656,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:671,1
    - Dst: TPM_SizedBuffer_Allocate
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:672,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:680,1
    - Dst: TPM_PCR_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:684,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 3
    argNames:
    - tpm_pcr_composite
    - tpm_pcr_selection
    - tpm_pcrs
    argTypes:
    - TPM_PCR_COMPOSITE*
    - TPM_PCR_SELECTION*
    - TPM_PCRVALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 692
    functionName: TPM_PCRComposite_Set
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRSelection_CheckRange
    - TPM_PCRSelection_Copy
    - printf
    - TPM_PCR_Load
    - TPM_SizedBuffer_Allocate
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRComposite_Set(TPM_PCR_COMPOSITE *tpm_pcr_composite,\n\t\t\t\tTPM_PCR_SELECTION
      *tpm_pcr_selection, /* input selection map */\n\t\t\t\tTPM_PCRVALUE *tpm_pcrs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_PCRSelection_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:700,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpm_pcr_info_short
    argTypes:
    - TPM_PCR_INFO_SHORT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 704
    functionName: TPM_PCRInfoShort_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 1
    functionsReached:
    - TPM_PCRSelection_Init
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_PCRInfoShort_Init(TPM_PCR_INFO_SHORT *tpm_pcr_info_short)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:726,1
    - Dst: TPM_PCRSelection_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:729,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:733,1
    - Dst: TPM_LocalitySelection_CheckLegal
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:737,1
    - Dst: TPM_PCRSelection_GetPCRUsage
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:741,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:748,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:757,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - tpm_pcr_info_short
    - stream
    - stream_size
    - optimize
    argTypes:
    - TPM_PCR_INFO_SHORT*
    - unsigned char**
    - uint32_t*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 761
    functionName: TPM_PCRInfoShort_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 1
    functionsReached:
    - TPM_LocalitySelection_CheckLegal
    - TPM_PCRSelection_GetPCRUsage
    - TPM_PCRSelection_Load
    - TPM_Digest_Load
    - printf
    - TPM_Load8
    - TPM_Digest_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoShort_Load(TPM_PCR_INFO_SHORT *tpm_pcr_info_short,\n\t\t\t\t
      unsigned char **stream,\n\t\t\t\t uint32_t *stream_size,\n\t\t\t\t TPM_BOOL
      optimize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:781,1
    - Dst: TPM_PCRSelection_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:784,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:788,1
    - Dst: TPM_PCRSelection_GetPCRUsage
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:793,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:804,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - sbuffer
    - tpm_pcr_info_short
    - optimize
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_PCR_INFO_SHORT*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 807
    functionName: TPM_PCRInfoShort_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 1
    functionsReached:
    - TPM_PCRSelection_GetPCRUsage
    - TPM_PCRSelection_Store
    - printf
    - TPM_Digest_Store
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoShort_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \ const TPM_PCR_INFO_SHORT *tpm_pcr_info_short,\n\t\t\t\t  TPM_BOOL optimize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:821,1
    - Dst: TPM_PCRSelection_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:823,1
    - Dst: TPM_PCRInfoShort_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:824,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_pcr_info_short
    argTypes:
    - TPM_PCR_INFO_SHORT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 819
    functionDepth: 2
    functionLinenumber: 819
    functionLinenumberEnd: 827
    functionName: TPM_PCRInfoShort_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_PCRInfoShort_Init
    - TPM_PCRSelection_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_PCRInfoShort_Delete(TPM_PCR_INFO_SHORT *tpm_pcr_info_short)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:837,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:842,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:847,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - tpm_pcr_info_short
    argTypes:
    - TPM_PCR_INFO_SHORT**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 833
    functionDepth: 2
    functionLinenumber: 833
    functionLinenumberEnd: 850
    functionName: TPM_PCRInfoShort_Create
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_Malloc
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_PCRInfoShort_Create(TPM_PCR_INFO_SHORT **tpm_pcr_info_short)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:863,1
    - Dst: TPM_PCRInfoShort_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:865,1
    - Dst: TPM_PCRInfoShort_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - tpm_pcr_info_short
    - tpm_sized_buffer
    argTypes:
    - TPM_PCR_INFO_SHORT*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 856
    functionDepth: 3
    functionLinenumber: 856
    functionLinenumberEnd: 872
    functionName: TPM_PCRInfoShort_LoadFromBuffer
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfoShort_Load
    - printf
    - TPM_PCRInfoShort_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoShort_LoadFromBuffer(TPM_PCR_INFO_SHORT *tpm_pcr_info_short,\n\t\t\t\t\t
      \  const TPM_SIZED_BUFFER *tpm_sized_buffer)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:886,1
    - Dst: TPM_PCRInfoShort_Create
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:894,1
    - Dst: TPM_PCRInfoShort_LoadFromBuffer
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:897,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - tpm_pcr_info_short
    - tpm_sized_buffer
    argTypes:
    - TPM_PCR_INFO_SHORT**
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 880
    functionDepth: 4
    functionLinenumber: 880
    functionLinenumberEnd: 900
    functionName: TPM_PCRInfoShort_CreateFromBuffer
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfoShort_Create
    - printf
    - TPM_PCRInfoShort_LoadFromBuffer
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoShort_CreateFromBuffer(TPM_PCR_INFO_SHORT **tpm_pcr_info_short,\n\t\t\t\t\t
      \    const TPM_SIZED_BUFFER *tpm_sized_buffer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:911,1
    - Dst: TPM_PCRSelection_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:914,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dest_tpm_pcr_info_short
    - src_tpm_pcr_info_short
    argTypes:
    - TPM_PCR_INFO_SHORT*
    - TPM_PCR_INFO_SHORT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 925
    functionName: TPM_PCRInfoShort_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRSelection_Copy
    - printf
    - TPM_Digest_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoShort_Copy(TPM_PCR_INFO_SHORT *dest_tpm_pcr_info_short,\n\t\t\t\t
      TPM_PCR_INFO_SHORT *src_tpm_pcr_info_short)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:939,1
    - Dst: TPM_PCRSelection_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:943,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dest_tpm_pcr_info_short
    - src_tpm_pcr_info
    argTypes:
    - TPM_PCR_INFO_SHORT*
    - TPM_PCR_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 955
    functionName: TPM_PCRInfoShort_CopyInfo
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRSelection_Copy
    - printf
    - TPM_Digest_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoShort_CopyInfo(TPM_PCR_INFO_SHORT *dest_tpm_pcr_info_short,\n\t\t\t\t
      \    TPM_PCR_INFO *src_tpm_pcr_info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:968,1
    - Dst: TPM_PCRSelection_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:972,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dest_tpm_pcr_info_short
    - src_tpm_pcr_info_long
    argTypes:
    - TPM_PCR_INFO_SHORT*
    - TPM_PCR_INFO_LONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 984
    functionName: TPM_PCRInfoShort_CopyInfoLong
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRSelection_Copy
    - printf
    - TPM_Digest_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoShort_CopyInfoLong(TPM_PCR_INFO_SHORT *dest_tpm_pcr_info_short,\n\t\t\t\t\t
      TPM_PCR_INFO_LONG *src_tpm_pcr_info_long)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:998,1
    - Dst: TPM_PCRInfoShort_Create
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1007,1
    - Dst: TPM_PCRInfoShort_CopyInfo
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1011,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - dest_tpm_pcr_info_short
    - src_tpm_pcr_info
    argTypes:
    - TPM_PCR_INFO_SHORT**
    - TPM_PCR_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 992
    functionDepth: 3
    functionLinenumber: 992
    functionLinenumberEnd: 1014
    functionName: TPM_PCRInfoShort_CreateFromInfo
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfoShort_CopyInfo
    - TPM_PCRInfoShort_Create
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoShort_CreateFromInfo(TPM_PCR_INFO_SHORT **dest_tpm_pcr_info_short,\n\t\t\t\t\t
      \  TPM_PCR_INFO *src_tpm_pcr_info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1028,1
    - Dst: TPM_PCRInfoShort_Create
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1037,1
    - Dst: TPM_PCRInfoShort_CopyInfoLong
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1041,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - dest_tpm_pcr_info_short
    - src_tpm_pcr_info_long
    argTypes:
    - TPM_PCR_INFO_SHORT**
    - TPM_PCR_INFO_LONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1022
    functionDepth: 3
    functionLinenumber: 1022
    functionLinenumberEnd: 1044
    functionName: TPM_PCRInfoShort_CreateFromInfoLong
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfoShort_Create
    - printf
    - TPM_PCRInfoShort_CopyInfoLong
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoShort_CreateFromInfoLong(TPM_PCR_INFO_SHORT
      **dest_tpm_pcr_info_short,\n\t\t\t\t\t       TPM_PCR_INFO_LONG *src_tpm_pcr_info_long)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1060,1
    - Dst: TPM_PCRInfoShort_CreateFromInfo
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1063,1
    - Dst: TPM_PCRInfoShort_CreateFromInfoLong
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dest_tpm_pcr_info_short
    - tpm_key
    argTypes:
    - TPM_PCR_INFO_SHORT**
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1055
    functionDepth: 4
    functionLinenumber: 1055
    functionLinenumberEnd: 1072
    functionName: TPM_PCRInfoShort_CreateFromKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfoShort_CreateFromInfo
    - printf
    - TPM_PCRInfoShort_CreateFromInfoLong
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoShort_CreateFromKey(TPM_PCR_INFO_SHORT **dest_tpm_pcr_info_short,\n\t\t\t\t\t
      \ TPM_KEY *tpm_key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1085,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1088,1
    - Dst: TPM_PCRSelection_GenerateDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1094,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - tpm_digest
    - tpm_pcr_info_short
    - tpm_pcrs
    argTypes:
    - TPM_DIGEST
    - TPM_PCR_INFO_SHORT*
    - TPM_PCRVALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1099
    functionName: TPM_PCRInfoShort_GenerateDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRSelection_GenerateDigest
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoShort_GenerateDigest(TPM_DIGEST tpm_digest,\t\t/*
      output digest */\n\t\t\t\t\t   TPM_PCR_INFO_SHORT *tpm_pcr_info_short,\t/* input
      */\n\t\t\t\t\t   TPM_PCRVALUE *tpm_pcrs)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1113,1
    - Dst: TPM_PCRInfoShort_GetPCRUsage
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1116,1
    - Dst: TPM_PCRSelection_GenerateDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1121,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1127,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1130,1
    - Dst: TPM_Locality_Check
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1139,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - tpm_pcr_info_short
    - tpm_pcrs
    - localityModifier
    argTypes:
    - TPM_PCR_INFO_SHORT*
    - TPM_PCRVALUE*
    - TPM_MODIFIER_INDICATOR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1105
    functionDepth: 2
    functionLinenumber: 1105
    functionLinenumberEnd: 1144
    functionName: TPM_PCRInfoShort_CheckDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 4
    functionsReached:
    - TPM_Digest_Compare
    - printf
    - TPM_PCRSelection_GenerateDigest
    - TPM_Locality_Check
    - TPM_PCRInfoShort_GetPCRUsage
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoShort_CheckDigest(TPM_PCR_INFO_SHORT *tpm_pcr_info_short,\n\t\t\t\t\tTPM_PCRVALUE
      *tpm_pcrs, /* points to the TPM PCR array */\n\t\t\t\t\tTPM_MODIFIER_INDICATOR
      localityModifier)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1156,1
    - Dst: TPM_PCRSelection_GetPCRUsage
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1165,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1168,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - pcrUsage
    - tpm_pcr_info_short
    argTypes:
    - TPM_BOOL*
    - TPM_PCR_INFO_SHORT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1150
    functionDepth: 1
    functionLinenumber: 1150
    functionLinenumberEnd: 1171
    functionName: TPM_PCRInfoShort_GetPCRUsage
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 1
    functionsReached:
    - TPM_PCRSelection_GetPCRUsage
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoShort_GetPCRUsage(TPM_BOOL *pcrUsage,\n\t\t\t\t\tTPM_PCR_INFO_SHORT
      *tpm_pcr_info_short)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_PCRSelection_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1179,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1180,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpm_pcr_info
    argTypes:
    - TPM_PCR_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1177
    functionDepth: 1
    functionLinenumber: 1177
    functionLinenumberEnd: 1183
    functionName: TPM_PCRInfo_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRSelection_Init
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_PCRInfo_Init(TPM_PCR_INFO *tpm_pcr_info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1200,1
    - Dst: TPM_PCRSelection_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1203,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1207,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tpm_pcr_info
    - stream
    - stream_size
    argTypes:
    - TPM_PCR_INFO*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1194
    functionDepth: 1
    functionLinenumber: 1194
    functionLinenumberEnd: 1214
    functionName: TPM_PCRInfo_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Load
    - TPM_PCRSelection_Load
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfo_Load(TPM_PCR_INFO *tpm_pcr_info,\n\t\t\t    unsigned
      char **stream,\n\t\t\t    uint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1229,1
    - Dst: TPM_PCRSelection_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1232,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1236,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - tpm_pcr_info
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_PCR_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1243
    functionName: TPM_PCRInfo_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRSelection_Store
    - TPM_Digest_Store
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfo_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t     const
      TPM_PCR_INFO *tpm_pcr_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1257,1
    - Dst: TPM_PCRSelection_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1259,1
    - Dst: TPM_PCRInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_pcr_info
    argTypes:
    - TPM_PCR_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1255
    functionDepth: 2
    functionLinenumber: 1255
    functionLinenumberEnd: 1263
    functionName: TPM_PCRInfo_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfo_Init
    - printf
    - TPM_PCRSelection_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_PCRInfo_Delete(TPM_PCR_INFO *tpm_pcr_info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1273,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1278,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - tpm_pcr_info
    argTypes:
    - TPM_PCR_INFO**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1269
    functionDepth: 2
    functionLinenumber: 1269
    functionLinenumberEnd: 1286
    functionName: TPM_PCRInfo_Create
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_Malloc
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_PCRInfo_Create(TPM_PCR_INFO **tpm_pcr_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1299,1
    - Dst: TPM_PCRInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1301,1
    - Dst: TPM_PCRInfo_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - tpm_pcr_info
    - tpm_sized_buffer
    argTypes:
    - TPM_PCR_INFO*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1292
    functionDepth: 2
    functionLinenumber: 1292
    functionLinenumberEnd: 1308
    functionName: TPM_PCRInfo_LoadFromBuffer
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfo_Init
    - TPM_PCRInfo_Load
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfo_LoadFromBuffer(TPM_PCR_INFO *tpm_pcr_info,\n\t\t\t\t
      \     const TPM_SIZED_BUFFER *tpm_sized_buffer)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1324,1
    - Dst: TPM_PCRInfo_Create
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1332,1
    - Dst: TPM_PCRInfo_LoadFromBuffer
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1335,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - tpm_pcr_info
    - tpm_sized_buffer
    argTypes:
    - TPM_PCR_INFO**
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1318
    functionDepth: 3
    functionLinenumber: 1318
    functionLinenumberEnd: 1338
    functionName: TPM_PCRInfo_CreateFromBuffer
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfo_Create
    - TPM_PCRInfo_LoadFromBuffer
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfo_CreateFromBuffer(TPM_PCR_INFO **tpm_pcr_info,\n\t\t\t\t\tconst
      TPM_SIZED_BUFFER *tpm_sized_buffer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1350,1
    - Dst: TPM_PCRSelection_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1353,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1358,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dest_tpm_pcr_info
    - src_tpm_pcr_info
    argTypes:
    - TPM_PCR_INFO*
    - TPM_PCR_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1364
    functionName: TPM_PCRInfo_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRSelection_Copy
    - printf
    - TPM_Digest_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfo_Copy(TPM_PCR_INFO *dest_tpm_pcr_info,\n\t\t\t
      \   TPM_PCR_INFO *src_tpm_pcr_info)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1380,1
    - Dst: TPM_PCRSelection_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1384,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1390,1
    - Dst: TPM_PCRSelection_Compare
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1392,1
    - Dst: TPM_PCRLocality_Compare
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1395,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1402,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - dest_tpm_pcr_info
    - src_tpm_pcr_info_long
    argTypes:
    - TPM_PCR_INFO*
    - TPM_PCR_INFO_LONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1373
    functionDepth: 1
    functionLinenumber: 1373
    functionLinenumberEnd: 1412
    functionName: TPM_PCRInfo_CopyInfoLong
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRSelection_Copy
    - printf
    - TPM_Digest_Copy
    - TPM_Digest_Init
    - TPM_PCRSelection_Compare
    - TPM_PCRLocality_Compare
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfo_CopyInfoLong(TPM_PCR_INFO *dest_tpm_pcr_info,\n\t\t\t\t
      \   TPM_PCR_INFO_LONG *src_tpm_pcr_info_long)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1426,1
    - Dst: TPM_PCRInfo_Create
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1435,1
    - Dst: TPM_PCRInfo_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1439,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - dest_tpm_pcr_info
    - src_tpm_pcr_info
    argTypes:
    - TPM_PCR_INFO**
    - TPM_PCR_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1420
    functionDepth: 3
    functionLinenumber: 1420
    functionLinenumberEnd: 1442
    functionName: TPM_PCRInfo_CreateFromInfo
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfo_Create
    - TPM_PCRInfo_Copy
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfo_CreateFromInfo(TPM_PCR_INFO **dest_tpm_pcr_info,\n\t\t\t\t
      \     TPM_PCR_INFO *src_tpm_pcr_info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1456,1
    - Dst: TPM_PCRInfo_Create
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1465,1
    - Dst: TPM_PCRInfo_CopyInfoLong
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1469,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - dest_tpm_pcr_info
    - src_tpm_pcr_info_long
    argTypes:
    - TPM_PCR_INFO**
    - TPM_PCR_INFO_LONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1450
    functionDepth: 3
    functionLinenumber: 1450
    functionLinenumberEnd: 1472
    functionName: TPM_PCRInfo_CreateFromInfoLong
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfo_CopyInfoLong
    - TPM_PCRInfo_Create
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfo_CreateFromInfoLong(TPM_PCR_INFO **dest_tpm_pcr_info,\n\t\t\t\t\t
      \ TPM_PCR_INFO_LONG *src_tpm_pcr_info_long)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1489,1
    - Dst: TPM_PCRInfo_CreateFromInfo
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1492,1
    - Dst: TPM_PCRInfo_CreateFromInfoLong
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dest_tpm_pcr_info
    - tpm_key
    argTypes:
    - TPM_PCR_INFO**
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1484
    functionDepth: 4
    functionLinenumber: 1484
    functionLinenumberEnd: 1499
    functionName: TPM_PCRInfo_CreateFromKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfo_CreateFromInfoLong
    - TPM_PCRInfo_CreateFromInfo
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfo_CreateFromKey(TPM_PCR_INFO **dest_tpm_pcr_info,\n\t\t\t\t
      \    TPM_KEY *tpm_key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1512,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1515,1
    - Dst: TPM_PCRSelection_GenerateDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - tpm_digest
    - tpm_pcr_info
    - tpm_pcrs
    argTypes:
    - TPM_DIGEST
    - TPM_PCR_INFO*
    - TPM_PCRVALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1505
    functionDepth: 1
    functionLinenumber: 1505
    functionLinenumberEnd: 1526
    functionName: TPM_PCRInfo_GenerateDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRSelection_GenerateDigest
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfo_GenerateDigest(TPM_DIGEST tpm_digest,\t\t/*
      output digest */\n\t\t\t\t      TPM_PCR_INFO *tpm_pcr_info,\t/* input */\n\t\t\t\t
      \     TPM_PCRVALUE *tpm_pcrs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1540,1
    - Dst: TPM_PCRInfo_GetPCRUsage
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1543,1
    - Dst: TPM_PCRSelection_GenerateDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1546,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1552,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1555,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - tpm_pcr_info
    - tpm_pcrs
    argTypes:
    - TPM_PCR_INFO*
    - TPM_PCRVALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1532
    functionDepth: 1
    functionLinenumber: 1532
    functionLinenumberEnd: 1560
    functionName: TPM_PCRInfo_CheckDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRSelection_GenerateDigest
    - TPM_Digest_Compare
    - printf
    - TPM_PCRInfo_GetPCRUsage
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfo_CheckDigest(TPM_PCR_INFO *tpm_pcr_info,\n\t\t\t\t
      \  TPM_PCRVALUE *tpm_pcrs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1572,1
    - Dst: TPM_PCRInfo_GenerateDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tpm_pcr_info
    - tpm_pcrs
    argTypes:
    - TPM_PCR_INFO*
    - TPM_PCRVALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1566
    functionDepth: 2
    functionLinenumber: 1566
    functionLinenumberEnd: 1577
    functionName: TPM_PCRInfo_SetDigestAtCreation
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfo_GenerateDigest
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfo_SetDigestAtCreation(TPM_PCR_INFO *tpm_pcr_info,\n\t\t\t\t\t
      \  TPM_PCRVALUE *tpm_pcrs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1591,1
    - Dst: TPM_PCRSelection_GetPCRUsage
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1600,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1603,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - pcrUsage
    - tpm_pcr_info
    - start_index
    argTypes:
    - TPM_BOOL*
    - TPM_PCR_INFO*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1584
    functionDepth: 1
    functionLinenumber: 1584
    functionLinenumberEnd: 1606
    functionName: TPM_PCRInfo_GetPCRUsage
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 1
    functionsReached:
    - TPM_PCRSelection_GetPCRUsage
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfo_GetPCRUsage(TPM_BOOL *pcrUsage,\n\t\t\t\t   TPM_PCR_INFO
      *tpm_pcr_info,\n\t\t\t\t   size_t start_index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1621,1
    - Dst: TPM_PCRSelection_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1625,1
    - Dst: TPM_PCRSelection_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1626,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1627,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tpm_pcr_info_long
    argTypes:
    - TPM_PCR_INFO_LONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1630
    functionName: TPM_PCRInfoLong_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_PCRSelection_Init
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_PCRInfoLong_Init(TPM_PCR_INFO_LONG *tpm_pcr_info_long)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1648,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1651,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1655,1
    - Dst: TPM_LocalitySelection_CheckLegal
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1659,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1663,1
    - Dst: TPM_LocalitySelection_CheckLegal
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1667,1
    - Dst: TPM_PCRSelection_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1671,1
    - Dst: TPM_PCRSelection_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1675,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1679,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1683,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - tpm_pcr_info_long
    - stream
    - stream_size
    argTypes:
    - TPM_PCR_INFO_LONG*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1642
    functionDepth: 3
    functionLinenumber: 1642
    functionLinenumberEnd: 1686
    functionName: TPM_PCRInfoLong_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_LocalitySelection_CheckLegal
    - TPM_Digest_Load
    - TPM_PCRSelection_Load
    - TPM_CheckTag
    - printf
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoLong_Load(TPM_PCR_INFO_LONG *tpm_pcr_info_long,\n\t\t\t\tunsigned
      char **stream,\n\t\t\t\tuint32_t *stream_size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1699,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1702,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1706,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1711,1
    - Dst: TPM_PCRSelection_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1716,1
    - Dst: TPM_PCRSelection_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1720,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1724,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1728,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - sbuffer
    - tpm_pcr_info_long
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_PCR_INFO_LONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1694
    functionDepth: 1
    functionLinenumber: 1694
    functionLinenumberEnd: 1731
    functionName: TPM_PCRInfoLong_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRSelection_Store
    - TPM_Sbuffer_Append16
    - printf
    - TPM_Digest_Store
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoLong_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      const TPM_PCR_INFO_LONG *tpm_pcr_info_long)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1744,1
    - Dst: TPM_PCRSelection_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1746,1
    - Dst: TPM_PCRSelection_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1747,1
    - Dst: TPM_PCRInfoLong_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tpm_pcr_info_long
    argTypes:
    - TPM_PCR_INFO_LONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1742
    functionDepth: 2
    functionLinenumber: 1742
    functionLinenumberEnd: 1751
    functionName: TPM_PCRInfoLong_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfoLong_Init
    - printf
    - TPM_PCRSelection_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_PCRInfoLong_Delete(TPM_PCR_INFO_LONG *tpm_pcr_info_long)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1761,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1766,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1771,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - tpm_pcr_info_long
    argTypes:
    - TPM_PCR_INFO_LONG**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1757
    functionDepth: 2
    functionLinenumber: 1757
    functionLinenumberEnd: 1774
    functionName: TPM_PCRInfoLong_Create
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_Malloc
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_PCRInfoLong_Create(TPM_PCR_INFO_LONG **tpm_pcr_info_long)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1787,1
    - Dst: TPM_PCRInfoLong_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1789,1
    - Dst: TPM_PCRInfoLong_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - tpm_pcr_info_long
    - tpm_sized_buffer
    argTypes:
    - TPM_PCR_INFO_LONG*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1780
    functionDepth: 4
    functionLinenumber: 1780
    functionLinenumberEnd: 1796
    functionName: TPM_PCRInfoLong_LoadFromBuffer
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfoLong_Init
    - printf
    - TPM_PCRInfoLong_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoLong_LoadFromBuffer(TPM_PCR_INFO_LONG *tpm_pcr_info_long,\n\t\t\t\t\t
      \ const TPM_SIZED_BUFFER *tpm_sized_buffer)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1812,1
    - Dst: TPM_PCRInfoLong_Create
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1821,1
    - Dst: TPM_PCRInfoLong_LoadFromBuffer
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1825,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - tpm_pcr_info_long
    - tpm_sized_buffer
    argTypes:
    - TPM_PCR_INFO_LONG**
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1806
    functionDepth: 5
    functionLinenumber: 1806
    functionLinenumberEnd: 1828
    functionName: TPM_PCRInfoLong_CreateFromBuffer
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfoLong_Create
    - printf
    - TPM_PCRInfoLong_LoadFromBuffer
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoLong_CreateFromBuffer(TPM_PCR_INFO_LONG **tpm_pcr_info_long,\n\t\t\t\t\t
      \   const TPM_SIZED_BUFFER *tpm_sized_buffer)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1837,1
    - Dst: TPM_PCRSelection_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1843,1
    - Dst: TPM_PCRSelection_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1848,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1853,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1855,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - dest_tpm_pcr_info_long
    - src_tpm_pcr_info_long
    argTypes:
    - TPM_PCR_INFO_LONG*
    - TPM_PCR_INFO_LONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1832
    functionDepth: 1
    functionLinenumber: 1832
    functionLinenumberEnd: 1859
    functionName: TPM_PCRInfoLong_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRSelection_Copy
    - printf
    - TPM_Digest_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoLong_Copy(TPM_PCR_INFO_LONG *dest_tpm_pcr_info_long,\n\t\t\t\tTPM_PCR_INFO_LONG
      *src_tpm_pcr_info_long)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1874,1
    - Dst: TPM_PCRInfoLong_Create
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1883,1
    - Dst: TPM_PCRInfoLong_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1887,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - dest_tpm_pcr_info_long
    - src_tpm_pcr_info_long
    argTypes:
    - TPM_PCR_INFO_LONG**
    - TPM_PCR_INFO_LONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1868
    functionDepth: 3
    functionLinenumber: 1868
    functionLinenumberEnd: 1890
    functionName: TPM_PCRInfoLong_CreateFromInfoLong
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfoLong_Create
    - printf
    - TPM_PCRInfoLong_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoLong_CreateFromInfoLong(TPM_PCR_INFO_LONG **dest_tpm_pcr_info_long,\n\t\t\t\t\t
      \     TPM_PCR_INFO_LONG *src_tpm_pcr_info_long)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1903,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1906,1
    - Dst: TPM_PCRSelection_GenerateDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1912,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - tpm_digest
    - tpm_pcr_info_long
    - tpm_pcrs
    argTypes:
    - TPM_DIGEST
    - TPM_PCR_INFO_LONG*
    - TPM_PCRVALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1896
    functionDepth: 1
    functionLinenumber: 1896
    functionLinenumberEnd: 1917
    functionName: TPM_PCRInfoLong_GenerateDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRSelection_GenerateDigest
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoLong_GenerateDigest(TPM_DIGEST tpm_digest,\t\t/*
      output digest */\n\t\t\t\t\t  TPM_PCR_INFO_LONG *tpm_pcr_info_long, /* input
      */\n\t\t\t\t\t  TPM_PCRVALUE *tpm_pcrs)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1931,1
    - Dst: TPM_PCRInfoLong_GetPCRUsage
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1934,1
    - Dst: TPM_PCRSelection_GenerateDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1939,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1945,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1948,1
    - Dst: TPM_Locality_Check
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1957,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - tpm_pcr_info_long
    - tpm_pcrs
    - localityModifier
    argTypes:
    - TPM_PCR_INFO_LONG*
    - TPM_PCRVALUE*
    - TPM_MODIFIER_INDICATOR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1923
    functionDepth: 2
    functionLinenumber: 1923
    functionLinenumberEnd: 1961
    functionName: TPM_PCRInfoLong_CheckDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Compare
    - TPM_PCRInfoLong_GetPCRUsage
    - printf
    - TPM_PCRSelection_GenerateDigest
    - TPM_Locality_Check
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoLong_CheckDigest(TPM_PCR_INFO_LONG *tpm_pcr_info_long,\n\t\t\t\t
      \      TPM_PCRVALUE *tpm_pcrs,\t/* points to the TPM PCR array */\n\t\t\t\t
      \      TPM_MODIFIER_INDICATOR localityModifier)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1973,1
    - Dst: TPM_PCRInfoLong_GenerateDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tpm_pcr_info_long
    - tpm_pcrs
    argTypes:
    - TPM_PCR_INFO_LONG*
    - TPM_PCRVALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1967
    functionDepth: 2
    functionLinenumber: 1967
    functionLinenumberEnd: 1980
    functionName: TPM_PCRInfoLong_SetDigestAtCreation
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfoLong_GenerateDigest
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoLong_SetDigestAtCreation(TPM_PCR_INFO_LONG *tpm_pcr_info_long,\n\t\t\t\t\t
      \      TPM_PCRVALUE *tpm_pcrs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:1995,1
    - Dst: TPM_PCRSelection_GetPCRUsage
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2004,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2008,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - pcrUsage
    - tpm_pcr_info_long
    - start_index
    argTypes:
    - TPM_BOOL*
    - TPM_PCR_INFO_LONG*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1988
    functionDepth: 1
    functionLinenumber: 1988
    functionLinenumberEnd: 2011
    functionName: TPM_PCRInfoLong_GetPCRUsage
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 1
    functionsReached:
    - TPM_PCRSelection_GetPCRUsage
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRInfoLong_GetPCRUsage(TPM_BOOL *pcrUsage,\n\t\t\t\t
      \      TPM_PCR_INFO_LONG *tpm_pcr_info_long,\n\t\t\t\t       size_t start_index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2022,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_pcr_selection
    argTypes:
    - TPM_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2018
    functionDepth: 1
    functionLinenumber: 2018
    functionLinenumberEnd: 2028
    functionName: TPM_PCRSelection_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 4
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_PCRSelection_Init(TPM_PCR_SELECTION *tpm_pcr_selection)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2046,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2049,1
    - Dst: TPM_PCRSelection_CheckRange
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2053,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2057,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - tpm_pcr_selection
    - stream
    - stream_size
    argTypes:
    - TPM_PCR_SELECTION*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 2039
    functionDepth: 2
    functionLinenumber: 2039
    functionLinenumberEnd: 2064
    functionName: TPM_PCRSelection_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 3
    functionsReached:
    - TPM_Load16
    - TPM_PCRSelection_CheckRange
    - printf
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRSelection_Load(TPM_PCR_SELECTION *tpm_pcr_selection,\n\t\t\t\t
      unsigned char **stream,\n\t\t\t\t uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2079,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2082,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2085,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sbuffer
    - tpm_pcr_selection
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2089
      start: 2074
    functionDepth: 1
    functionLinenumber: 2074
    functionLinenumberEnd: 2089
    functionName: TPM_PCRSelection_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 4
    functionsReached:
    - TPM_Sbuffer_Append
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRSelection_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \ const TPM_PCR_SELECTION *tpm_pcr_selection)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2104,1
    - Dst: TPM_PCRSelection_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_pcr_selection
    argTypes:
    - TPM_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2102
    functionDepth: 2
    functionLinenumber: 2102
    functionLinenumberEnd: 2109
    functionName: TPM_PCRSelection_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 4
    functionsReached:
    - printf
    - TPM_PCRSelection_Init
    linkageType: ''
    returnType: void
    signature: void TPM_PCRSelection_Delete(TPM_PCR_SELECTION *tpm_pcr_selection)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2123,1
    - Dst: TPM_PCRSelection_CheckRange
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - destination
    - source
    argTypes:
    - TPM_PCR_SELECTION*
    - TPM_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2118
    functionDepth: 1
    functionLinenumber: 2118
    functionLinenumberEnd: 2140
    functionName: TPM_PCRSelection_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 7
    functionsReached:
    - TPM_PCRSelection_CheckRange
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_PCRSelection_Copy(TPM_PCR_SELECTION *destination, TPM_PCR_SELECTION
      *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2157,1
    - Dst: TPM_PCRComposite_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2158,1
    - Dst: TPM_PCRSelection_GenerateDigest2
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2159,1
    - Dst: TPM_PCRComposite_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - tpm_digest
    - tpm_pcr_selection
    - tpm_pcrs
    argTypes:
    - TPM_DIGEST
    - TPM_PCR_SELECTION*
    - TPM_PCRVALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2149
    functionDepth: 3
    functionLinenumber: 2149
    functionLinenumberEnd: 2165
    functionName: TPM_PCRSelection_GenerateDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 6
    functionsReached:
    - TPM_PCRComposite_Init
    - printf
    - TPM_PCRComposite_Delete
    - TPM_PCRSelection_GenerateDigest2
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRSelection_GenerateDigest(TPM_DIGEST tpm_digest,
      /* output digest */\n\t\t\t\t\t   TPM_PCR_SELECTION *tpm_pcr_selection, /* input
      selection\n\t\t\t\t\t\t\t\t\t\t    map */\n\t\t\t\t\t   TPM_PCRVALUE *tpm_pcrs)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2189,1
    - Dst: TPM_PCRComposite_Set
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2192,1
    - Dst: TPM_PCRSelection_GetPCRUsage
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2195,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2198,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2202,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - tpm_digest
    - tpm_pcr_composite
    - tpm_pcr_selection
    - tpm_pcrs
    argTypes:
    - TPM_DIGEST
    - TPM_PCR_COMPOSITE*
    - TPM_PCR_SELECTION*
    - TPM_PCRVALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2177
    functionDepth: 4
    functionLinenumber: 2177
    functionLinenumberEnd: 2213
    functionName: TPM_PCRSelection_GenerateDigest2
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 1
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_PCRSelection_GetPCRUsage
    - printf
    - TPM_PCRComposite_Set
    - TPM_Digest_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRSelection_GenerateDigest2(TPM_DIGEST tpm_digest,
      /* output digest */\n\t\t\t\t\t    TPM_PCR_COMPOSITE *tpm_pcr_composite, /*
      output\n\t\t\t\t\t\t\t\t\t\t     structure\n\t\t\t\t\t\t\t\t\t\t   */\n\t\t\t\t\t
      \   TPM_PCR_SELECTION *tpm_pcr_selection, /* input selection\n\t\t\t\t\t\t\t\t\t\t
      \    map */\n\t\t\t\t\t    TPM_PCRVALUE *tpm_pcrs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2228,1
    - Dst: TPM_PCRSelection_CheckRange
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - pcrUsage
    - tpm_pcr_selection
    - start_index
    argTypes:
    - TPM_BOOL*
    - TPM_PCR_SELECTION*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2244
      start: 2221
    functionDepth: 1
    functionLinenumber: 2221
    functionLinenumberEnd: 2244
    functionName: TPM_PCRSelection_GetPCRUsage
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 6
    functionsReached:
    - TPM_PCRSelection_CheckRange
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PCRSelection_GetPCRUsage(TPM_BOOL *pcrUsage,\n\t\t\t\t\tconst
      TPM_PCR_SELECTION *tpm_pcr_selection,\n\t\t\t\t\tsize_t start_index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_pcr_selection
    argTypes:
    - TPM_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2250
    functionDepth: 1
    functionLinenumber: 2250
    functionLinenumberEnd: 2260
    functionName: TPM_PCRSelection_CheckRange
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 4
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_PCRSelection_CheckRange(const TPM_PCR_SELECTION *tpm_pcr_selection)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - match
    - tpm_pcr_selection1
    - tpm_pcr_selection2
    argTypes:
    - TPM_BOOL*
    - TPM_PCR_SELECTION*
    - TPM_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2282
      start: 2266
    functionDepth: 0
    functionLinenumber: 2266
    functionLinenumberEnd: 2282
    functionName: TPM_PCRSelection_Compare
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TPM_PCRSelection_Compare(TPM_BOOL *match,\n\t\t\t      TPM_PCR_SELECTION
      *tpm_pcr_selection1,\n\t\t\t      TPM_PCR_SELECTION *tpm_pcr_selection2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - lessThan
    - tpm_pcr_selection_new
    - tpm_pcr_selection_old
    argTypes:
    - TPM_BOOL*
    - TPM_PCR_SELECTION*
    - TPM_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2289
    functionDepth: 0
    functionLinenumber: 2289
    functionLinenumberEnd: 2306
    functionName: TPM_PCRSelection_LessThan
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TPM_PCRSelection_LessThan(TPM_BOOL *lessThan,\n\t\t\t       TPM_PCR_SELECTION
      *tpm_pcr_selection_new,\n\t\t\t       TPM_PCR_SELECTION *tpm_pcr_selection_old)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2323,1
    - Dst: TPM_StructVer_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2324,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2325,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2326,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tpm_quote_info
    argTypes:
    - TPM_QUOTE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2329
      start: 2321
    functionDepth: 1
    functionLinenumber: 2321
    functionLinenumberEnd: 2329
    functionName: TPM_QuoteInfo_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - memcpy
    - TPM_Nonce_Init
    - TPM_StructVer_Init
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_QuoteInfo_Init(TPM_QUOTE_INFO *tpm_quote_info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2350,1
    - Dst: TPM_StructVer_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2353,1
    - Dst: TPM_StructVer_CheckVer
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2357,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2361,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2365,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - tpm_quote_info
    - stream
    - stream_size
    argTypes:
    - TPM_QUOTE_INFO*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2344
    functionDepth: 2
    functionLinenumber: 2344
    functionLinenumberEnd: 2372
    functionName: TPM_QuoteInfo_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Load
    - TPM_StructVer_Load
    - TPM_Loadn
    - TPM_Nonce_Load
    - printf
    - TPM_StructVer_CheckVer
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_QuoteInfo_Load(TPM_QUOTE_INFO *tpm_quote_info,\n\t\t\t
      \     unsigned char **stream,\n\t\t\t      uint32_t *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2386,1
    - Dst: TPM_StructVer_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2389,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2393,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2397,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_quote_info
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_QUOTE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2381
    functionDepth: 1
    functionLinenumber: 2381
    functionLinenumberEnd: 2404
    functionName: TPM_QuoteInfo_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_StructVer_Store
    - TPM_Sbuffer_Append
    - printf
    - TPM_Digest_Store
    - TPM_Nonce_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_QuoteInfo_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t
      \      const TPM_QUOTE_INFO *tpm_quote_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2417,1
    - Dst: TPM_QuoteInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_quote_info
    argTypes:
    - TPM_QUOTE_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2422
      start: 2415
    functionDepth: 2
    functionLinenumber: 2415
    functionLinenumberEnd: 2422
    functionName: TPM_QuoteInfo_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_QuoteInfo_Init
    linkageType: ''
    returnType: void
    signature: void TPM_QuoteInfo_Delete(TPM_QUOTE_INFO *tpm_quote_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2437,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2438,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2439,1
    - Dst: TPM_PCRInfoShort_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tpm_quote_info2
    argTypes:
    - TPM_QUOTE_INFO2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2442
      start: 2435
    functionDepth: 2
    functionLinenumber: 2435
    functionLinenumberEnd: 2442
    functionName: TPM_QuoteInfo2_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_Nonce_Init
    - printf
    - memcpy
    - TPM_PCRInfoShort_Init
    linkageType: ''
    returnType: void
    signature: void TPM_QuoteInfo2_Init(TPM_QUOTE_INFO2 *tpm_quote_info2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2461,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2464,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2468,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2472,1
    - Dst: TPM_PCRInfoShort_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - tpm_quote_info2
    - stream
    - stream_size
    argTypes:
    - TPM_QUOTE_INFO2*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2455
    functionDepth: 3
    functionLinenumber: 2455
    functionLinenumberEnd: 2479
    functionName: TPM_QuoteInfo2_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_CheckTag
    - TPM_Loadn
    - TPM_Nonce_Load
    - printf
    - TPM_PCRInfoShort_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_QuoteInfo2_Load(TPM_QUOTE_INFO2 *tpm_quote_info2,\n\t\t\t
      \      unsigned char **stream,\n\t\t\t       uint32_t *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2493,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2496,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2500,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2504,1
    - Dst: TPM_PCRInfoShort_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2508,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_quote_info2
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_QUOTE_INFO2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2488
    functionDepth: 2
    functionLinenumber: 2488
    functionLinenumberEnd: 2511
    functionName: TPM_QuoteInfo2_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append16
    - TPM_Sbuffer_Append
    - printf
    - TPM_PCRInfoShort_Store
    - TPM_Nonce_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_QuoteInfo2_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\tconst
      TPM_QUOTE_INFO2 *tpm_quote_info2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2524,1
    - Dst: TPM_PCRInfoShort_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2526,1
    - Dst: TPM_QuoteInfo2_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_quote_info2
    argTypes:
    - TPM_QUOTE_INFO2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2530
      start: 2522
    functionDepth: 3
    functionLinenumber: 2522
    functionLinenumberEnd: 2530
    functionName: TPM_QuoteInfo2_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfoShort_Delete
    - printf
    - TPM_QuoteInfo2_Init
    linkageType: ''
    returnType: void
    signature: void TPM_QuoteInfo2_Delete(TPM_QUOTE_INFO2 *tpm_quote_info2)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2569,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2577,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2583,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2595,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2599,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2603,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2615,1
    - Dst: TPM_PCR_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2616,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2621,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2628,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2630,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2638,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2644,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2655,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2662,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2542
    functionDepth: 3
    functionLinenumber: 2542
    functionLinenumberEnd: 2665
    functionName: TPM_Process_PcrRead
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_GetInParamDigest
    - TPM_PrintFour
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_PCR_Load
    - TPM_GetOutParamDigest
    - TPM_Digest_Store
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_PcrRead(tpm_state_t *tpm_state,\n\t\t\t       TPM_STORE_BUFFER
      *response,\n\t\t\t       TPM_TAG tag,\n\t\t\t       uint32_t paramSize,\n\t\t\t
      \      TPM_COMMAND_CODE ordinal,\n\t\t\t       unsigned char *command,\n\t\t\t
      \      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2728,1
    - Dst: TPM_PCRSelection_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2729,1
    - Dst: TPM_PCRComposite_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2730,1
    - Dst: TPM_QuoteInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2731,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2732,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2738,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2744,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2745,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2749,1
    - Dst: TPM_PCRSelection_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2750,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2756,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2768,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2772,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2776,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2784,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2788,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2802,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2809,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2815,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2819,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2832,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2846,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2857,1
    - Dst: TPM_PCRSelection_GenerateDigest2
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2869,1
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2882,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2887,1
    - Dst: TPM_RSASignToSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2892,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2902,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2904,1
    - Dst: TPM_PCRComposite_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2912,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2916,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2922,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2933,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2942,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2949,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2956,1
    - Dst: TPM_PCRSelection_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2961,1
    - Dst: TPM_PCRComposite_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2962,1
    - Dst: TPM_QuoteInfo_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2963,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:2964,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 117
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2966
      start: 2679
    functionDepth: 5
    functionLinenumber: 2679
    functionLinenumberEnd: 2966
    functionName: TPM_Process_Quote
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_SizedBuffer_Store
    - TPM_PCRComposite_Init
    - TPM_PCRSelection_Init
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_PCRComposite_Delete
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_Nonce_Copy
    - TPM_SizedBuffer_Init
    - TPM_PCRSelection_Load
    - TPM_SizedBuffer_Delete
    - TPM_PrintFour
    - printf
    - TPM_CheckRequestTag10
    - TPM_PCRSelection_Delete
    - TPM_QuoteInfo_Init
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_RSASignToSizedBuffer
    - TPM_Nonce_Load
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_PCRComposite_Store
    - TPM_Load32
    - TPM_QuoteInfo_Delete
    - TPM_PCRSelection_GenerateDigest2
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_Quote(tpm_state_t *tpm_state,\n\t\t\t     TPM_STORE_BUFFER
      *response,\n\t\t\t     TPM_TAG tag,\n\t\t\t     uint32_t paramSize,\n\t\t\t
      \    TPM_COMMAND_CODE ordinal,\n\t\t\t     unsigned char *command,\n\t\t\t     TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3039,1
    - Dst: TPM_PCRSelection_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3040,1
    - Dst: TPM_CapVersionInfo_Set
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3041,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3042,1
    - Dst: TPM_QuoteInfo2_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3043,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3044,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3045,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3051,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3057,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3058,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3062,1
    - Dst: TPM_PCRSelection_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3063,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3067,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3070,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3076,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3088,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3092,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3096,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3104,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3108,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3122,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3129,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3135,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3139,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3152,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3166,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3177,1
    - Dst: TPM_PCRSelection_GenerateDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3187,1
    - Dst: TPM_PCRSelection_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3195,1
    - Dst: TPM_Locality_Set
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3199,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3204,1
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3211,1
    - Dst: TPM_QuoteInfo2_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3213,1
    - Dst: TPM_CapVersionInfo_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3224,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3228,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3230,1
    - Dst: TPM_SHA1Sbuffer
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3244,1
    - Dst: TPM_RSASignToSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3248,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3258,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3260,1
    - Dst: TPM_PCRInfoShort_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3268,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3274,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3278,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3282,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3288,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3299,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3308,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3315,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3322,1
    - Dst: TPM_PCRSelection_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3327,1
    - Dst: TPM_CapVersionInfo_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3328,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3329,1
    - Dst: TPM_QuoteInfo2_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3330,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3331,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3332,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 155
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3334
      start: 2985
    functionDepth: 4
    functionLinenumber: 2985
    functionLinenumberEnd: 3334
    functionName: TPM_Process_Quote2
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_CapVersionInfo_Set
    - TPM_Sbuffer_Get
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_SizedBuffer_Store
    - TPM_PCRSelection_Init
    - TPM_QuoteInfo2_Delete
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_Locality_Set
    - TPM_Sbuffer_Append
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_CapVersionInfo_Delete
    - TPM_LoadBool
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_Digest_Copy
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_Nonce_Copy
    - TPM_QuoteInfo2_Store
    - TPM_SizedBuffer_Init
    - TPM_PCRSelection_Load
    - TPM_SizedBuffer_Delete
    - TPM_PrintFour
    - TPM_PCRSelection_Copy
    - printf
    - TPM_CheckRequestTag10
    - TPM_PCRSelection_Delete
    - TPM_QuoteInfo2_Init
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_CapVersionInfo_Store
    - TPM_RSASignToSizedBuffer
    - TPM_Sbuffer_Delete
    - TPM_Nonce_Load
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_PCRSelection_GenerateDigest
    - TPM_PCRInfoShort_Store
    - TPM_SHA1Sbuffer
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_Quote2(tpm_state_t *tpm_state,\n\t\t\t      TPM_STORE_BUFFER
      *response,\n\t\t\t      TPM_TAG tag,\n\t\t\t      uint32_t paramSize,\n\t\t\t
      \     TPM_COMMAND_CODE ordinal,\n\t\t\t      unsigned char *command,\n\t\t\t
      \     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3354,1
    - Dst: TPM_PCR_CheckRange
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3357,1
    - Dst: TPM_Locality_Check
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3364,1
    - Dst: TPM_PCR_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3369,1
    - Dst: TPM_Digest_IsZero
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3388,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3390,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3403,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3406,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3407,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3413,1
    - Dst: TPM_PCR_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3415,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3425,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3430,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 5
    argNames:
    - outDigest
    - tpm_state
    - ordinal
    - pcrNum
    - inDigest
    argTypes:
    - TPM_PCRVALUE
    - tpm_state_t*
    - TPM_COMMAND_CODE
    - TPM_PCRINDEX
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3437
      start: 3343
    functionDepth: 3
    functionLinenumber: 3343
    functionLinenumberEnd: 3437
    functionName: TPM_ExtendCommon
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1
    - TPM_PCR_CheckRange
    - TPM_PrintFour
    - TPM_PCR_Store
    - TPM_Digest_IsZero
    - TPM_PCR_Load
    - printf
    - TPM_Digest_Init
    - TPM_Digest_Copy
    - TPM_Locality_Check
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ExtendCommon(TPM_PCRVALUE outDigest,\t/* The PCR value
      after execution of\n\t\t\t\t\t\t\t   the command */\n\t\t\t    tpm_state_t *tpm_state,\n\t\t\t
      \   TPM_COMMAND_CODE ordinal,\t/* command ordinal */\n\t\t\t    TPM_PCRINDEX
      pcrNum,\t/* Index of the PCR to be modified */\n\t\t\t    TPM_DIGEST inDigest)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3473,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3481,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3485,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3491,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3503,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3508,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3512,1
    - Dst: TPM_ExtendCommon
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3522,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3529,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3531,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3539,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3545,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3556,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3563,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3566
      start: 3444
    functionDepth: 4
    functionLinenumber: 3444
    functionLinenumberEnd: 3566
    functionName: TPM_Process_Extend
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Load
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_GetOutParamDigest
    - TPM_ExtendCommon
    - TPM_Digest_Store
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_Extend(tpm_state_t *tpm_state,\n\t\t\t      TPM_STORE_BUFFER
      *response,\n\t\t\t      TPM_TAG tag,\n\t\t\t      uint32_t paramSize,\n\t\t\t
      \     TPM_COMMAND_CODE ordinal,\n\t\t\t      unsigned char *command,\n\t\t\t
      \     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3635,1
    - Dst: TPM_PCRSelection_Init
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3636,1
    - Dst: TPM_PCRSelection_Load
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3644,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3650,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3662,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3667,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3671,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3685,1
    - Dst: TPM_PCRSelection_GetPCRUsage
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3686,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3691,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3712,1
    - Dst: TPM_Locality_Check
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3721,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3724,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3740,1
    - Dst: TPM_PCR_Reset
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3748,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3760,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3762,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3774,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3785,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3792,1
    - Dst: TPM_PCRSelection_Delete
      Src: /src/libtpms/src/tpm12/tpm_pcr.c:3797,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 83
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3799
      start: 3601
    functionDepth: 3
    functionLinenumber: 3601
    functionLinenumberEnd: 3799
    functionName: TPM_Process_PcrReset
    functionSourceFile: /src/libtpms/src/tpm12/tpm_pcr.c
    functionUses: 0
    functionsReached:
    - TPM_GetInParamDigest
    - TPM_PCRSelection_Load
    - TPM_PCRSelection_GetPCRUsage
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_PCRSelection_Init
    - TPM_GetOutParamDigest
    - TPM_PCRSelection_Delete
    - TPM_PCR_Reset
    - TPM_ProcessAudit
    - TPM_Locality_Check
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_PcrReset(tpm_state_t *tpm_state,\n\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\tTPM_TAG tag,\n\t\t\t\tuint32_t paramSize,\n\t\t\t\tTPM_COMMAND_CODE
      ordinal,\n\t\t\t\tunsigned char *command,\n\t\t\t\tTPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:82,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:86,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:92,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_transport.c:96,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 6
    argNames:
    - dest
    - src
    - pad
    - size
    - index
    - len
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 103
    functionName: TPM_Transport_CryptMgf1
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_XOR
    - printf
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Transport_CryptMgf1(unsigned char *dest,\n\t\t\t\t
      \  const unsigned char *src,\n\t\t\t\t   const unsigned char *pad,\n\t\t\t\t
      \  uint32_t size,\n\t\t\t\t   uint32_t index,\n\t\t\t\t   uint32_t len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:131,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:135,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:141,1
    - Dst: TPM_SymmetricKeyData_StreamCrypt
      Src: /src/libtpms/src/tpm12/tpm_transport.c:145,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 11
    argNames:
    - dest
    - src
    - algId
    - encScheme
    - symmetric_key
    - symmetric_key_size
    - pad_in
    - pad_in_size
    - size
    - index
    - len
    argTypes:
    - unsigned char*
    - unsigned char*
    - TPM_ALGORITHM_ID
    - TPM_ENC_SCHEME
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 162
    functionName: TPM_Transport_CryptSymmetric
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_SymmetricKeyData_StreamCrypt
    - printf
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Transport_CryptSymmetric(unsigned char *dest,\n\t\t\t\t\tconst
      unsigned char *src,\n\t\t\t\t\tTPM_ALGORITHM_ID algId,\t\t\t/* algorithm */\n\t\t\t\t\tTPM_ENC_SCHEME
      encScheme,\t\t/* mode */\n\t\t\t\t\tconst unsigned char *symmetric_key,\n\t\t\t\t\tuint32_t
      symmetric_key_size,\n\t\t\t\t\tunsigned char *pad_in,\n\t\t\t\t\tuint32_t pad_in_size,\n\t\t\t\t\tuint32_t
      size,\n\t\t\t\t\tuint32_t index,\n\t\t\t\t\tuint32_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:172,1
    - Dst: TPM_TransportInternal_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - transSessions
    argTypes:
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 177
    functionName: TPM_TransportSessions_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_TransportInternal_Init
    linkageType: ''
    returnType: void
    signature: void TPM_TransportSessions_Init(TPM_TRANSPORT_INTERNAL *transSessions)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:198,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:201,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:205,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:211,1
    - Dst: TPM_TransportInternal_Load
      Src: /src/libtpms/src/tpm12/tpm_transport.c:214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - transSessions
    - stream
    - stream_size
    argTypes:
    - TPM_TRANSPORT_INTERNAL*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 217
    functionName: TPM_TransportSessions_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_TransportInternal_Load
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportSessions_Load(TPM_TRANSPORT_INTERNAL *transSessions,\n\t\t\t\t
      \     unsigned char **stream,\n\t\t\t\t      uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_TransportSessions_GetSpace
      Src: /src/libtpms/src/tpm12/tpm_transport.c:235,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:237,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:238,1
    - Dst: TPM_TransportInternal_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - sbuffer
    - transSessions
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 247
    functionName: TPM_TransportSessions_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_TransportSessions_GetSpace
    - printf
    - TPM_TransportInternal_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportSessions_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \      TPM_TRANSPORT_INTERNAL *transSessions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:262,1
    - Dst: TPM_TransportInternal_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - transSessions
    argTypes:
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 267
    functionName: TPM_TransportSessions_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_TransportInternal_Delete
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_TransportSessions_Delete(TPM_TRANSPORT_INTERNAL *transSessions)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:277,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - isSpace
    - index
    - transSessions
    argTypes:
    - TPM_BOOL*
    - uint32_t*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 286
    functionName: TPM_TransportSessions_IsSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_TransportSessions_IsSpace(TPM_BOOL *isSpace, uint32_t *index,\n\t\t\t\t
      \  TPM_TRANSPORT_INTERNAL *transSessions)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - space
    - transSessions
    argTypes:
    - uint32_t*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 304
    functionName: TPM_TransportSessions_GetSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_TransportSessions_GetSpace(uint32_t *space,\n\t\t\t\t    TPM_TRANSPORT_INTERNAL
      *transSessions)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:319,1
    - Dst: TPM_TransportSessions_GetSpace
      Src: /src/libtpms/src/tpm12/tpm_transport.c:322,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:324,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_transport.c:326,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - sbuffer
    - transSessions
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 334
    functionName: TPM_TransportSessions_StoreHandles
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_TransportSessions_GetSpace
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportSessions_StoreHandles(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t\t
      \     TPM_TRANSPORT_INTERNAL *transSessions)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:352,1
    - Dst: TPM_TransportSessions_IsSpace
      Src: /src/libtpms/src/tpm12/tpm_transport.c:355,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:357,1
    - Dst: TPM_Handle_GenerateHandle
      Src: /src/libtpms/src/tpm12/tpm_transport.c:364,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - tpm_transport_internal
    - transportSessions
    argTypes:
    - TPM_TRANSPORT_INTERNAL**
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 379
    functionName: TPM_TransportSessions_GetNewHandle
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_Handle_GenerateHandle
    - TPM_TransportSessions_IsSpace
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportSessions_GetNewHandle(TPM_TRANSPORT_INTERNAL
      **tpm_transport_internal,\n\t\t\t\t\t      TPM_TRANSPORT_INTERNAL *transportSessions)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:397,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:406,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - tpm_transport_internal
    - transportSessions
    - transportHandle
    argTypes:
    - TPM_TRANSPORT_INTERNAL**
    - TPM_TRANSPORT_INTERNAL*
    - TPM_TRANSHANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 411
    functionName: TPM_TransportSessions_GetEntry
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportSessions_GetEntry(TPM_TRANSPORT_INTERNAL **tpm_transport_internal,\n\t\t\t\t\t
      \ TPM_TRANSPORT_INTERNAL *transportSessions,\t/* array */\n\t\t\t\t\t  TPM_TRANSHANDLE
      transportHandle)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:430,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:435,1
    - Dst: TPM_TransportSessions_IsSpace
      Src: /src/libtpms/src/tpm12/tpm_transport.c:441,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:443,1
    - Dst: TPM_Handle_GenerateHandle
      Src: /src/libtpms/src/tpm12/tpm_transport.c:448,1
    - Dst: TPM_TransportInternal_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:457,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:458,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - tpm_handle
    - keepHandle
    - transSessions
    - tpm_transport_internal
    argTypes:
    - TPM_HANDLE*
    - TPM_BOOL
    - TPM_TRANSPORT_INTERNAL*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 462
    functionName: TPM_TransportSessions_AddEntry
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_TransportInternal_Copy
    - TPM_Handle_GenerateHandle
    - TPM_TransportSessions_IsSpace
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportSessions_AddEntry(TPM_HANDLE *tpm_handle,\t\t\t/*
      i/o */\n\t\t\t\t\t  TPM_BOOL keepHandle,\t\t\t\t/* input */\n\t\t\t\t\t  TPM_TRANSPORT_INTERNAL
      *transSessions,\t/* input */\n\t\t\t\t\t  TPM_TRANSPORT_INTERNAL *tpm_transport_internal)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:478,1
    - Dst: TPM_TransportSessions_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_transport.c:481,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:488,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:490,1
    - Dst: TPM_TransportInternal_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:499,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - transportSessions
    - transportHandle
    - transportExclusive
    argTypes:
    - TPM_TRANSPORT_INTERNAL*
    - TPM_TRANSHANDLE
    - TPM_TRANSHANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 502
    functionName: TPM_TransportSessions_TerminateHandle
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 1
    functionsReached:
    - TPM_TransportInternal_Delete
    - TPM_TransportSessions_GetEntry
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportSessions_TerminateHandle(TPM_TRANSPORT_INTERNAL
      *transportSessions,\n\t\t\t\t\t\t TPM_TRANSHANDLE transportHandle,\n\t\t\t\t\t\t
      TPM_TRANSHANDLE *transportExclusive)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tpm_transport_public
    argTypes:
    - TPM_TRANSPORT_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 522
    functionName: TPM_TransportPublic_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_TransportPublic_Init(TPM_TRANSPORT_PUBLIC *tpm_transport_public)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:540,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_transport.c:543,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:547,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:551,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_transport.c:555,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - tpm_transport_public
    - stream
    - stream_size
    argTypes:
    - TPM_TRANSPORT_PUBLIC*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 534
    functionDepth: 3
    functionLinenumber: 534
    functionLinenumberEnd: 558
    functionName: TPM_TransportPublic_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - printf
    - TPM_Load32
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportPublic_Load(TPM_TRANSPORT_PUBLIC *tpm_transport_public,\n\t\t\t
      \  unsigned char **stream,\n\t\t\t   uint32_t *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:571,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_transport.c:574,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:578,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:582,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_transport.c:586,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_transport_public
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_TRANSPORT_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 589
    functionName: TPM_TransportPublic_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportPublic_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \    const TPM_TRANSPORT_PUBLIC *tpm_transport_public)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:602,1
    - Dst: TPM_TransportPublic_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_transport_public
    argTypes:
    - TPM_TRANSPORT_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 600
    functionDepth: 2
    functionLinenumber: 600
    functionLinenumberEnd: 607
    functionName: TPM_TransportPublic_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_TransportPublic_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_TransportPublic_Delete(TPM_TRANSPORT_PUBLIC *tpm_transport_public)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - TPM_TRANSPORT_PUBLIC*
    - TPM_TRANSPORT_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 626
    functionName: TPM_TransportPublic_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportPublic_Copy(TPM_TRANSPORT_PUBLIC *dest,\n\t\t\t\t
      \   const TPM_TRANSPORT_PUBLIC *src)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - supported
    - algId
    argTypes:
    - TPM_BOOL*
    - TPM_ALGORITHM_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 654
    functionName: TPM_TransportPublic_CheckAlgId
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_TransportPublic_CheckAlgId(TPM_BOOL *supported,\n\t\t\t\t
      \   TPM_ALGORITHM_ID algId)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:667,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:673,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:680,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:693,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:706,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 4
    argNames:
    - blockSize
    - algId
    - encScheme
    - FIPS
    argTypes:
    - uint32_t*
    - TPM_ALGORITHM_ID
    - TPM_ENC_SCHEME
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 711
    functionName: TPM_TransportPublic_CheckEncScheme
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportPublic_CheckEncScheme(uint32_t *blockSize,\n\t\t\t\t\t
      \     TPM_ALGORITHM_ID algId,\n\t\t\t\t\t      TPM_ENC_SCHEME encScheme,\n\t\t\t\t\t
      \     TPM_BOOL FIPS)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:726,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:727,1
    - Dst: TPM_TransportPublic_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:728,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:730,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tpm_transport_internal
    argTypes:
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 724
    functionDepth: 2
    functionLinenumber: 724
    functionLinenumberEnd: 734
    functionName: TPM_TransportInternal_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 1
    functionsReached:
    - TPM_Secret_Init
    - TPM_Nonce_Init
    - TPM_TransportPublic_Init
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_TransportInternal_Init(TPM_TRANSPORT_INTERNAL *tpm_transport_internal)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:752,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_transport.c:755,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_transport.c:759,1
    - Dst: TPM_TransportPublic_Load
      Src: /src/libtpms/src/tpm12/tpm_transport.c:763,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:767,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_transport.c:771,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_transport.c:775,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - tpm_transport_internal
    - stream
    - stream_size
    argTypes:
    - TPM_TRANSPORT_INTERNAL*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 746
    functionDepth: 4
    functionLinenumber: 746
    functionLinenumberEnd: 782
    functionName: TPM_TransportInternal_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 1
    functionsReached:
    - TPM_Secret_Load
    - TPM_Digest_Load
    - TPM_CheckTag
    - TPM_Nonce_Load
    - TPM_TransportPublic_Load
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportInternal_Load(TPM_TRANSPORT_INTERNAL *tpm_transport_internal,\n\t\t\t\t
      \     unsigned char **stream,\n\t\t\t\t      uint32_t *stream_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:795,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_transport.c:798,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:802,1
    - Dst: TPM_TransportPublic_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:806,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:810,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:814,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:818,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - sbuffer
    - tpm_transport_internal
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 821
    functionName: TPM_TransportInternal_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append16
    - TPM_Secret_Store
    - TPM_TransportPublic_Store
    - printf
    - TPM_Digest_Store
    - TPM_Nonce_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportInternal_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \      const TPM_TRANSPORT_INTERNAL *tpm_transport_internal)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:834,1
    - Dst: TPM_TransportPublic_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:836,1
    - Dst: TPM_TransportInternal_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_transport_internal
    argTypes:
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 832
    functionDepth: 3
    functionLinenumber: 832
    functionLinenumberEnd: 840
    functionName: TPM_TransportInternal_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 2
    functionsReached:
    - TPM_TransportPublic_Delete
    - printf
    - TPM_TransportInternal_Init
    linkageType: ''
    returnType: void
    signature: void TPM_TransportInternal_Delete(TPM_TRANSPORT_INTERNAL *tpm_transport_internal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:849,1
    - Dst: TPM_TransportPublic_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:850,1
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:853,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - dest_transport_internal
    - src_transport_internal
    argTypes:
    - TPM_TRANSPORT_INTERNAL*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 846
    functionDepth: 2
    functionLinenumber: 846
    functionLinenumberEnd: 856
    functionName: TPM_TransportInternal_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 1
    functionsReached:
    - TPM_Nonce_Copy
    - TPM_Secret_Copy
    - TPM_TransportPublic_Copy
    - TPM_Digest_Copy
    linkageType: ''
    returnType: void
    signature: "void TPM_TransportInternal_Copy(TPM_TRANSPORT_INTERNAL *dest_transport_internal,\n\t\t\t\tTPM_TRANSPORT_INTERNAL
      *src_transport_internal)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:881,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_transport.c:883,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_transport.c:884,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_transport.c:886,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_transport.c:888,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:889,1
    - Dst: TPM_HMAC_Check
      Src: /src/libtpms/src/tpm12/tpm_transport.c:892,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:903,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - inParamDigest
    - tpm_transport_internal
    - transNonceOdd
    - continueTransSession
    - transAuth
    argTypes:
    - TPM_DIGEST
    - TPM_TRANSPORT_INTERNAL*
    - TPM_NONCE
    - TPM_BOOL
    - TPM_AUTHDATA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 866
    functionDepth: 3
    functionLinenumber: 866
    functionLinenumberEnd: 908
    functionName: TPM_TransportInternal_Check
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_HMAC_Check
    - TPM_PrintFour
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportInternal_Check(TPM_DIGEST\t\tinParamDigest,\t/*
      digest of inputs\n\t\t\t\t\t\t\t\t\t\t   above line */\n\t\t\t\t       TPM_TRANSPORT_INTERNAL\t*tpm_transport_internal,\n\t\t\t\t
      \      TPM_NONCE\t\ttransNonceOdd,\t/* Nonce generated\n\t\t\t\t\t\t\t\t\t\t
      \  by system\n\t\t\t\t\t\t\t\t\t\t   associated with\n\t\t\t\t\t\t\t\t\t\t   transHandle
      */\n\t\t\t\t       TPM_BOOL\t\t\tcontinueTransSession,\n\t\t\t\t       TPM_AUTHDATA\t\ttransAuth)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:930,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_transport.c:933,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:937,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_transport.c:941,1
    - Dst: TPM_Authdata_Generate
      Src: /src/libtpms/src/tpm12/tpm_transport.c:945,1
    - Dst: TPM_Authdata_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:954,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 6
    argNames:
    - response
    - tpm_transport_internal
    - outParamDigest
    - transNonceOdd
    - continueTransSession
    - generateNonceEven
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_TRANSPORT_INTERNAL*
    - TPM_DIGEST
    - TPM_NONCE
    - TPM_BOOL
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 957
    functionName: TPM_TransportInternal_Set
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_Nonce_Store
    - TPM_Authdata_Store
    - TPM_Nonce_Generate
    - TPM_Authdata_Generate
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportInternal_Set(TPM_STORE_BUFFER\t\t*response,\n\t\t\t\t
      \    TPM_TRANSPORT_INTERNAL\t*tpm_transport_internal,\n\t\t\t\t     TPM_DIGEST\t\t\toutParamDigest,\n\t\t\t\t
      \    TPM_NONCE\t\t\ttransNonceOdd,\n\t\t\t\t     TPM_BOOL\t\t\tcontinueTransSession,\n\t\t\t\t
      \    TPM_BOOL\t\t\tgenerateNonceEven)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:972,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:973,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpm_transport_log_in
    argTypes:
    - TPM_TRANSPORT_LOG_IN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 976
    functionName: TPM_TransportLogIn_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_TransportLogIn_Init(TPM_TRANSPORT_LOG_IN *tpm_transport_log_in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:989,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_transport.c:992,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:996,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1000,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - tpm_transport_log_in
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_TRANSPORT_LOG_IN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 1003
    functionName: TPM_TransportLogIn_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Store
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportLogIn_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \   const TPM_TRANSPORT_LOG_IN *tpm_transport_log_in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1016,1
    - Dst: TPM_TransportLogIn_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_transport_log_in
    argTypes:
    - TPM_TRANSPORT_LOG_IN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1014
    functionDepth: 2
    functionLinenumber: 1014
    functionLinenumberEnd: 1021
    functionName: TPM_TransportLogIn_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_TransportLogIn_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_TransportLogIn_Delete(TPM_TRANSPORT_LOG_IN *tpm_transport_log_in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1036,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1037,1
    - Dst: TPM_TransportLogIn_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1040,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1044,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1045,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1046,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1047,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1051,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1053,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - tpm_digest
    - tpm_transport_log_in
    argTypes:
    - TPM_DIGEST
    - TPM_TRANSPORT_LOG_IN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1028
    functionDepth: 2
    functionLinenumber: 1028
    functionLinenumberEnd: 1055
    functionName: TPM_TransportLogIn_Extend
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1
    - TPM_Sbuffer_Get
    - TPM_Sbuffer_Delete
    - TPM_TransportLogIn_Store
    - TPM_PrintAll
    - printf
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportLogIn_Extend(TPM_DIGEST tpm_digest,\n\t\t\t\t
      \    TPM_TRANSPORT_LOG_IN *tpm_transport_log_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1070,1
    - Dst: TPM_CurrentTicks_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1071,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tpm_transport_log_out
    argTypes:
    - TPM_TRANSPORT_LOG_OUT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1075
    functionName: TPM_TransportLogOut_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_CurrentTicks_Init
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_TransportLogOut_Init(TPM_TRANSPORT_LOG_OUT *tpm_transport_log_out)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1088,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1091,1
    - Dst: TPM_CurrentTicks_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1095,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1099,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_transport_log_out
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_TRANSPORT_LOG_OUT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1106
    functionName: TPM_TransportLogOut_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append16
    - TPM_CurrentTicks_Store
    - printf
    - TPM_Digest_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportLogOut_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \   const TPM_TRANSPORT_LOG_OUT *tpm_transport_log_out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1119,1
    - Dst: TPM_TransportLogOut_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_transport_log_out
    argTypes:
    - TPM_TRANSPORT_LOG_OUT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1117
    functionDepth: 2
    functionLinenumber: 1117
    functionLinenumberEnd: 1124
    functionName: TPM_TransportLogOut_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_TransportLogOut_Init
    linkageType: ''
    returnType: void
    signature: void TPM_TransportLogOut_Delete(TPM_TRANSPORT_LOG_OUT *tpm_transport_log_out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1139,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1140,1
    - Dst: TPM_TransportLogOut_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1143,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1147,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1148,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1149,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1150,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1154,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - tpm_digest
    - tpm_transport_log_out
    argTypes:
    - TPM_DIGEST
    - TPM_TRANSPORT_LOG_OUT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1131
    functionDepth: 2
    functionLinenumber: 1131
    functionLinenumberEnd: 1158
    functionName: TPM_TransportLogOut_Extend
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1
    - TPM_Sbuffer_Get
    - TPM_Sbuffer_Delete
    - TPM_PrintAll
    - printf
    - TPM_TransportLogOut_Store
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportLogOut_Extend(TPM_DIGEST tpm_digest,\n\t\t\t\t
      \     TPM_TRANSPORT_LOG_OUT *tpm_transport_log_out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1173,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tpm_transport_auth
    argTypes:
    - TPM_TRANSPORT_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1176
    functionName: TPM_TransportAuth_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_Secret_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_TransportAuth_Init(TPM_TRANSPORT_AUTH *tpm_transport_auth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1194,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1197,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tpm_transport_auth
    - stream
    - stream_size
    argTypes:
    - TPM_TRANSPORT_AUTH*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1188
    functionDepth: 3
    functionLinenumber: 1188
    functionLinenumberEnd: 1204
    functionName: TPM_TransportAuth_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_Secret_Load
    - printf
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportAuth_Load(TPM_TRANSPORT_AUTH *tpm_transport_auth,\n\t\t\t\t
      \ unsigned char **stream,\n\t\t\t\t  uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1217,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1220,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sbuffer
    - tpm_transport_auth
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_TRANSPORT_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1212
    functionDepth: 1
    functionLinenumber: 1212
    functionLinenumberEnd: 1227
    functionName: TPM_TransportAuth_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Sbuffer_Append16
    - TPM_Secret_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportAuth_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \  const TPM_TRANSPORT_AUTH *tpm_transport_auth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1240,1
    - Dst: TPM_TransportAuth_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_transport_auth
    argTypes:
    - TPM_TRANSPORT_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1238
    functionDepth: 2
    functionLinenumber: 1238
    functionLinenumberEnd: 1245
    functionName: TPM_TransportAuth_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_TransportAuth_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_TransportAuth_Delete(TPM_TRANSPORT_AUTH *tpm_transport_auth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1261,1
    - Dst: TPM_RSAPrivateDecryptMalloc
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1264,1
    - Dst: TPM_TransportAuth_Load
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1275,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - tpm_transport_auth
    - secret
    - tpm_key
    argTypes:
    - TPM_TRANSPORT_AUTH*
    - TPM_SIZED_BUFFER*
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1251
    functionDepth: 4
    functionLinenumber: 1251
    functionLinenumberEnd: 1279
    functionName: TPM_TransportAuth_DecryptSecret
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_TransportAuth_Load
    - printf
    - free
    - TPM_RSAPrivateDecryptMalloc
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_TransportAuth_DecryptSecret(TPM_TRANSPORT_AUTH *tpm_transport_auth,\t/*
      result */\n\t\t\t\t\t   TPM_SIZED_BUFFER *secret,\t/* encrypted input */\n\t\t\t\t\t
      \  TPM_KEY *tpm_key)"
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1357,1
    - Dst: TPM_TransportPublic_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1358,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1359,1
    - Dst: TPM_CurrentTicks_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1360,1
    - Dst: TPM_TransportAuth_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1361,1
    - Dst: TPM_TransportLogIn_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1362,1
    - Dst: TPM_TransportLogOut_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1363,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1364,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1365,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1371,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1377,1
    - Dst: TPM_TransportPublic_Load
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1378,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1382,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1384,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1390,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1402,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1406,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1410,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1419,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1434,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1438,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1447,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1455,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1463,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1468,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1471,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1482,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1492,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1499,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1503,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1518,1
    - Dst: TPM_TransportAuth_DecryptSecret
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1531,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1539,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1545,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1549,1
    - Dst: TPM_TransportPublic_CheckEncScheme
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1556,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1565,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1573,1
    - Dst: TPM_TransportSessions_GetNewHandle
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1575,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1582,1
    - Dst: TPM_TransportPublic_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1584,1
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1586,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1588,1
    - Dst: TPM_CurrentTicks_Update
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1591,1
    - Dst: TPM_CurrentTicks_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1595,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1601,1
    - Dst: TPM_TransportPublic_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1607,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1611,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1613,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1614,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1615,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1626,1
    - Dst: TPM_TransportLogIn_Extend
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1627,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1636,1
    - Dst: TPM_CurrentTicks_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1637,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1641,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1642,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1643,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1644,1
    - Dst: TPM_CurrentTicks_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1657,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1659,1
    - Dst: TPM_TransportLogOut_Extend
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1660,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1668,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1683,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1685,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1691,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1697,1
    - Dst: TPM_CurrentTicks_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1702,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1706,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1712,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1723,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1732,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1739,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1746,1
    - Dst: TPM_TransportSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1751,1
    - Dst: TPM_TransportPublic_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1758,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1759,1
    - Dst: TPM_TransportAuth_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1760,1
    - Dst: TPM_TransportLogIn_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1761,1
    - Dst: TPM_TransportLogOut_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1762,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1763,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1764,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 213
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1296
    functionDepth: 5
    functionLinenumber: 1296
    functionLinenumberEnd: 1766
    functionName: TPM_Process_EstablishTransport
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_TransportLogIn_Init
    - TPM_TransportAuth_Init
    - TPM_TransportAuth_Delete
    - TPM_Sbuffer_Get
    - TPM_Secret_Copy
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_TransportSessions_GetNewHandle
    - TPM_Nonce_Generate
    - TPM_TransportLogIn_Extend
    - TPM_AuthSessions_TerminateHandle
    - TPM_TransportLogOut_Delete
    - TPM_TransportAuth_DecryptSecret
    - TPM_CurrentTicks_Copy
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_Nonce_Store
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_SHA1
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CurrentTicks_Init
    - TPM_Authdata_Check
    - TPM_TransportPublic_Store
    - htonl
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_TransportLogIn_Delete
    - TPM_Nonce_Copy
    - TPM_SizedBuffer_Init
    - TPM_TransportSessions_TerminateHandle
    - TPM_TransportLogOut_Init
    - TPM_CurrentTicks_Update
    - TPM_TransportPublic_Delete
    - TPM_SizedBuffer_Delete
    - TPM_PrintFour
    - TPM_TransportPublic_Copy
    - TPM_TransportLogOut_Extend
    - printf
    - TPM_CheckRequestTag10
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_TransportPublic_CheckEncScheme
    - TPM_Sbuffer_Delete
    - TPM_AuthParams_Get
    - TPM_TransportPublic_Load
    - TPM_CurrentTicks_Store
    - TPM_CheckState
    - TPM_TransportPublic_Init
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_Digest_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_EstablishTransport(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \ TPM_STORE_BUFFER *response,\n\t\t\t\t\t  TPM_TAG tag,\n\t\t\t\t\t  uint32_t
      paramSize,\n\t\t\t\t\t  TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t  unsigned char
      *command,\n\t\t\t\t\t  TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 77
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1867,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1869,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1870,1
    - Dst: TPM_TransportLogIn_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1873,1
    - Dst: TPM_TransportLogOut_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1874,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1875,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1876,1
    - Dst: TPM_TransportInternal_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1878,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1887,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1890,1
    - Dst: TPM_OrdinalAuditStatus_GetAuditStatus
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1895,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1901,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1905,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1909,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1917,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1921,1
    - Dst: TPM_TransportSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1937,1
    - Dst: TPM_TransportSessions_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1945,1
    - Dst: TPM_TransportInternal_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1952,1
    - Dst: TPM_OrdinalTable_ParseWrappedCmd
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1963,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1972,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1979,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1987,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:1995,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2001,1
    - Dst: TPM_Transport_CryptMgf1
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2015,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2025,1
    - Dst: TPM_TransportPublic_CheckEncScheme
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2032,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2044,1
    - Dst: TPM_Transport_CryptSymmetric
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2059,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2079,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2081,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2088,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2093,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2097,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2100,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2113,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2114,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2115,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2116,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2124,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2125,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2126,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2127,1
    - Dst: TPM_TransportInternal_Check
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2138,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2154,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2162,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2166,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2176,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2180,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2182,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2195,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2201,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2204,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2211,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2220,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2224,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2226,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2238,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2244,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2252,1
    - Dst: TPM_TransportLogIn_Extend
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2253,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2267,1
    - Dst: TPM_Process_Wrapped
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2268,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2273,1
    - Dst: TPM_CurrentTicks_Update
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2278,1
    - Dst: TPM_Uint64_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2281,1
    - Dst: TPM_Uint64_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2284,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2291,1
    - Dst: TPM_OrdinalTable_ParseWrappedRsp
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2293,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2304,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2305,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2309,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2318,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2323,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2324,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2325,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2326,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2327,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2345,1
    - Dst: TPM_CurrentTicks_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2347,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2352,1
    - Dst: TPM_TransportLogOut_Extend
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2353,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2359,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2368,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2374,1
    - Dst: TPM_Transport_CryptMgf1
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2388,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2398,1
    - Dst: TPM_TransportPublic_CheckEncScheme
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2411,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2421,1
    - Dst: TPM_Transport_CryptSymmetric
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2436,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2452,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2454,1
    - Dst: TPM_TransportInternal_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2472,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2480,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2482,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2488,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2492,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2497,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2501,1
    - Dst: TPM_TransportInternal_Set
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2506,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2515,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2522,1
    - Dst: TPM_TransportSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2529,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2536,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2537,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2538,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2539,1
    - Dst: TPM_TransportLogIn_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2540,1
    - Dst: TPM_TransportLogOut_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2541,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2542,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2543,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2544,1
    - Dst: TPM_TransportInternal_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2545,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2546,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 292
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 1789
    functionDepth: 4
    functionLinenumber: 1789
    functionLinenumberEnd: 2548
    functionName: TPM_Process_ExecuteTransport
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_TransportLogIn_Init
    - TPM_SHA1_GenerateStructure
    - TPM_Process_Wrapped
    - TPM_CheckRequestTag1
    - TPM_Sbuffer_Get
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_TransportLogIn_Extend
    - TPM_Nonce_Generate
    - TPM_CurrentTicks_Copy
    - TPM_Sbuffer_Init
    - TPM_Transport_CryptMgf1
    - TPM_Sbuffer_Append
    - TPM_Sbuffer_Append32
    - TPM_SHA1
    - TPM_OrdinalTable_ParseWrappedCmd
    - TPM_Sbuffer_StoreInitialResponse
    - htonl
    - TPM_TransportInternal_Init
    - TPM_Digest_Copy
    - TPM_TransportLogIn_Delete
    - TPM_SizedBuffer_Init
    - TPM_TransportSessions_TerminateHandle
    - TPM_TransportLogOut_Init
    - memcpy
    - TPM_CurrentTicks_Update
    - TPM_SizedBuffer_Delete
    - TPM_PrintFour
    - TPM_TransportInternal_Copy
    - TPM_Malloc
    - TPM_TransportLogOut_Extend
    - TPM_TransportInternal_Delete
    - printf
    - TPM_TransportSessions_GetEntry
    - TPM_OrdinalTable_ParseWrappedRsp
    - TPM_ProcessAudit
    - TPM_TransportPublic_CheckEncScheme
    - TPM_KeyHandleEntries_GetKey
    - TPM_TransportInternal_Check
    - TPM_MGF1_GenerateArray
    - TPM_Transport_CryptSymmetric
    - TPM_Sbuffer_Delete
    - TPM_OrdinalAuditStatus_GetAuditStatus
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_TransportInternal_Set
    - TPM_Uint64_Store
    - free
    - TPM_TransportLogOut_Delete
    - TPM_Uint64_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ExecuteTransport(tpm_state_t *tpm_state,\n\t\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\t\tTPM_TAG tag,\n\t\t\t\t\tuint32_t paramSize,\n\t\t\t\t\tTPM_COMMAND_CODE
      ordinal,\n\t\t\t\t\tunsigned char *command,\n\t\t\t\t\tTPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2618,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2619,1
    - Dst: TPM_TransportLogOut_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2620,1
    - Dst: TPM_SignInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2621,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2628,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2634,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2635,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2641,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2642,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2654,1
    - Dst: TPM_CheckRequestTag21
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2658,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2663,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2669,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2673,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2681,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2685,1
    - Dst: TPM_TransportSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2702,1
    - Dst: TPM_TransportSessions_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2709,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2715,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2725,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2732,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2738,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2742,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2757,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2764,1
    - Dst: TPM_TransportInternal_Check
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2777,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2788,1
    - Dst: TPM_CurrentTicks_Update
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2797,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2803,1
    - Dst: TPM_CurrentTicks_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2805,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2809,1
    - Dst: TPM_TransportLogOut_Extend
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2810,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2817,1
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2819,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2821,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2827,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2829,1
    - Dst: TPM_RSASignToSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2832,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2849,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2851,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2859,1
    - Dst: TPM_CurrentTicks_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2864,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2868,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2874,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2885,1
    - Dst: TPM_TransportInternal_Set
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2894,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2903,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2910,1
    - Dst: TPM_TransportSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2917,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2926,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2931,1
    - Dst: TPM_TransportLogOut_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2932,1
    - Dst: TPM_SignInfo_Delete
      Src: /src/libtpms/src/tpm12/tpm_transport.c:2933,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 156
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2935
      start: 2567
    functionDepth: 4
    functionLinenumber: 2567
    functionLinenumberEnd: 2935
    functionName: TPM_Process_ReleaseTransportSigned
    functionSourceFile: /src/libtpms/src/tpm12/tpm_transport.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_SizedBuffer_Store
    - TPM_SizedBuffer_Set
    - TPM_PrintAll
    - TPM_CurrentTicks_Copy
    - TPM_AuthSessions_GetData
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_Digest_Copy
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_Nonce_Copy
    - TPM_SignInfo_Delete
    - TPM_SizedBuffer_Init
    - TPM_TransportSessions_TerminateHandle
    - TPM_TransportLogOut_Init
    - TPM_CheckRequestTag21
    - TPM_CurrentTicks_Update
    - memcpy
    - TPM_PrintFour
    - TPM_SizedBuffer_Delete
    - TPM_TransportLogOut_Extend
    - printf
    - TPM_TransportSessions_GetEntry
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_RSASignToSizedBuffer
    - TPM_TransportInternal_Check
    - TPM_Nonce_Load
    - TPM_AuthParams_Get
    - TPM_CurrentTicks_Store
    - TPM_CheckState
    - TPM_Load32
    - TPM_TransportInternal_Set
    - TPM_SignInfo_Init
    - TPM_TransportLogOut_Delete
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ReleaseTransportSigned(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \     TPM_STORE_BUFFER *response,\n\t\t\t\t\t      TPM_TAG tag,\n\t\t\t\t\t
      \     uint32_t paramSize,\n\t\t\t\t\t      TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t
      \     unsigned char *command,\n\t\t\t\t\t      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:91,1
    - Dst: TPM_StructVer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:92,1
    - Dst: TPM_KeyParms_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:96,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:97,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:98,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - tpm_key
    argTypes:
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 105
    functionName: TPM_Key_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - TPM_KeyParms_Init
    - TPM_SizedBuffer_Init
    - printf
    - TPM_StructVer_Init
    linkageType: ''
    returnType: void
    signature: void TPM_Key_Init(TPM_KEY *tpm_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpm_key
    argTypes:
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: TPM_Key_InitTag12
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_Key_InitTag12(TPM_KEY *tpm_key)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:152,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:153,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:157,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:166,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:173,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:179,1
    - Dst: TPM_Key_InitTag12
      Src: /src/libtpms/src/tpm12/tpm_key.c:181,1
    - Dst: TPM_KeyParms_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:186,1
    - Dst: TPM_PCRInfo_CreateFromInfo
      Src: /src/libtpms/src/tpm12/tpm_key.c:194,1
    - Dst: TPM_PCRInfoLong_CreateFromInfoLong
      Src: /src/libtpms/src/tpm12/tpm_key.c:199,1
    - Dst: TPM_PCRInfo_SetDigestAtCreation
      Src: /src/libtpms/src/tpm12/tpm_key.c:206,1
    - Dst: TPM_Locality_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:211,1
    - Dst: TPM_PCRInfoLong_SetDigestAtCreation
      Src: /src/libtpms/src/tpm12/tpm_key.c:215,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:221,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:227,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:234,1
    - Dst: TPM_StoreAsymkey_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:242,1
    - Dst: TPM_SizedBuffer_SetFromStore
      Src: /src/libtpms/src/tpm12/tpm_key.c:245,1
    - Dst: TPM_Key_GeneratePubDataDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:255,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:257,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 86
    argCount: 15
    argNames:
    - tpm_key
    - tpm_state
    - parent_key
    - tpm_pcrs
    - ver
    - keyUsage
    - keyFlags
    - authDataUsage
    - tpm_key_parms
    - tpm_pcr_info
    - tpm_pcr_info_long
    - keyLength
    - publicKey
    - tpm_store_asymkey
    - tpm_migrate_asymkey
    argTypes:
    - TPM_KEY*
    - tpm_state_t*
    - TPM_KEY*
    - TPM_DIGEST*
    - int
    - TPM_KEY_USAGE
    - TPM_KEY_FLAGS
    - TPM_AUTH_DATA_USAGE
    - TPM_KEY_PARMS*
    - TPM_PCR_INFO*
    - TPM_PCR_INFO_LONG*
    - uint32_t
    - BYTE*
    - TPM_STORE_ASYMKEY*
    - TPM_MIGRATE_ASYMKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 259
    functionName: TPM_Key_Set
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_Key_Init
    - TPM_PCRInfo_SetDigestAtCreation
    - TPM_Key_InitTag12
    - TPM_PCRInfoLong_CreateFromInfoLong
    - TPM_Key_GeneratePubDataDigest
    - TPM_Sbuffer_Delete
    - TPM_KeyParms_Copy
    - TPM_PCRInfo_CreateFromInfo
    - printf
    - TPM_PCRInfoLong_SetDigestAtCreation
    - TPM_Locality_Set
    - TPM_SizedBuffer_Set
    - TPM_StoreAsymkey_Store
    - TPM_SizedBuffer_SetFromStore
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_Set(TPM_KEY *tpm_key,\t\t/* output created key
      */\n\t\t       tpm_state_t *tpm_state,\n\t\t       TPM_KEY *parent_key,\t\t/*
      NULL for root keys */\n\t\t       TPM_DIGEST *tpm_pcrs,\t\t/* points to the
      TPM PCR array */\n\t\t       int ver,\t\t\t\t/* TPM_KEY or TPM_KEY12 */\n\t\t
      \      TPM_KEY_USAGE keyUsage,\t\t\t\t/* input */\n\t\t       TPM_KEY_FLAGS
      keyFlags,\t\t\t\t/* input */\n\t\t       TPM_AUTH_DATA_USAGE authDataUsage,\t\t/*
      input */\n\t\t       TPM_KEY_PARMS *tpm_key_parms,\t\t\t/* input */\n\t\t       TPM_PCR_INFO
      *tpm_pcr_info,\t\t\t/* must copy */\n\t\t       TPM_PCR_INFO_LONG *tpm_pcr_info_long,\t\t/*
      must copy */\n\t\t       uint32_t keyLength,\t\t/* public key length in bytes
      */\n\t\t       BYTE* publicKey,\t\t\t/* public key byte array */\n\t\t       TPM_STORE_ASYMKEY
      *tpm_store_asymkey,\t /* cache TPM_STORE_ASYMKEY */\n\t\t       TPM_MIGRATE_ASYMKEY
      *tpm_migrate_asymkey)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TPM_StructVer_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:273,1
    - Dst: TPM_KeyParms_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:278,1
    - Dst: TPM_SizedBuffer_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:281,1
    - Dst: TPM_PCRInfo_CreateFromInfo
      Src: /src/libtpms/src/tpm12/tpm_key.c:286,1
    - Dst: TPM_PCRInfoLong_CreateFromInfoLong
      Src: /src/libtpms/src/tpm12/tpm_key.c:290,1
    - Dst: TPM_SizedBuffer_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:296,1
    - Dst: TPM_SizedBuffer_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:301,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - tpm_key_dest
    - tpm_key_src
    - copyEncData
    argTypes:
    - TPM_KEY*
    - TPM_KEY*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 266
    functionDepth: 4
    functionLinenumber: 266
    functionLinenumberEnd: 305
    functionName: TPM_Key_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_StructVer_Copy
    - TPM_PCRInfoLong_CreateFromInfoLong
    - TPM_SizedBuffer_Copy
    - TPM_KeyParms_Copy
    - TPM_PCRInfo_CreateFromInfo
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_Copy(TPM_KEY *tpm_key_dest,\n\t\t\tTPM_KEY *tpm_key_src,\n\t\t\tTPM_BOOL
      copyEncData)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:325,1
    - Dst: TPM_Key_LoadPubData
      Src: /src/libtpms/src/tpm12/tpm_key.c:328,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tpm_key
    - stream
    - stream_size
    argTypes:
    - TPM_KEY*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 319
    functionDepth: 3
    functionLinenumber: 319
    functionLinenumberEnd: 335
    functionName: TPM_Key_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - TPM_Key_LoadPubData
    - printf
    - TPM_SizedBuffer_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_Load(TPM_KEY *tpm_key,\t/* result */\n\t\t\tunsigned
      char **stream, /* pointer to next parameter */\n\t\t\tuint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:354,1
    - Dst: TPM_Key_LoadPubData
      Src: /src/libtpms/src/tpm12/tpm_key.c:357,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:361,1
    - Dst: TPM_Key_LoadStoreAsymKey
      Src: /src/libtpms/src/tpm12/tpm_key.c:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - tpm_key
    - isEK
    - stream
    - stream_size
    argTypes:
    - TPM_KEY*
    - TPM_BOOL
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 368
    functionName: TPM_Key_LoadClear
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_Key_LoadStoreAsymKey
    - TPM_Key_LoadPubData
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_LoadClear(TPM_KEY *tpm_key,\t\t/* result */\n\t\t\t
      \    TPM_BOOL isEK,\t\t/* key being loaded is EK */\n\t\t\t     unsigned char
      **stream,\t/* pointer to next parameter */\n\t\t\t     uint32_t *stream_size)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:390,1
    - Dst: TPM_StructVer_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:397,1
    - Dst: TPM_StructVer_CheckVer
      Src: /src/libtpms/src/tpm12/tpm_key.c:401,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_key.c:408,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_key.c:412,1
    - Dst: TPM_Key_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_key.c:415,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_key.c:421,1
    - Dst: TPM_KeyFlags_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:425,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_key.c:429,1
    - Dst: TPM_KeyParms_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:433,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:437,1
    - Dst: TPM_PCRInfo_CreateFromBuffer
      Src: /src/libtpms/src/tpm12/tpm_key.c:444,1
    - Dst: TPM_PCRInfoLong_CreateFromBuffer
      Src: /src/libtpms/src/tpm12/tpm_key.c:448,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:454,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 4
    argNames:
    - tpm_key
    - isEK
    - stream
    - stream_size
    argTypes:
    - TPM_KEY*
    - TPM_BOOL
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 383
    functionDepth: 6
    functionLinenumber: 383
    functionLinenumberEnd: 457
    functionName: TPM_Key_LoadPubData
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - TPM_Load16
    - TPM_Key_CheckTag
    - TPM_StructVer_Load
    - TPM_KeyParms_Load
    - TPM_PCRInfoLong_CreateFromBuffer
    - printf
    - TPM_SizedBuffer_Load
    - TPM_StructVer_CheckVer
    - TPM_KeyFlags_Load
    - TPM_PCRInfo_CreateFromBuffer
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_LoadPubData(TPM_KEY *tpm_key,\t/* result */\n\t\t\t
      \      TPM_BOOL isEK,\t\t/* key being loaded is EK */\n\t\t\t       unsigned
      char **stream,\t/* pointer to next parameter */\n\t\t\t       uint32_t *stream_size)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:471,1
    - Dst: TPM_StructVer_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:476,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_key.c:481,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_key.c:485,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_key.c:491,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_key.c:495,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_key.c:499,1
    - Dst: TPM_KeyParms_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:503,1
    - Dst: TPM_SizedBuffer_SetStructure
      Src: /src/libtpms/src/tpm12/tpm_key.c:509,1
    - Dst: TPM_SizedBuffer_SetStructure
      Src: /src/libtpms/src/tpm12/tpm_key.c:514,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:521,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:525,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - sbuffer
    - isEK
    - tpm_key
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_BOOL
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 465
    functionDepth: 5
    functionLinenumber: 465
    functionLinenumberEnd: 528
    functionName: TPM_Key_StorePubData
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_SizedBuffer_SetStructure
    - TPM_Sbuffer_Append16
    - TPM_StructVer_Store
    - TPM_SizedBuffer_Store
    - TPM_KeyParms_Store
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_StorePubData(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\tTPM_BOOL
      isEK,\n\t\t\t\tTPM_KEY *tpm_key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:540,1
    - Dst: TPM_Key_StorePubData
      Src: /src/libtpms/src/tpm12/tpm_key.c:543,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sbuffer
    - tpm_key
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 535
    functionDepth: 6
    functionLinenumber: 535
    functionLinenumberEnd: 550
    functionName: TPM_Key_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_Key_StorePubData
    - printf
    - TPM_SizedBuffer_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t TPM_KEY
      *tpm_key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:570,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:571,1
    - Dst: TPM_Key_StorePubData
      Src: /src/libtpms/src/tpm12/tpm_key.c:574,1
    - Dst: TPM_StoreAsymkey_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:582,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_key.c:585,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_key.c:588,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_key.c:591,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_key.c:597,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:600,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - sbuffer
    - isEK
    - tpm_key
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_BOOL
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 561
    functionDepth: 6
    functionLinenumber: 561
    functionLinenumberEnd: 602
    functionName: TPM_Key_StoreClear
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Get
    - TPM_Sbuffer_Append
    - TPM_Sbuffer_Delete
    - TPM_Key_StorePubData
    - printf
    - TPM_StoreAsymkey_Store
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_StoreClear(TPM_STORE_BUFFER *sbuffer,\n\t\t\t      TPM_BOOL
      isEK,\t\t/* key being stored is EK */\n\t\t\t      TPM_KEY *tpm_key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:620,1
    - Dst: TPM_KeyParms_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:623,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:627,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_key.c:631,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - pubkeyStream
    - pubkeyStreamBuffer
    - pubkeyStreamLength
    - tpm_key
    argTypes:
    - TPM_STORE_BUFFER*
    - unsigned char**
    - uint32_t*
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 636
    functionName: TPM_Key_StorePubkey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_KeyParms_Store
    - TPM_Sbuffer_Get
    - printf
    - TPM_SizedBuffer_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_StorePubkey(TPM_STORE_BUFFER *pubkeyStream,\t\t\t/*
      output */\n\t\t\t       const unsigned char **pubkeyStreamBuffer,\t/* output
      */\n\t\t\t       uint32_t *pubkeyStreamLength,\t\t\t/* output */\n\t\t\t       TPM_KEY
      *tpm_key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:652,1
    - Dst: TPM_KeyParms_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:653,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:655,1
    - Dst: TPM_PCRInfo_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:657,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:658,1
    - Dst: TPM_PCRInfoLong_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:659,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:660,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:662,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:663,1
    - Dst: TPM_StoreAsymkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:664,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:665,1
    - Dst: TPM_MigrateAsymkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:666,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:667,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - tpm_key
    argTypes:
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 649
    functionDepth: 3
    functionLinenumber: 649
    functionLinenumberEnd: 671
    functionName: TPM_Key_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - TPM_Key_Init
    - TPM_MigrateAsymkey_Delete
    - TPM_StoreAsymkey_Delete
    - TPM_SizedBuffer_Delete
    - TPM_PCRInfoLong_Delete
    - TPM_KeyParms_Delete
    - printf
    - TPM_PCRInfo_Delete
    - free
    linkageType: ''
    returnType: void
    signature: void TPM_Key_Delete(TPM_KEY *tpm_key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_StructVer_CheckVer
      Src: /src/libtpms/src/tpm12/tpm_key.c:684,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:686,1
    - Dst: TPM_Key_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_key.c:692,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:694,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ver
    - tpm_key
    argTypes:
    - int*
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 704
    functionName: TPM_Key_CheckStruct
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_Key_CheckTag
    - printf
    - TPM_StructVer_CheckVer
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Key_CheckStruct(int *ver, TPM_KEY *tpm_key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:715,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:722,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - tpm_key12
    argTypes:
    - TPM_KEY12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 728
    functionName: TPM_Key_CheckTag
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Key_CheckTag(TPM_KEY12 *tpm_key12)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:746,1
    - Dst: TPM_Key_CheckStruct
      Src: /src/libtpms/src/tpm12/tpm_key.c:749,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:755,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:761,1
    - Dst: TPM_KeyParms_CheckProperties
      Src: /src/libtpms/src/tpm12/tpm_key.c:762,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - ver
    - tpm_key
    - keyLength
    - FIPS
    argTypes:
    - int*
    - TPM_KEY*
    - uint32_t
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 739
    functionDepth: 2
    functionLinenumber: 739
    functionLinenumberEnd: 768
    functionName: TPM_Key_CheckProperties
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_Key_CheckStruct
    - printf
    - TPM_KeyParms_CheckProperties
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_CheckProperties(int *ver,\n\t\t\t\t   TPM_KEY *tpm_key,\n\t\t\t\t
      \  uint32_t keyLength,\t/* in bits */\n\t\t\t\t   TPM_BOOL FIPS)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:786,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:789,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:796,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_key.c:802,1
    - Dst: TPM_StoreAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:806,1
    - Dst: TPM_StoreAsymkey_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:807,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:810,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - tpm_key
    - isEK
    - stream
    - stream_size
    argTypes:
    - TPM_KEY*
    - TPM_BOOL
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 777
    functionDepth: 3
    functionLinenumber: 777
    functionLinenumberEnd: 814
    functionName: TPM_Key_LoadStoreAsymKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_StoreAsymkey_Init
    - TPM_PrintFour
    - TPM_StoreAsymkey_Load
    - TPM_Malloc
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_LoadStoreAsymKey(TPM_KEY *tpm_key,\n\t\t\t\t    TPM_BOOL
      isEK,\n\t\t\t\t    unsigned char **stream,\t/* decrypted encData (clear text)
      */\n\t\t\t\t    uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:824,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:829,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tpm_store_asymkey
    - tpm_key
    argTypes:
    - TPM_STORE_ASYMKEY**
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 834
    functionName: TPM_Key_GetStoreAsymkey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_GetStoreAsymkey(TPM_STORE_ASYMKEY **tpm_store_asymkey,\n\t\t\t\t
      \  TPM_KEY *tpm_key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:844,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - tpm_migrate_asymkey
    - tpm_key
    argTypes:
    - TPM_MIGRATE_ASYMKEY**
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 854
    functionName: TPM_Key_GetMigrateAsymkey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_GetMigrateAsymkey(TPM_MIGRATE_ASYMKEY **tpm_migrate_asymkey,\n\t\t\t\t
      \    TPM_KEY *tpm_key)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:867,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:872,1
    - Dst: TPM_Key_GetStoreAsymkey
      Src: /src/libtpms/src/tpm12/tpm_key.c:878,1
    - Dst: TPM_Key_GetMigrateAsymkey
      Src: /src/libtpms/src/tpm12/tpm_key.c:886,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:894,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:900,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - usageAuth
    - tpm_key
    argTypes:
    - TPM_SECRET**
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 860
    functionDepth: 3
    functionLinenumber: 860
    functionLinenumberEnd: 903
    functionName: TPM_Key_GetUsageAuth
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 9
    functionsReached:
    - TPM_PrintFour
    - TPM_Key_GetMigrateAsymkey
    - printf
    - TPM_Key_GetStoreAsymkey
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_GetUsageAuth(TPM_SECRET **usageAuth,\n\t\t\t\tTPM_KEY
      *tpm_key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - nbytes
    - narr
    - tpm_key
    argTypes:
    - uint32_t*
    - unsigned char**
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 920
    functionName: TPM_Key_GetPublicKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_GetPublicKey(uint32_t\t*nbytes,\n\t\t\t\tunsigned
      char\t**narr,\n\t\t\t\tTPM_KEY\t\t*tpm_key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:933,1
    - Dst: TPM_Key_GetStoreAsymkey
      Src: /src/libtpms/src/tpm12/tpm_key.c:935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pbytes
    - parr
    - tpm_key
    argTypes:
    - uint32_t*
    - unsigned char**
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 942
    functionName: TPM_Key_GetPrimeFactorP
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Key_GetStoreAsymkey
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_GetPrimeFactorP(uint32_t \t\t*pbytes,\n\t\t\t\t
      \  unsigned char\t**parr,\n\t\t\t\t   TPM_KEY\t\t*tpm_key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:954,1
    - Dst: TPM_Key_GetStoreAsymkey
      Src: /src/libtpms/src/tpm12/tpm_key.c:956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - dbytes
    - darr
    - tpm_key
    argTypes:
    - uint32_t*
    - unsigned char**
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 947
    functionDepth: 2
    functionLinenumber: 947
    functionLinenumberEnd: 963
    functionName: TPM_Key_GetPrivateKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Key_GetStoreAsymkey
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_GetPrivateKey(uint32_t\t*dbytes,\n\t\t\t\t unsigned
      char\t**darr,\n\t\t\t\t TPM_KEY\t*tpm_key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:974,1
    - Dst: TPM_KeyParms_GetExponent
      Src: /src/libtpms/src/tpm12/tpm_key.c:976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ebytes
    - earr
    - tpm_key
    argTypes:
    - uint32_t*
    - unsigned char**
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 979
    functionName: TPM_Key_GetExponent
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_KeyParms_GetExponent
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_GetExponent(uint32_t\t\t*ebytes,\n\t\t\t       unsigned
      char\t**earr,\n\t\t\t       TPM_KEY\t\t*tpm_key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:992,1
    - Dst: TPM_PCRInfo_GetPCRUsage
      Src: /src/libtpms/src/tpm12/tpm_key.c:994,1
    - Dst: TPM_PCRInfoLong_GetPCRUsage
      Src: /src/libtpms/src/tpm12/tpm_key.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pcrUsage
    - tpm_key
    - start_index
    argTypes:
    - TPM_BOOL*
    - TPM_KEY*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 986
    functionDepth: 2
    functionLinenumber: 986
    functionLinenumberEnd: 1000
    functionName: TPM_Key_GetPCRUsage
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_PCRInfoLong_GetPCRUsage
    - TPM_PCRInfo_GetPCRUsage
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_GetPCRUsage(TPM_BOOL *pcrUsage,\n\t\t\t       TPM_KEY
      *tpm_key,\n\t\t\t       size_t start_index)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1011,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - localityAtRelease
    - tpm_key
    argTypes:
    - TPM_LOCALITY_SELECTION*
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1025
    functionName: TPM_Key_GetLocalityAtRelease
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_GetLocalityAtRelease(TPM_LOCALITY_SELECTION *localityAtRelease,\n\t\t\t\t\tTPM_KEY
      *tpm_key)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1070,1
    - Dst: TPM_KeyParms_GetRSAKeyParms
      Src: /src/libtpms/src/tpm12/tpm_key.c:1073,1
    - Dst: TPM_RSAKeyParms_GetExponent
      Src: /src/libtpms/src/tpm12/tpm_key.c:1077,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_key.c:1082,1
    - Dst: TPM_StoreAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:1086,1
    - Dst: TPM_RSAGenerateKeyPair
      Src: /src/libtpms/src/tpm12/tpm_key.c:1090,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:1100,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_key.c:1101,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:1102,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:1103,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:1104,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:1106,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:1111,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:1116,1
    - Dst: TPM_Key_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:1121,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:1138,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:1139,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:1140,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:1141,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 11
    argNames:
    - tpm_key
    - tpm_state
    - parent_key
    - tpm_pcrs
    - ver
    - keyUsage
    - keyFlags
    - authDataUsage
    - tpm_key_parms
    - tpm_pcr_info
    - tpm_pcr_info_long
    argTypes:
    - TPM_KEY*
    - tpm_state_t*
    - TPM_KEY*
    - TPM_DIGEST*
    - int
    - TPM_KEY_USAGE
    - TPM_KEY_FLAGS
    - TPM_AUTH_DATA_USAGE
    - TPM_KEY_PARMS*
    - TPM_PCR_INFO*
    - TPM_PCR_INFO_LONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1047
    functionDepth: 5
    functionLinenumber: 1047
    functionLinenumberEnd: 1143
    functionName: TPM_Key_GenerateRSA
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_KeyParms_GetRSAKeyParms
    - TPM_StoreAsymkey_Init
    - TPM_PrintFour
    - TPM_Malloc
    - printf
    - TPM_PrintAll
    - TPM_SizedBuffer_Set
    - TPM_Key_Set
    - TPM_RSAKeyParms_GetExponent
    - TPM_RSAGenerateKeyPair
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_GenerateRSA(TPM_KEY *tpm_key,\t\t/* output created
      key */\n\t\t\t       tpm_state_t *tpm_state,\n\t\t\t       TPM_KEY *parent_key,\t\t/*
      NULL for root keys */\n\t\t\t       TPM_DIGEST *tpm_pcrs,\t\t/* PCR array from
      state */\n\t\t\t       int ver,\t\t\t\t/* TPM_KEY or TPM_KEY12 */\n\t\t\t       TPM_KEY_USAGE
      keyUsage,\t\t\t/* input */\n\t\t\t       TPM_KEY_FLAGS keyFlags,\t\t\t/* input
      */\n\t\t\t       TPM_AUTH_DATA_USAGE authDataUsage,\t/* input */\n\t\t\t       TPM_KEY_PARMS
      *tpm_key_parms,\t\t/* input */\n\t\t\t       TPM_PCR_INFO *tpm_pcr_info,\t\t/*
      input */\n\t\t\t       TPM_PCR_INFO_LONG *tpm_pcr_info_long)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1157,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:1158,1
    - Dst: TPM_Key_StorePubkey
      Src: /src/libtpms/src/tpm12/tpm_key.c:1161,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_key.c:1167,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:1171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - tpm_digest
    - tpm_key
    argTypes:
    - TPM_DIGEST
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1174
    functionName: TPM_Key_GeneratePubkeyDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - TPM_SHA1
    - TPM_Sbuffer_Delete
    - printf
    - TPM_Key_StorePubkey
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_GeneratePubkeyDigest(TPM_DIGEST tpm_digest,\n\t\t\t\t\tTPM_KEY
      *tpm_key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Key_GeneratePubkeyDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:1188,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_key.c:1191,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_key.c:1195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - tpm_key
    - tpm_pubkey
    argTypes:
    - TPM_KEY*
    - TPM_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1180
    functionDepth: 4
    functionLinenumber: 1180
    functionLinenumberEnd: 1198
    functionName: TPM_Key_ComparePubkey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_Key_GeneratePubkeyDigest
    - TPM_Digest_Compare
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_ComparePubkey(TPM_KEY *tpm_key,\n\t\t\t\t TPM_PUBKEY
      *tpm_pubkey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1211,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:1212,1
    - Dst: TPM_Key_StorePubData
      Src: /src/libtpms/src/tpm12/tpm_key.c:1215,1
    - Dst: TPM_Key_GetStoreAsymkey
      Src: /src/libtpms/src/tpm12/tpm_key.c:1219,1
    - Dst: TPM_SHA1Sbuffer
      Src: /src/libtpms/src/tpm12/tpm_key.c:1223,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:1225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - tpm_key
    argTypes:
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1205
    functionDepth: 6
    functionLinenumber: 1205
    functionLinenumberEnd: 1227
    functionName: TPM_Key_GeneratePubDataDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Delete
    - TPM_Key_GetStoreAsymkey
    - TPM_Key_StorePubData
    - printf
    - TPM_Sbuffer_Init
    - TPM_SHA1Sbuffer
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Key_GeneratePubDataDigest(TPM_KEY *tpm_key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1242,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:1243,1
    - Dst: TPM_Key_StorePubData
      Src: /src/libtpms/src/tpm12/tpm_key.c:1246,1
    - Dst: TPM_Key_GetStoreAsymkey
      Src: /src/libtpms/src/tpm12/tpm_key.c:1250,1
    - Dst: TPM_SHA1Sbuffer
      Src: /src/libtpms/src/tpm12/tpm_key.c:1253,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_key.c:1256,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:1258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - tpm_key
    argTypes:
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1235
    functionDepth: 6
    functionLinenumber: 1235
    functionLinenumberEnd: 1260
    functionName: TPM_Key_CheckPubDataDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_Digest_Compare
    - TPM_Sbuffer_Delete
    - TPM_Key_GetStoreAsymkey
    - TPM_Key_StorePubData
    - printf
    - TPM_Sbuffer_Init
    - TPM_SHA1Sbuffer
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Key_CheckPubDataDigest(TPM_KEY *tpm_key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1273,1
    - Dst: TPM_Key_GetStoreAsymkey
      Src: /src/libtpms/src/tpm12/tpm_key.c:1276,1
    - Dst: TPM_StoreAsymkey_GenerateEncData
      Src: /src/libtpms/src/tpm12/tpm_key.c:1279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - tpm_key
    - parent_key
    argTypes:
    - TPM_KEY*
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1267
    functionDepth: 2
    functionLinenumber: 1267
    functionLinenumberEnd: 1284
    functionName: TPM_Key_GenerateEncData
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_StoreAsymkey_GenerateEncData
    - printf
    - TPM_Key_GetStoreAsymkey
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_GenerateEncData(TPM_KEY *tpm_key,\n\t\t\t\t   TPM_KEY
      *parent_key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1301,1
    - Dst: TPM_RSAPrivateDecryptMalloc
      Src: /src/libtpms/src/tpm12/tpm_key.c:1304,1
    - Dst: TPM_Key_LoadStoreAsymKey
      Src: /src/libtpms/src/tpm12/tpm_key.c:1315,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:1317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - tpm_key
    - parent_key
    argTypes:
    - TPM_KEY*
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1292
    functionDepth: 4
    functionLinenumber: 1292
    functionLinenumberEnd: 1319
    functionName: TPM_Key_DecryptEncData
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - free
    - printf
    - TPM_Key_LoadStoreAsymKey
    - TPM_RSAPrivateDecryptMalloc
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_DecryptEncData(TPM_KEY *tpm_key,\t/* result */\n\t\t\t\t
      \ TPM_KEY *parent_key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1337,1
    - Dst: TPM_PCRInfo_CheckDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:1343,1
    - Dst: TPM_PCRInfoLong_CheckDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:1352,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1359,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - tpm_key
    - tpm_state
    argTypes:
    - TPM_KEY*
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1332
    functionDepth: 3
    functionLinenumber: 1332
    functionLinenumberEnd: 1363
    functionName: TPM_Key_CheckPCRDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_PCRInfoLong_CheckDigest
    - TPM_PCRInfo_CheckDigest
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_CheckPCRDigest(TPM_KEY *tpm_key,\n\t\t\t\t  tpm_state_t
      *tpm_state)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1389,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1392,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1415,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 2
    argNames:
    - tpm_key
    - restrictDelegate
    argTypes:
    - TPM_KEY*
    - TPM_CMK_DELEGATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1384
    functionDepth: 1
    functionLinenumber: 1384
    functionLinenumberEnd: 1423
    functionName: TPM_Key_CheckRestrictDelegate
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Key_CheckRestrictDelegate(TPM_KEY *tpm_key,\n\t\t\t\t\t
      TPM_CMK_DELEGATE restrictDelegate)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:1440,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - tpm_key_flags
    - stream
    - stream_size
    argTypes:
    - TPM_KEY_FLAGS*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1432
    functionDepth: 2
    functionLinenumber: 1432
    functionLinenumberEnd: 1451
    functionName: TPM_KeyFlags_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyFlags_Load(TPM_KEY_FLAGS *tpm_key_flags,\t/* result
      */\n\t\t\t     unsigned char **stream,\t\t/* pointer to next parameter */\n\t\t\t
      \    uint32_t *stream_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1459,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:1463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tpm_key_parms
    argTypes:
    - TPM_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1466
    functionName: TPM_KeyParms_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_SizedBuffer_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_KeyParms_Init(TPM_KEY_PARMS *tpm_key_parms)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1480,1
    - Dst: TPM_RSAKeyParms_New
      Src: /src/libtpms/src/tpm12/tpm_key.c:1487,1
    - Dst: TPM_SizedBuffer_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:1493,1
    - Dst: TPM_SizedBuffer_SetStructure
      Src: /src/libtpms/src/tpm12/tpm_key.c:1497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 6
    argNames:
    - tpm_key_parms
    - algorithmID
    - encScheme
    - sigScheme
    - keyLength
    - exponent
    argTypes:
    - TPM_KEY_PARMS*
    - TPM_ALGORITHM_ID
    - TPM_ENC_SCHEME
    - TPM_SIG_SCHEME
    - uint32_t
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1471
    functionDepth: 5
    functionLinenumber: 1471
    functionLinenumberEnd: 1502
    functionName: TPM_KeyParms_SetRSA
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_RSAKeyParms_New
    - TPM_SizedBuffer_SetStructure
    - printf
    - TPM_SizedBuffer_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyParms_SetRSA(TPM_KEY_PARMS *tpm_key_parms,\n\t\t\t
      \      TPM_ALGORITHM_ID algorithmID,\n\t\t\t       TPM_ENC_SCHEME encScheme,\n\t\t\t
      \      TPM_SIG_SCHEME sigScheme,\n\t\t\t       uint32_t keyLength,\t/* in bits
      */\n\t\t\t       TPM_SIZED_BUFFER *exponent)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1518,1
    - Dst: TPM_SizedBuffer_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:1523,1
    - Dst: TPM_RSAKeyParms_New
      Src: /src/libtpms/src/tpm12/tpm_key.c:1530,1
    - Dst: TPM_RSAKeyParms_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:1534,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - tpm_key_parms_dest
    - tpm_key_parms_src
    argTypes:
    - TPM_KEY_PARMS*
    - TPM_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1513
    functionDepth: 4
    functionLinenumber: 1513
    functionLinenumberEnd: 1539
    functionName: TPM_KeyParms_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - TPM_RSAKeyParms_Copy
    - TPM_RSAKeyParms_New
    - printf
    - TPM_SizedBuffer_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyParms_Copy(TPM_KEY_PARMS *tpm_key_parms_dest,\n\t\t\t
      \    TPM_KEY_PARMS *tpm_key_parms_src)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1554,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:1557,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_key.c:1561,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_key.c:1565,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:1569,1
    - Dst: TPM_RSAKeyParms_New
      Src: /src/libtpms/src/tpm12/tpm_key.c:1580,1
    - Dst: TPM_RSAKeyParms_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:1586,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1596,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - tpm_key_parms
    - stream
    - stream_size
    argTypes:
    - TPM_KEY_PARMS*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1546
    functionDepth: 3
    functionLinenumber: 1546
    functionLinenumberEnd: 1603
    functionName: TPM_KeyParms_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_Load16
    - TPM_RSAKeyParms_New
    - printf
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_RSAKeyParms_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyParms_Load(TPM_KEY_PARMS *tpm_key_parms,\t/* result
      */\n\t\t\t     unsigned char **stream,\t\t/* pointer to next parameter */\n\t\t\t
      \    uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1612,1
    - Dst: TPM_KeyParms_GetRSAKeyParms
      Src: /src/libtpms/src/tpm12/tpm_key.c:1614,1
    - Dst: TPM_RSAKeyParms_GetExponent
      Src: /src/libtpms/src/tpm12/tpm_key.c:1617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ebytes
    - earr
    - tpm_key_parms
    argTypes:
    - uint32_t*
    - unsigned char**
    - TPM_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1605
    functionDepth: 1
    functionLinenumber: 1605
    functionLinenumberEnd: 1620
    functionName: TPM_KeyParms_GetExponent
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_RSAKeyParms_GetExponent
    - TPM_KeyParms_GetRSAKeyParms
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyParms_GetExponent(uint32_t\t\t*ebytes,\n\t\t\t\t
      \   unsigned char\t**earr,\n\t\t\t\t    TPM_KEY_PARMS\t*tpm_key_parms)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1631,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_key.c:1634,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_key.c:1638,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_key.c:1642,1
    - Dst: TPM_SizedBuffer_SetStructure
      Src: /src/libtpms/src/tpm12/tpm_key.c:1651,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1660,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:1668,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - sbuffer
    - tpm_key_parms
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1626
    functionDepth: 5
    functionLinenumber: 1626
    functionLinenumberEnd: 1671
    functionName: TPM_KeyParms_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_SizedBuffer_SetStructure
    - TPM_Sbuffer_Append16
    - TPM_SizedBuffer_Store
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyParms_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t      TPM_KEY_PARMS
      *tpm_key_parms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1677,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:1679,1
    - Dst: TPM_RSAKeyParms_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:1680,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:1681,1
    - Dst: TPM_KeyParms_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:1682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tpm_key_parms
    argTypes:
    - TPM_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1675
    functionDepth: 2
    functionLinenumber: 1675
    functionLinenumberEnd: 1685
    functionName: TPM_KeyParms_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_RSAKeyParms_Delete
    - TPM_SizedBuffer_Delete
    - printf
    - free
    - TPM_KeyParms_Init
    linkageType: ''
    returnType: void
    signature: void TPM_KeyParms_Delete(TPM_KEY_PARMS *tpm_key_parms)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1698,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1702,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1710,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - tpm_rsa_key_parms
    - tpm_key_parms
    argTypes:
    - TPM_RSA_KEY_PARMS**
    - TPM_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1693
    functionDepth: 1
    functionLinenumber: 1693
    functionLinenumberEnd: 1720
    functionName: TPM_KeyParms_GetRSAKeyParms
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 4
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyParms_GetRSAKeyParms(TPM_RSA_KEY_PARMS **tpm_rsa_key_parms,\n\t\t\t\t
      \      TPM_KEY_PARMS *tpm_key_parms)"
  - BBCount: 392
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1737,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1738,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1739,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1743,1
    - Dst: TPM_KeyParms_GetRSAKeyParms
      Src: /src/libtpms/src/tpm12/tpm_key.c:1750,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1755,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1762,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1771,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1780,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1786,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1794,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1799,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1820,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1826,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1832,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1839,1
    - Dst: TPM_KeyParams_CheckDefaultExponent
      Src: /src/libtpms/src/tpm12/tpm_key.c:1845,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1850,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1856,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1862,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1869,1
    - Dst: TPM_KeyParams_CheckDefaultExponent
      Src: /src/libtpms/src/tpm12/tpm_key.c:1875,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1880,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1886,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1892,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1901,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1908,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1917,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1925,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1934,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1940,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1946,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1953,1
    - Dst: TPM_KeyParams_CheckDefaultExponent
      Src: /src/libtpms/src/tpm12/tpm_key.c:1959,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1963,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1977,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1980,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1988,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1998,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2013,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2015,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2016,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2017,1
    - Dst: TPM_StorePrivkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2018,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2042,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_key.c:2045,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2057,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2064,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2068,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2072,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2076,1
    - Dst: TPM_StorePrivkey_Convert
      Src: /src/libtpms/src/tpm12/tpm_key.c:2081,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2113,1
    - Dst: TPM_Key_GetPublicKey
      Src: /src/libtpms/src/tpm12/tpm_key.c:2126,1
    - Dst: TPM_Key_GetExponent
      Src: /src/libtpms/src/tpm12/tpm_key.c:2129,1
    - Dst: TPM_Key_GetPrimeFactorP
      Src: /src/libtpms/src/tpm12/tpm_key.c:2132,1
    - Dst: TPM_RSAGetPrivateKey
      Src: /src/libtpms/src/tpm12/tpm_key.c:2136,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2145,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_key.c:2151,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2153,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2160,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_key.c:2166,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2168,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:2172,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:2173,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2184,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_key.c:2187,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2191,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2195,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2199,1
    - Dst: TPM_StorePrivkey_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2203,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2210,1
    - Dst: TPM_Secret_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2212,1
    - Dst: TPM_Secret_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2213,1
    - Dst: TPM_StorePrivkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2214,1
    - Dst: TPM_StoreAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2215,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2227,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2228,1
    - Dst: TPM_StoreAsymkey_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2231,1
    - Dst: TPM_RSAPublicEncryptSbuffer_Key
      Src: /src/libtpms/src/tpm12/tpm_key.c:2234,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2236,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2249,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2253,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2276,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2302,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2332,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2333,1
    - Dst: TPM_MigrateAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2334,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2335,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2344,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_key.c:2347,1
    - Dst: TPM_StoreAsymkey_CheckO1Size
      Src: /src/libtpms/src/tpm12/tpm_key.c:2350,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2360,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2361,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2362,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2363,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:2364,1
    - Dst: TPM_MigrateAsymkey_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2375,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_key.c:2379,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2381,1
    - Dst: TPM_RSA_padding_add_PKCS1_OAEP
      Src: /src/libtpms/src/tpm12/tpm_key.c:2382,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2388,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2390,1
    - Dst: TPM_MigrateAsymkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2391,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2392,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2426,1
    - Dst: TPM_MigrateAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2427,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2428,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_key.c:2432,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2435,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2437,1
    - Dst: TPM_RSA_padding_check_PKCS1_OAEP
      Src: /src/libtpms/src/tpm12/tpm_key.c:2438,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2444,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2446,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2448,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2449,1
    - Dst: TPM_MigrateAsymkey_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2455,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2456,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_key.c:2458,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2464,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_key.c:2467,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2474,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2475,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2476,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_key.c:2477,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2478,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_key.c:2479,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2480,1
    - Dst: TPM_MigrateAsymkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2483,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2484,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:2485,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2503,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2505,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2506,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2507,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2527,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_key.c:2530,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2537,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2544,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2548,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2552,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2568,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_key.c:2571,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2575,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2579,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2583,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2599,1
    - Dst: TPM_Secret_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2601,1
    - Dst: TPM_SizedBuffer_Zero
      Src: /src/libtpms/src/tpm12/tpm_key.c:2602,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2603,1
    - Dst: TPM_MigrateAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2604,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2615,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2616,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2617,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2618,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2644,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2646,1
    - Dst: TPM_KeyParms_GetExponent
      Src: /src/libtpms/src/tpm12/tpm_key.c:2649,1
    - Dst: TPM_StoreAsymkey_GetPrimeFactorP
      Src: /src/libtpms/src/tpm12/tpm_key.c:2652,1
    - Dst: TPM_RSAGetPrivateKey
      Src: /src/libtpms/src/tpm12/tpm_key.c:2655,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2662,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2663,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:2664,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:2667,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:2669,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:2670,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2685,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2687,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2688,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2695,1
    - Dst: TPM_SizedBuffer_Zero
      Src: /src/libtpms/src/tpm12/tpm_key.c:2697,1
    - Dst: TPM_SizedBuffer_Zero
      Src: /src/libtpms/src/tpm12/tpm_key.c:2698,1
    - Dst: TPM_SizedBuffer_Zero
      Src: /src/libtpms/src/tpm12/tpm_key.c:2699,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2701,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2702,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2703,1
    - Dst: TPM_StorePrivkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2704,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2715,1
    - Dst: TPM_KeyParms_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2716,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2717,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2727,1
    - Dst: TPM_KeyParms_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2730,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2734,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2747,1
    - Dst: TPM_KeyParms_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2749,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2752,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2759,1
    - Dst: TPM_KeyParms_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2761,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2762,1
    - Dst: TPM_Pubkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2763,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2773,1
    - Dst: TPM_KeyParms_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2776,1
    - Dst: TPM_SizedBuffer_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2781,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2792,1
    - Dst: TPM_KeyParms_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2795,1
    - Dst: TPM_SizedBuffer_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2800,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2817,1
    - Dst: TPM_KeyParms_GetExponent
      Src: /src/libtpms/src/tpm12/tpm_key.c:2819,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2833,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2853,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2856,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2871,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:2874,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:2878,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2882,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2895,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_key.c:2898,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_key.c:2902,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2906,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2918,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2920,1
    - Dst: TPM_RSAKeyParms_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2921,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2936,1
    - Dst: TPM_SizedBuffer_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2940,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2952,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_key.c:2954,1
    - Dst: TPM_RSAKeyParms_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2957,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2973,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3017,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:3020,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_key.c:3024,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:3028,1
    - Dst: TPM_Key_LoadClear
      Src: /src/libtpms/src/tpm12/tpm_key.c:3029,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_key.c:3035,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:3039,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3055,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_key.c:3058,1
    - Dst: TPM_Key_StoreClear
      Src: /src/libtpms/src/tpm12/tpm_key.c:3062,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_key.c:3068,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_key.c:3073,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3086,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:3087,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:3088,1
    - Dst: TPM_KeyHandleEntry_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:3090,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3106,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3110,1
    - Dst: TPM_AuthSessions_TerminateEntity
      Src: /src/libtpms/src/tpm12/tpm_key.c:3118,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3124,1
    - Dst: TPM_KeyHandleEntry_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:3128,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3145,1
    - Dst: TPM_KeyHandleEntry_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:3147,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3160,1
    - Dst: TPM_KeyHandleEntry_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:3162,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_key.c:3186,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:3190,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3191,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3196,1
    - Dst: TPM_KeyHandleEntry_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:3206,1
    - Dst: TPM_KeyHandleEntry_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:3207,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3210,1
    - Dst: TPM_KeyHandleEntries_AddEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:3215,1
    - Dst: TPM_KeyHandleEntry_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:3223,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_key.c:3246,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3252,1
    - Dst: TPM_KeyHandleEntries_GetNextEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:3256,1
    - Dst: TPM_SaveState_IsSaveKey
      Src: /src/libtpms/src/tpm12/tpm_key.c:3260,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3268,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_key.c:3269,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3273,1
    - Dst: TPM_KeyHandleEntries_GetNextEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:3278,1
    - Dst: TPM_SaveState_IsSaveKey
      Src: /src/libtpms/src/tpm12/tpm_key.c:3282,1
    - Dst: TPM_KeyHandleEntry_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:3285,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3312,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_key.c:3322,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_key.c:3326,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3344,1
    - Dst: TPM_KeyHandleEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:3347,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3351,1
    - Dst: TPM_KeyHandleEntry_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:3357,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3371,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3374,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3391,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3421,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3449,1
    - Dst: TPM_KeyHandleEntries_AddEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:3453,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3485,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3490,1
    - Dst: TPM_KeyHandleEntries_IsSpace
      Src: /src/libtpms/src/tpm12/tpm_key.c:3496,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3498,1
    - Dst: TPM_Handle_GenerateHandle
      Src: /src/libtpms/src/tpm12/tpm_key.c:3503,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3514,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3531,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3541,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3545,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3569,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3607,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3618,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3626,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3633,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3648,1
    - Dst: TPM_KeyHandleEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:3659,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3663,1
    - Dst: TPM_Key_CheckPCRDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:3687,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3703,1
    - Dst: TPM_KeyHandleEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:3706,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3710,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3734,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_key.c:3737,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3741,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_key.c:3749,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3754,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3761,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3767,1
    - Dst: TPM_KeyHandleEntry_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:3768,1
    - Dst: TPM_KeyHandleEntry_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:3770,1
    - Dst: TPM_KeyHandleEntries_AddEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:3774,1
    - Dst: TPM_KeyHandleEntry_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:3782,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3801,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_key.c:3804,1
    - Dst: TPM_KeyHandleEntries_OwnerEvictGetCount
      Src: /src/libtpms/src/tpm12/tpm_key.c:3808,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_key.c:3812,1
    - Dst: TPM_KeyHandleEntry_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:3820,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3837,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3849,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3854,1
    - Dst: TPM_KeyHandleEntry_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:3875,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3927,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:3928,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:3936,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:3939,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:3945,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_key.c:3957,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_key.c:3961,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3965,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3975,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3978,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3985,1
    - Dst: TPM_Key_StorePubkey
      Src: /src/libtpms/src/tpm12/tpm_key.c:3994,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4000,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_key.c:4003,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4018,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4020,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_key.c:4029,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:4035,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4041,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_key.c:4052,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4059,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:4064,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4114,1
    - Dst: TPM_KeyParms_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:4118,1
    - Dst: TPM_Pubkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:4119,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:4127,1
    - Dst: TPM_KeyParms_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:4131,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_key.c:4135,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4139,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:4142,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:4145,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4151,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_key.c:4163,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_key.c:4167,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4171,1
    - Dst: TPM_CreateEndorsementKeyPair_Common
      Src: /src/libtpms/src/tpm12/tpm_key.c:4182,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_key.c:4192,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_key.c:4198,1
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:4203,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_key.c:4207,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4215,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4217,1
    - Dst: TPM_Pubkey_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:4226,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:4230,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:4239,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4245,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_key.c:4256,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4263,1
    - Dst: TPM_KeyParms_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:4268,1
    - Dst: TPM_Pubkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:4269,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4312,1
    - Dst: TPM_KeyParms_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:4316,1
    - Dst: TPM_Pubkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:4317,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:4325,1
    - Dst: TPM_KeyParms_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:4329,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4335,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_key.c:4347,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_key.c:4351,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4355,1
    - Dst: TPM_CreateEndorsementKeyPair_Common
      Src: /src/libtpms/src/tpm12/tpm_key.c:4364,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_key.c:4374,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_key.c:4379,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4387,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4389,1
    - Dst: TPM_Pubkey_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:4397,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:4401,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4407,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_key.c:4418,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4425,1
    - Dst: TPM_KeyParms_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:4430,1
    - Dst: TPM_Pubkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:4431,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4456,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:4457,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4461,1
    - Dst: TPM_KeyParms_GetRSAKeyParms
      Src: /src/libtpms/src/tpm12/tpm_key.c:4475,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4480,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4489,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4503,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4525,1
    - Dst: TPM_Key_GenerateRSA
      Src: /src/libtpms/src/tpm12/tpm_key.c:4532,1
    - Dst: TPM_KeyParms_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:4548,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:4553,1
    - Dst: TPM_Pubkey_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:4561,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_key.c:4565,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_key.c:4568,1
    - Dst: TPM_PermanentData_InitDaa
      Src: /src/libtpms/src/tpm12/tpm_key.c:4579,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:4588,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4630,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:4638,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:4641,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4647,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_key.c:4659,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_key.c:4663,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4667,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4679,1
    - Dst: TPM_Nonce_Compare
      Src: /src/libtpms/src/tpm12/tpm_key.c:4686,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4688,1
    - Dst: TPM_Global_GetPhysicalPresence
      Src: /src/libtpms/src/tpm12/tpm_key.c:4694,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4698,1
    - Dst: TPM_OwnerClearCommon
      Src: /src/libtpms/src/tpm12/tpm_key.c:4706,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_key.c:4712,1
    - Dst: TPM_PermanentData_InitDaa
      Src: /src/libtpms/src/tpm12/tpm_key.c:4718,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4722,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:4723,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_key.c:4724,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_key.c:4729,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4737,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4739,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4751,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_key.c:4762,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4769,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4821,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4831,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_key.c:4843,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_key.c:4847,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_key.c:4851,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4860,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_key.c:4875,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_key.c:4887,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_key.c:4898,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4901,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_key.c:4904,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4913,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4915,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4927,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:4939,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_key.c:4948,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4955,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_key.c:4962,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5009,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:5010,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:5020,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_key.c:5032,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_key.c:5036,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_key.c:5040,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5049,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_key.c:5063,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_key.c:5075,1
    - Dst: TPM_Key_StorePubkey
      Src: /src/libtpms/src/tpm12/tpm_key.c:5087,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5097,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:5099,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_key.c:5108,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:5117,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:5129,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_key.c:5138,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:5145,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_key.c:5152,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:5157,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5199,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:5205,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:5213,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_key.c:5225,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_key.c:5229,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5233,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5248,1
    - Dst: TPM_KeyHandleEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:5249,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5253,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5260,1
    - Dst: TPM_KeyHandleEntry_FlushSpecific
      Src: /src/libtpms/src/tpm12/tpm_key.c:5266,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5273,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:5275,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:5287,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_key.c:5298,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:5305,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5359,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:5370,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5373,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:5379,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_key.c:5391,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_key.c:5395,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_key.c:5399,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5408,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_key.c:5422,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_key.c:5434,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5447,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5453,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5458,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5468,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:5470,1
    - Dst: TPM_Key_StorePubkey
      Src: /src/libtpms/src/tpm12/tpm_key.c:5479,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:5486,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:5498,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_key.c:5507,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:5514,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_key.c:5521,1
    CyclomaticComplexity: 467
    EdgeCount: 467
    ICount: 1653
    argCount: 4
    argNames:
    - tpm_key_parms
    - tpm_key_usage
    - keyLength
    - FIPS
    argTypes:
    - TPM_KEY_PARMS*
    - TPM_KEY_USAGE
    - uint32_t
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5527
      start: 1729
    functionDepth: 7
    functionLinenumber: 1729
    functionLinenumberEnd: 5527
    functionName: TPM_KeyParms_CheckProperties
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_CheckTag
    - TPM_Secret_Copy
    - TPM_AuthSessions_TerminateEntity
    - TPM_Key_LoadClear
    - TPM_KeyParms_Copy
    - TPM_Nonce_Store
    - TPM_MigrateAsymkey_Delete
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Digest_Copy
    - TPM_Nonce_Compare
    - TPM_PrintFour
    - TPM_CheckRequestTag0
    - TPM_Key_Delete
    - TPM_KeyHandleEntries_OwnerEvictGetCount
    - TPM_Pubkey_Store
    - TPM_Key_Init
    - TPM_Sbuffer_Delete
    - TPM_KeyParms_Delete
    - TPM_Pubkey_Delete
    - TPM_StorePrivkey_Init
    - TPM_AuthParams_Get
    - TPM_Key_StoreClear
    - TPM_CheckState
    - TPM_RSAGetPrivateKey
    - TPM_SizedBuffer_Load
    - TPM_Sbuffer_Get
    - TPM_Nonce_Generate
    - TPM_SizedBuffer_Store
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_Sbuffer_Append32
    - TPM_SHA1
    - TPM_KeyHandleEntry_Delete
    - TPM_StorePrivkey_Store
    - TPM_Secret_Store
    - TPM_RSA_padding_add_PKCS1_OAEP
    - TPM_Nonce_Copy
    - TPM_PermanentData_InitDaa
    - TPM_SizedBuffer_Copy
    - TPM_RSAPublicEncryptSbuffer_Key
    - TPM_KeyHandleEntry_Store
    - TPM_MigrateAsymkey_Store
    - TPM_ProcessAudit
    - TPM_KeyParms_Load
    - TPM_Key_GetPrimeFactorP
    - TPM_MigrateAsymkey_Init
    - TPM_Key_GenerateRSA
    - TPM_RSA_padding_check_PKCS1_OAEP
    - TPM_PermanentAll_NVStore
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_StoreAsymkey_Store
    - TPM_Sbuffer_Append
    - TPM_Key_CheckPCRDigest
    - TPM_Secret_Load
    - TPM_GetInParamDigest
    - TPM_RSAKeyParms_Init
    - TPM_LoadBool
    - TPM_KeyParms_GetRSAKeyParms
    - TPM_SaveState_IsSaveKey
    - TPM_GetOutParamDigest
    - TPM_KeyHandleEntry_FlushSpecific
    - TPM_KeyHandleEntries_GetNextEntry
    - TPM_KeyParms_Init
    - TPM_MigrateAsymkey_Load
    - TPM_StorePrivkey_Convert
    - TPM_KeyParams_CheckDefaultExponent
    - TPM_Secret_Delete
    - TPM_Malloc
    - printf
    - TPM_Load8
    - TPM_Digest_Store
    - TPM_AuthParams_Set
    - TPM_Digest_Load
    - TPM_KeyHandleEntries_IsSpace
    - TPM_StoreAsymkey_GetPrimeFactorP
    - TPM_KeyParms_Store
    - TPM_PrintFourLimit
    - free
    - TPM_CheckRequestTag1
    - TPM_KeyHandleEntry_Init
    - TPM_Sbuffer_Append16
    - TPM_StoreAsymkey_Init
    - TPM_AuthSessions_TerminateHandle
    - TPM_Key_GetExponent
    - memcmp
    - TPM_SizedBuffer_Set
    - TPM_SetCapability_Flag
    - TPM_Secret_Init
    - TPM_Key_GetPublicKey
    - TPM_KeyHandleEntries_AddEntry
    - TPM_Pubkey_Init
    - TPM_KeyHandleEntries_GetEntry
    - TPM_Authdata_Check
    - TPM_Load16
    - TPM_SizedBuffer_Init
    - TPM_SizedBuffer_Zero
    - TPM_SizedBuffer_Delete
    - TPM_CreateEndorsementKeyPair_Common
    - TPM_Key_StorePubkey
    - TPM_KeyParms_GetExponent
    - TPM_Handle_GenerateHandle
    - TPM_StoreAsymkey_CheckO1Size
    - TPM_KeyHandleEntry_Load
    - TPM_OwnerClearCommon
    - TPM_Global_GetPhysicalPresence
    - TPM_Nonce_Load
    - TPM_Load32
    - TPM_StorePrivkey_Delete
    - TPM_Digest_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyParms_CheckProperties(TPM_KEY_PARMS *tpm_key_parms,\n\t\t\t\t\tTPM_KEY_USAGE
      tpm_key_usage,\n\t\t\t\t\tuint32_t keyLength,\t/* in bits */\n\t\t\t\t\tTPM_BOOL
      FIPS)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1977,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1980,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1988,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:1998,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - exponent
    argTypes:
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1971
    functionDepth: 1
    functionLinenumber: 1971
    functionLinenumberEnd: 2005
    functionName: TPM_KeyParams_CheckDefaultExponent
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_KeyParams_CheckDefaultExponent(TPM_SIZED_BUFFER *exponent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2013,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2015,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2016,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2017,1
    - Dst: TPM_StorePrivkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tpm_store_asymkey
    argTypes:
    - TPM_STORE_ASYMKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 2011
    functionDepth: 1
    functionLinenumber: 2011
    functionLinenumberEnd: 2020
    functionName: TPM_StoreAsymkey_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 7
    functionsReached:
    - TPM_Secret_Init
    - printf
    - TPM_Digest_Init
    - TPM_StorePrivkey_Init
    linkageType: ''
    returnType: void
    signature: void TPM_StoreAsymkey_Init(TPM_STORE_ASYMKEY *tpm_store_asymkey)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2042,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_key.c:2045,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2057,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2064,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2068,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2072,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2076,1
    - Dst: TPM_StorePrivkey_Convert
      Src: /src/libtpms/src/tpm12/tpm_key.c:2081,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 27
    argCount: 6
    argNames:
    - tpm_store_asymkey
    - isEK
    - stream
    - stream_size
    - tpm_key_parms
    - pubKey
    argTypes:
    - TPM_STORE_ASYMKEY*
    - TPM_BOOL
    - unsigned char**
    - uint32_t*
    - TPM_KEY_PARMS*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2033
    functionDepth: 3
    functionLinenumber: 2033
    functionLinenumberEnd: 2085
    functionName: TPM_StoreAsymkey_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 3
    functionsReached:
    - TPM_Secret_Load
    - TPM_Digest_Load
    - TPM_StorePrivkey_Convert
    - printf
    - TPM_SizedBuffer_Load
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StoreAsymkey_Load(TPM_STORE_ASYMKEY *tpm_store_asymkey,\n\t\t\t\t
      TPM_BOOL isEK,\n\t\t\t\t unsigned char **stream,\t\n\t\t\t\t uint32_t *stream_size,\n\t\t\t\t
      TPM_KEY_PARMS *tpm_key_parms,\n\t\t\t\t TPM_SIZED_BUFFER *pubKey)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2113,1
    - Dst: TPM_Key_GetPublicKey
      Src: /src/libtpms/src/tpm12/tpm_key.c:2126,1
    - Dst: TPM_Key_GetExponent
      Src: /src/libtpms/src/tpm12/tpm_key.c:2129,1
    - Dst: TPM_Key_GetPrimeFactorP
      Src: /src/libtpms/src/tpm12/tpm_key.c:2132,1
    - Dst: TPM_RSAGetPrivateKey
      Src: /src/libtpms/src/tpm12/tpm_key.c:2136,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2145,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_key.c:2151,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2153,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2160,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_key.c:2166,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2168,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:2172,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:2173,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 1
    argNames:
    - tpm_key
    argTypes:
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2088
    functionDepth: 3
    functionLinenumber: 2088
    functionLinenumberEnd: 2175
    functionName: TPM_StoreAsymkey_LoadTest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_Key_GetPublicKey
    - TPM_Key_GetExponent
    - TPM_Key_GetPrimeFactorP
    - memcmp
    - printf
    - TPM_RSAGetPrivateKey
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_StoreAsymkey_LoadTest(TPM_KEY *tpm_key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2184,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_key.c:2187,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2191,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2195,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2199,1
    - Dst: TPM_StorePrivkey_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2203,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - sbuffer
    - isEK
    - tpm_store_asymkey
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_BOOL
    - TPM_STORE_ASYMKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2206
      start: 2178
    functionDepth: 1
    functionLinenumber: 2178
    functionLinenumberEnd: 2206
    functionName: TPM_StoreAsymkey_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 5
    functionsReached:
    - TPM_StorePrivkey_Store
    - TPM_Secret_Store
    - printf
    - TPM_Digest_Store
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StoreAsymkey_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \ TPM_BOOL isEK,\n\t\t\t\t  const TPM_STORE_ASYMKEY *tpm_store_asymkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2210,1
    - Dst: TPM_Secret_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2212,1
    - Dst: TPM_Secret_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2213,1
    - Dst: TPM_StorePrivkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2214,1
    - Dst: TPM_StoreAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tpm_store_asymkey
    argTypes:
    - TPM_STORE_ASYMKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2208
    functionDepth: 2
    functionLinenumber: 2208
    functionLinenumberEnd: 2218
    functionName: TPM_StoreAsymkey_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 5
    functionsReached:
    - TPM_Secret_Delete
    - TPM_StoreAsymkey_Init
    - printf
    - TPM_StorePrivkey_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_StoreAsymkey_Delete(TPM_STORE_ASYMKEY *tpm_store_asymkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2227,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2228,1
    - Dst: TPM_StoreAsymkey_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2231,1
    - Dst: TPM_RSAPublicEncryptSbuffer_Key
      Src: /src/libtpms/src/tpm12/tpm_key.c:2234,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - encData
    - tpm_store_asymkey
    - parent_key
    argTypes:
    - TPM_SIZED_BUFFER*
    - TPM_STORE_ASYMKEY*
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2220
    functionDepth: 2
    functionLinenumber: 2220
    functionLinenumberEnd: 2238
    functionName: TPM_StoreAsymkey_GenerateEncData
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Delete
    - printf
    - TPM_RSAPublicEncryptSbuffer_Key
    - TPM_StoreAsymkey_Store
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StoreAsymkey_GenerateEncData(TPM_SIZED_BUFFER *encData,\n\t\t\t\t\t
      \   TPM_STORE_ASYMKEY *tpm_store_asymkey,\n\t\t\t\t\t    TPM_KEY *parent_key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2249,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pbytes
    - parr
    - tpm_store_asymkey
    argTypes:
    - uint32_t*
    - unsigned char**
    - TPM_STORE_ASYMKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2243
    functionDepth: 3
    functionLinenumber: 2243
    functionLinenumberEnd: 2256
    functionName: TPM_StoreAsymkey_GetPrimeFactorP
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_PrintFour
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StoreAsymkey_GetPrimeFactorP(uint32_t \t\t*pbytes,\n\t\t\t\t\t
      \   unsigned char\t**parr,\n\t\t\t\t\t    TPM_STORE_ASYMKEY\t*tpm_store_asymkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - o1_size
    - tpm_store_asymkey
    argTypes:
    - uint32_t*
    - TPM_STORE_ASYMKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2263
    functionDepth: 1
    functionLinenumber: 2263
    functionLinenumberEnd: 2278
    functionName: TPM_StoreAsymkey_GetO1Size
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_StoreAsymkey_GetO1Size(uint32_t\t\t*o1_size,\n\t\t\t\tTPM_STORE_ASYMKEY\t*tpm_store_asymkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - o1_size
    - k1k2_length
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2286
    functionDepth: 1
    functionLinenumber: 2286
    functionLinenumberEnd: 2307
    functionName: TPM_StoreAsymkey_CheckO1Size
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StoreAsymkey_CheckO1Size(uint32_t o1_size,\n\t\t\t\t\tuint32_t
      k1k2_length)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2332,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2333,1
    - Dst: TPM_MigrateAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2334,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2335,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2344,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_key.c:2347,1
    - Dst: TPM_StoreAsymkey_CheckO1Size
      Src: /src/libtpms/src/tpm12/tpm_key.c:2350,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2360,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2361,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2362,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2363,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:2364,1
    - Dst: TPM_MigrateAsymkey_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2375,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_key.c:2379,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2381,1
    - Dst: TPM_RSA_padding_add_PKCS1_OAEP
      Src: /src/libtpms/src/tpm12/tpm_key.c:2382,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2388,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2390,1
    - Dst: TPM_MigrateAsymkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2391,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2392,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 6
    argNames:
    - o1
    - o1_size
    - tpm_store_asymkey
    - pHash
    - payload_type
    - usageAuth
    argTypes:
    - BYTE*
    - uint32_t
    - TPM_STORE_ASYMKEY*
    - TPM_DIGEST
    - TPM_PAYLOAD_TYPE
    - TPM_SECRET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2394
      start: 2316
    functionDepth: 3
    functionLinenumber: 2316
    functionLinenumberEnd: 2394
    functionName: TPM_StoreAsymkey_StoreO1
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_MigrateAsymkey_Delete
    - TPM_Sbuffer_Get
    - TPM_Secret_Copy
    - TPM_PrintFour
    - TPM_Sbuffer_Delete
    - TPM_SizedBuffer_Store
    - TPM_MigrateAsymkey_Init
    - printf
    - TPM_Digest_Copy
    - TPM_SizedBuffer_Set
    - TPM_MigrateAsymkey_Store
    - TPM_RSA_padding_add_PKCS1_OAEP
    - TPM_StoreAsymkey_CheckO1Size
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StoreAsymkey_StoreO1(BYTE\t\t*o1,\n\t\t\t\t    uint32_t\t\to1_size,\n\t\t\t\t
      \   TPM_STORE_ASYMKEY\t*tpm_store_asymkey,\n\t\t\t\t    TPM_DIGEST\t\tpHash,\n\t\t\t\t
      \   TPM_PAYLOAD_TYPE\tpayload_type,\n\t\t\t\t    TPM_SECRET\t\tusageAuth)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2426,1
    - Dst: TPM_MigrateAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2427,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2428,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_key.c:2432,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2435,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2437,1
    - Dst: TPM_RSA_padding_check_PKCS1_OAEP
      Src: /src/libtpms/src/tpm12/tpm_key.c:2438,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2444,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2446,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2448,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2449,1
    - Dst: TPM_MigrateAsymkey_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2455,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2456,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_key.c:2458,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2464,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_key.c:2467,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2474,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2475,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2476,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_key.c:2477,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2478,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_key.c:2479,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2480,1
    - Dst: TPM_MigrateAsymkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2483,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2484,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:2485,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 3
    argNames:
    - tpm_store_asymkey
    - o1
    - o1_size
    argTypes:
    - TPM_STORE_ASYMKEY*
    - BYTE*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2487
      start: 2410
    functionDepth: 3
    functionLinenumber: 2410
    functionLinenumberEnd: 2487
    functionName: TPM_StoreAsymkey_LoadO1
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - TPM_MigrateAsymkey_Delete
    - TPM_MigrateAsymkey_Load
    - TPM_Sbuffer_Get
    - TPM_PrintFour
    - TPM_Sbuffer_Append
    - TPM_Sbuffer_Delete
    - free
    - TPM_Malloc
    - TPM_MigrateAsymkey_Init
    - printf
    - TPM_RSA_padding_check_PKCS1_OAEP
    - TPM_Digest_Copy
    - TPM_SizedBuffer_Load
    - TPM_Digest_Store
    - TPM_PrintFourLimit
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StoreAsymkey_LoadO1(TPM_STORE_ASYMKEY\t*tpm_store_asymkey,\t/*
      output */\n\t\t\t\t   BYTE\t\t\t*o1,\t\t\t/* input */\n\t\t\t\t   uint32_t\t\to1_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2503,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2505,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2506,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tpm_migrate_asymkey
    argTypes:
    - TPM_MIGRATE_ASYMKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2501
    functionDepth: 1
    functionLinenumber: 2501
    functionLinenumberEnd: 2509
    functionName: TPM_MigrateAsymkey_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 3
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_Secret_Init
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_MigrateAsymkey_Init(TPM_MIGRATE_ASYMKEY *tpm_migrate_asymkey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2527,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_key.c:2530,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2537,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2544,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2548,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2552,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - tpm_migrate_asymkey
    - stream
    - stream_size
    argTypes:
    - TPM_MIGRATE_ASYMKEY*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2521
    functionDepth: 3
    functionLinenumber: 2521
    functionLinenumberEnd: 2555
    functionName: TPM_MigrateAsymkey_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - TPM_Secret_Load
    - TPM_Digest_Load
    - printf
    - TPM_SizedBuffer_Load
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_MigrateAsymkey_Load(TPM_MIGRATE_ASYMKEY *tpm_migrate_asymkey,\n\t\t\t\t
      \  unsigned char **stream,\n\t\t\t\t   uint32_t *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2568,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_key.c:2571,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2575,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2579,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2583,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_migrate_asymkey
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_MIGRATE_ASYMKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2563
    functionDepth: 2
    functionLinenumber: 2563
    functionLinenumberEnd: 2586
    functionName: TPM_MigrateAsymkey_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - TPM_Secret_Store
    - TPM_SizedBuffer_Store
    - printf
    - TPM_Digest_Store
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_MigrateAsymkey_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \   const TPM_MIGRATE_ASYMKEY *tpm_migrate_asymkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2599,1
    - Dst: TPM_Secret_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2601,1
    - Dst: TPM_SizedBuffer_Zero
      Src: /src/libtpms/src/tpm12/tpm_key.c:2602,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2603,1
    - Dst: TPM_MigrateAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tpm_migrate_asymkey
    argTypes:
    - TPM_MIGRATE_ASYMKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2597
    functionDepth: 2
    functionLinenumber: 2597
    functionLinenumberEnd: 2607
    functionName: TPM_MigrateAsymkey_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 4
    functionsReached:
    - TPM_SizedBuffer_Zero
    - TPM_SizedBuffer_Delete
    - TPM_Secret_Delete
    - TPM_MigrateAsymkey_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_MigrateAsymkey_Delete(TPM_MIGRATE_ASYMKEY *tpm_migrate_asymkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2615,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2616,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2617,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tpm_store_privkey
    argTypes:
    - TPM_STORE_PRIVKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2620
      start: 2613
    functionDepth: 1
    functionLinenumber: 2613
    functionLinenumberEnd: 2620
    functionName: TPM_StorePrivkey_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - TPM_SizedBuffer_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_StorePrivkey_Init(TPM_STORE_PRIVKEY *tpm_store_privkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2644,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2646,1
    - Dst: TPM_KeyParms_GetExponent
      Src: /src/libtpms/src/tpm12/tpm_key.c:2649,1
    - Dst: TPM_StoreAsymkey_GetPrimeFactorP
      Src: /src/libtpms/src/tpm12/tpm_key.c:2652,1
    - Dst: TPM_RSAGetPrivateKey
      Src: /src/libtpms/src/tpm12/tpm_key.c:2655,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2662,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2663,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:2664,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:2667,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:2669,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:2670,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - tpm_store_asymkey
    - tpm_key_parms
    - pubKey
    argTypes:
    - TPM_STORE_ASYMKEY*
    - TPM_KEY_PARMS*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2626
    functionDepth: 4
    functionLinenumber: 2626
    functionLinenumberEnd: 2672
    functionName: TPM_StorePrivkey_Convert
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 3
    functionsReached:
    - TPM_StoreAsymkey_GetPrimeFactorP
    - TPM_PrintFour
    - printf
    - TPM_RSAGetPrivateKey
    - TPM_SizedBuffer_Set
    - TPM_KeyParms_GetExponent
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StorePrivkey_Convert(TPM_STORE_ASYMKEY *tpm_store_asymkey,\t/*
      I/O result */\n\t\t\t\t    TPM_KEY_PARMS *tpm_key_parms,\t/* to get exponent
      */\n\t\t\t\t    TPM_SIZED_BUFFER *pubKey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2685,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:2687,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sbuffer
    - tpm_store_privkey
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_STORE_PRIVKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2680
    functionDepth: 3
    functionLinenumber: 2680
    functionLinenumberEnd: 2691
    functionName: TPM_StorePrivkey_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - TPM_PrintFour
    - printf
    - TPM_SizedBuffer_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StorePrivkey_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \ const TPM_STORE_PRIVKEY *tpm_store_privkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2695,1
    - Dst: TPM_SizedBuffer_Zero
      Src: /src/libtpms/src/tpm12/tpm_key.c:2697,1
    - Dst: TPM_SizedBuffer_Zero
      Src: /src/libtpms/src/tpm12/tpm_key.c:2698,1
    - Dst: TPM_SizedBuffer_Zero
      Src: /src/libtpms/src/tpm12/tpm_key.c:2699,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2701,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2702,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2703,1
    - Dst: TPM_StorePrivkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - tpm_store_privkey
    argTypes:
    - TPM_STORE_PRIVKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2693
    functionDepth: 2
    functionLinenumber: 2693
    functionLinenumberEnd: 2707
    functionName: TPM_StorePrivkey_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - TPM_SizedBuffer_Delete
    - TPM_SizedBuffer_Zero
    - printf
    - TPM_StorePrivkey_Init
    linkageType: ''
    returnType: void
    signature: void TPM_StorePrivkey_Delete(TPM_STORE_PRIVKEY *tpm_store_privkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2715,1
    - Dst: TPM_KeyParms_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2716,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpm_pubkey
    argTypes:
    - TPM_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2719
      start: 2713
    functionDepth: 2
    functionLinenumber: 2713
    functionLinenumberEnd: 2719
    functionName: TPM_Pubkey_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 5
    functionsReached:
    - TPM_SizedBuffer_Init
    - printf
    - TPM_KeyParms_Init
    linkageType: ''
    returnType: void
    signature: void TPM_Pubkey_Init(TPM_PUBKEY *tpm_pubkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2727,1
    - Dst: TPM_KeyParms_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2730,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tpm_pubkey
    - stream
    - stream_size
    argTypes:
    - TPM_PUBKEY*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2737
      start: 2721
    functionDepth: 4
    functionLinenumber: 2721
    functionLinenumberEnd: 2737
    functionName: TPM_Pubkey_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 4
    functionsReached:
    - TPM_SizedBuffer_Load
    - printf
    - TPM_KeyParms_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Pubkey_Load(TPM_PUBKEY *tpm_pubkey,\t/* result */\n\t\t\t
      \  unsigned char **stream,\t/* pointer to next parameter */\n\t\t\t   uint32_t
      *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2747,1
    - Dst: TPM_KeyParms_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2749,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sbuffer
    - tpm_pubkey
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2742
    functionDepth: 6
    functionLinenumber: 2742
    functionLinenumberEnd: 2755
    functionName: TPM_Pubkey_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 5
    functionsReached:
    - TPM_KeyParms_Store
    - printf
    - TPM_SizedBuffer_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Pubkey_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t    TPM_PUBKEY
      *tpm_pubkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2759,1
    - Dst: TPM_KeyParms_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2761,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2762,1
    - Dst: TPM_Pubkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tpm_pubkey
    argTypes:
    - TPM_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2766
      start: 2757
    functionDepth: 3
    functionLinenumber: 2757
    functionLinenumberEnd: 2766
    functionName: TPM_Pubkey_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 5
    functionsReached:
    - TPM_SizedBuffer_Delete
    - TPM_Pubkey_Init
    - printf
    - TPM_KeyParms_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_Pubkey_Delete(TPM_PUBKEY *tpm_pubkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2773,1
    - Dst: TPM_KeyParms_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2776,1
    - Dst: TPM_SizedBuffer_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - tpm_pubkey
    - tpm_key
    argTypes:
    - TPM_PUBKEY*
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2785
      start: 2768
    functionDepth: 5
    functionLinenumber: 2768
    functionLinenumberEnd: 2785
    functionName: TPM_Pubkey_Set
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_KeyParms_Copy
    - printf
    - TPM_SizedBuffer_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Pubkey_Set(TPM_PUBKEY *tpm_pubkey,\n\t\t\t  TPM_KEY
      *tpm_key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2792,1
    - Dst: TPM_KeyParms_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2795,1
    - Dst: TPM_SizedBuffer_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - dest_tpm_pubkey
    - src_tpm_pubkey
    argTypes:
    - TPM_PUBKEY*
    - TPM_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2805
      start: 2787
    functionDepth: 5
    functionLinenumber: 2787
    functionLinenumberEnd: 2805
    functionName: TPM_Pubkey_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_KeyParms_Copy
    - printf
    - TPM_SizedBuffer_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Pubkey_Copy(TPM_PUBKEY *dest_tpm_pubkey,\n\t\t\t   TPM_PUBKEY
      *src_tpm_pubkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2817,1
    - Dst: TPM_KeyParms_GetExponent
      Src: /src/libtpms/src/tpm12/tpm_key.c:2819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ebytes
    - earr
    - tpm_pubkey
    argTypes:
    - uint32_t*
    - unsigned char**
    - TPM_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2822
      start: 2811
    functionDepth: 2
    functionLinenumber: 2811
    functionLinenumberEnd: 2822
    functionName: TPM_Pubkey_GetExponent
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_KeyParms_GetExponent
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Pubkey_GetExponent(uint32_t\t*ebytes,\n\t\t\t\t  unsigned
      char **earr,\n\t\t\t\t  TPM_PUBKEY\t*tpm_pubkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - nbytes
    - narr
    - tpm_pubkey
    argTypes:
    - uint32_t*
    - unsigned char**
    - TPM_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2839
      start: 2827
    functionDepth: 1
    functionLinenumber: 2827
    functionLinenumberEnd: 2839
    functionName: TPM_Pubkey_GetPublicKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Pubkey_GetPublicKey(uint32_t\t\t*nbytes,\n\t\t\t\t
      \  unsigned char\t**narr,\n\t\t\t\t   TPM_PUBKEY\t\t*tpm_pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2853,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tpm_rsa_key_parms
    argTypes:
    - TPM_RSA_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2858
      start: 2851
    functionDepth: 1
    functionLinenumber: 2851
    functionLinenumberEnd: 2858
    functionName: TPM_RSAKeyParms_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_SizedBuffer_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_RSAKeyParms_Init(TPM_RSA_KEY_PARMS *tpm_rsa_key_parms)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2871,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:2874,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:2878,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:2882,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tpm_rsa_key_parms
    - stream
    - stream_size
    argTypes:
    - TPM_RSA_KEY_PARMS*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2885
      start: 2865
    functionDepth: 3
    functionLinenumber: 2865
    functionLinenumberEnd: 2885
    functionName: TPM_RSAKeyParms_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Load32
    - TPM_SizedBuffer_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAKeyParms_Load(TPM_RSA_KEY_PARMS *tpm_rsa_key_parms,\t/*
      result */\n\t\t\t\tunsigned char **stream,\t\t/* pointer to next parameter */
      \n\t\t\t\tuint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2895,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_key.c:2898,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_key.c:2902,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:2906,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - tpm_rsa_key_parms
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_RSA_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2909
      start: 2890
    functionDepth: 2
    functionLinenumber: 2890
    functionLinenumberEnd: 2909
    functionName: TPM_RSAKeyParms_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    - TPM_SizedBuffer_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAKeyParms_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      const TPM_RSA_KEY_PARMS *tpm_rsa_key_parms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2918,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:2920,1
    - Dst: TPM_RSAKeyParms_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_rsa_key_parms
    argTypes:
    - TPM_RSA_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2924
      start: 2916
    functionDepth: 2
    functionLinenumber: 2916
    functionLinenumberEnd: 2924
    functionName: TPM_RSAKeyParms_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_SizedBuffer_Delete
    - printf
    - TPM_RSAKeyParms_Init
    linkageType: ''
    returnType: void
    signature: void TPM_RSAKeyParms_Delete(TPM_RSA_KEY_PARMS *tpm_rsa_key_parms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2936,1
    - Dst: TPM_SizedBuffer_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:2940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - tpm_rsa_key_parms_dest
    - tpm_rsa_key_parms_src
    argTypes:
    - TPM_RSA_KEY_PARMS*
    - TPM_RSA_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2944
      start: 2931
    functionDepth: 4
    functionLinenumber: 2931
    functionLinenumberEnd: 2944
    functionName: TPM_RSAKeyParms_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_SizedBuffer_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAKeyParms_Copy(TPM_RSA_KEY_PARMS *tpm_rsa_key_parms_dest,\n\t\t\t\tTPM_RSA_KEY_PARMS
      *tpm_rsa_key_parms_src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2952,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_key.c:2954,1
    - Dst: TPM_RSAKeyParms_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:2957,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tpm_rsa_key_parms
    argTypes:
    - TPM_RSA_KEY_PARMS**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2960
      start: 2948
    functionDepth: 2
    functionLinenumber: 2948
    functionLinenumberEnd: 2960
    functionName: TPM_RSAKeyParms_New
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 3
    functionsReached:
    - TPM_Malloc
    - printf
    - TPM_RSAKeyParms_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_RSAKeyParms_New(TPM_RSA_KEY_PARMS **tpm_rsa_key_parms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:2973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ebytes
    - earr
    - tpm_rsa_key_parms
    argTypes:
    - uint32_t*
    - unsigned char**
    - TPM_RSA_KEY_PARMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2983
      start: 2967
    functionDepth: 1
    functionLinenumber: 2967
    functionLinenumberEnd: 2983
    functionName: TPM_RSAKeyParms_GetExponent
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAKeyParms_GetExponent(uint32_t\t\t*ebytes,\n\t\t\t\t
      \      unsigned char\t**earr,\n\t\t\t\t       TPM_RSA_KEY_PARMS *tpm_rsa_key_parms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tpm_key_handle_entry
    argTypes:
    - TPM_KEY_HANDLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2999
      start: 2992
    functionDepth: 0
    functionLinenumber: 2992
    functionLinenumberEnd: 2999
    functionName: TPM_KeyHandleEntry_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TPM_KeyHandleEntry_Init(TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3017,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:3020,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_key.c:3024,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:3028,1
    - Dst: TPM_Key_LoadClear
      Src: /src/libtpms/src/tpm12/tpm_key.c:3029,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_key.c:3035,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:3039,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - tpm_key_handle_entry
    - stream
    - stream_size
    argTypes:
    - TPM_KEY_HANDLE_ENTRY*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3042
      start: 3011
    functionDepth: 3
    functionLinenumber: 3011
    functionLinenumberEnd: 3042
    functionName: TPM_KeyHandleEntry_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_Key_Init
    - TPM_LoadBool
    - TPM_Key_LoadClear
    - TPM_Malloc
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyHandleEntry_Load(TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entry,\n\t\t\t\t
      \  unsigned char **stream,\n\t\t\t\t   uint32_t *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3055,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_key.c:3058,1
    - Dst: TPM_Key_StoreClear
      Src: /src/libtpms/src/tpm12/tpm_key.c:3062,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_key.c:3068,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_key.c:3073,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_key_handle_entry
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_KEY_HANDLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3076
      start: 3050
    functionDepth: 7
    functionLinenumber: 3050
    functionLinenumberEnd: 3076
    functionName: TPM_KeyHandleEntry_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    - TPM_Sbuffer_Append
    - TPM_Key_StoreClear
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyHandleEntry_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \   const TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entry)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3086,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:3087,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_key.c:3088,1
    - Dst: TPM_KeyHandleEntry_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:3090,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tpm_key_handle_entry
    argTypes:
    - TPM_KEY_HANDLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3093
      start: 3082
    functionDepth: 4
    functionLinenumber: 3082
    functionLinenumberEnd: 3093
    functionName: TPM_KeyHandleEntry_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - TPM_Key_Delete
    - printf
    - free
    - TPM_KeyHandleEntry_Init
    linkageType: ''
    returnType: void
    signature: void TPM_KeyHandleEntry_Delete(TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3106,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3110,1
    - Dst: TPM_AuthSessions_TerminateEntity
      Src: /src/libtpms/src/tpm12/tpm_key.c:3118,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3124,1
    - Dst: TPM_KeyHandleEntry_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:3128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - tpm_state
    - tpm_key_handle_entry
    argTypes:
    - tpm_state_t*
    - TPM_KEY_HANDLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3131
      start: 3099
    functionDepth: 5
    functionLinenumber: 3099
    functionLinenumberEnd: 3131
    functionName: TPM_KeyHandleEntry_FlushSpecific
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_AuthSessions_TerminateEntity
    - TPM_KeyHandleEntry_Delete
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyHandleEntry_FlushSpecific(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \   TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entry)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3145,1
    - Dst: TPM_KeyHandleEntry_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:3147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_key_handle_entries
    argTypes:
    - TPM_KEY_HANDLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3150
      start: 3141
    functionDepth: 1
    functionLinenumber: 3141
    functionLinenumberEnd: 3150
    functionName: TPM_KeyHandleEntries_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_KeyHandleEntry_Init
    linkageType: ''
    returnType: void
    signature: void TPM_KeyHandleEntries_Init(TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3160,1
    - Dst: TPM_KeyHandleEntry_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:3162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_key_handle_entries
    argTypes:
    - TPM_KEY_HANDLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3165
      start: 3156
    functionDepth: 5
    functionLinenumber: 3156
    functionLinenumberEnd: 3165
    functionName: TPM_KeyHandleEntries_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_KeyHandleEntry_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_KeyHandleEntries_Delete(TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entries)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_key.c:3186,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:3190,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3191,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3196,1
    - Dst: TPM_KeyHandleEntry_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:3206,1
    - Dst: TPM_KeyHandleEntry_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:3207,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3210,1
    - Dst: TPM_KeyHandleEntries_AddEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:3215,1
    - Dst: TPM_KeyHandleEntry_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:3223,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - tpm_state
    - stream
    - stream_size
    argTypes:
    - tpm_state_t*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3227
      start: 3173
    functionDepth: 5
    functionLinenumber: 3173
    functionLinenumberEnd: 3227
    functionName: TPM_KeyHandleEntries_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_KeyHandleEntry_Load
    - TPM_KeyHandleEntry_Init
    - TPM_CheckTag
    - TPM_KeyHandleEntries_AddEntry
    - TPM_KeyHandleEntry_Delete
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyHandleEntries_Load(tpm_state_t *tpm_state,\n\t\t\t\t
      \    unsigned char **stream,\n\t\t\t\t     uint32_t *stream_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_key.c:3246,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3252,1
    - Dst: TPM_KeyHandleEntries_GetNextEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:3256,1
    - Dst: TPM_SaveState_IsSaveKey
      Src: /src/libtpms/src/tpm12/tpm_key.c:3260,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3268,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_key.c:3269,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3273,1
    - Dst: TPM_KeyHandleEntries_GetNextEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:3278,1
    - Dst: TPM_SaveState_IsSaveKey
      Src: /src/libtpms/src/tpm12/tpm_key.c:3282,1
    - Dst: TPM_KeyHandleEntry_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:3285,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - sbuffer
    - tpm_state
    argTypes:
    - TPM_STORE_BUFFER*
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3290
      start: 3235
    functionDepth: 8
    functionLinenumber: 3235
    functionLinenumberEnd: 3290
    functionName: TPM_KeyHandleEntries_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append16
    - TPM_SaveState_IsSaveKey
    - printf
    - TPM_KeyHandleEntry_Store
    - TPM_KeyHandleEntries_GetNextEntry
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyHandleEntries_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \     tpm_state_t *tpm_state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3312,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_key.c:3322,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_key.c:3326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - sbuffer
    - tpm_key_handle_entries
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_KEY_HANDLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3330
      start: 3306
    functionDepth: 1
    functionLinenumber: 3306
    functionLinenumberEnd: 3330
    functionName: TPM_KeyHandleEntries_StoreHandles
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyHandleEntries_StoreHandles(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t\t
      \    const TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entries)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3344,1
    - Dst: TPM_KeyHandleEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:3347,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3351,1
    - Dst: TPM_KeyHandleEntry_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:3357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - tpm_key_handle_entries
    - tpm_key_handle
    argTypes:
    - TPM_KEY_HANDLE_ENTRY*
    - TPM_KEY_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3360
      start: 3338
    functionDepth: 1
    functionLinenumber: 3338
    functionLinenumberEnd: 3360
    functionName: TPM_KeyHandleEntries_DeleteHandle
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_KeyHandleEntries_GetEntry
    - printf
    - TPM_KeyHandleEntry_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyHandleEntries_DeleteHandle(TPM_KEY_HANDLE_ENTRY
      *tpm_key_handle_entries,\n\t\t\t\t\t     TPM_KEY_HANDLE tpm_key_handle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3371,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - isSpace
    - index
    - tpm_key_handle_entries
    argTypes:
    - TPM_BOOL*
    - uint32_t*
    - TPM_KEY_HANDLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3367
    functionDepth: 1
    functionLinenumber: 3367
    functionLinenumberEnd: 3380
    functionName: TPM_KeyHandleEntries_IsSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_KeyHandleEntries_IsSpace(TPM_BOOL *isSpace,\n\t\t\t\t  uint32_t
      *index,\n\t\t\t\t  const TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entries)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - space
    - tpm_key_handle_entries
    argTypes:
    - uint32_t*
    - TPM_KEY_HANDLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3398
      start: 3386
    functionDepth: 1
    functionLinenumber: 3386
    functionLinenumberEnd: 3398
    functionName: TPM_KeyHandleEntries_GetSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_KeyHandleEntries_GetSpace(uint32_t *space,\n\t\t\t\t   const
      TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entries)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3421,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - isSpace
    - tpm_key_handle_entries
    - minSpace
    argTypes:
    - TPM_BOOL*
    - TPM_KEY_HANDLE_ENTRY*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3430
      start: 3404
    functionDepth: 1
    functionLinenumber: 3404
    functionLinenumberEnd: 3430
    functionName: TPM_KeyHandleEntries_IsEvictSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_KeyHandleEntries_IsEvictSpace(TPM_BOOL *isSpace,\n\t\t\t\t
      \      const TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entries,\n\t\t\t\t       uint32_t
      minSpace)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3449,1
    - Dst: TPM_KeyHandleEntries_AddEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:3453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - tpm_key_handle
    - tpm_key_handle_entries
    - tpm_key
    - parentPCRStatus
    - keyControl
    argTypes:
    - TPM_KEY_HANDLE*
    - TPM_KEY_HANDLE_ENTRY*
    - TPM_KEY*
    - TPM_BOOL
    - TPM_KEY_CONTROL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3458
      start: 3440
    functionDepth: 1
    functionLinenumber: 3440
    functionLinenumberEnd: 3458
    functionName: TPM_KeyHandleEntries_AddKeyEntry
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_KeyHandleEntries_AddEntry
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyHandleEntries_AddKeyEntry(TPM_KEY_HANDLE *tpm_key_handle,\t\t/*
      i/o */\n\t\t\t\t\t    TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entries, /* in */\n\t\t\t\t\t
      \   TPM_KEY *tpm_key,\n\t\t\t\t\t    TPM_BOOL parentPCRStatus,\n\t\t\t\t\t    TPM_KEY_CONTROL
      keyControl)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3485,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3490,1
    - Dst: TPM_KeyHandleEntries_IsSpace
      Src: /src/libtpms/src/tpm12/tpm_key.c:3496,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3498,1
    - Dst: TPM_Handle_GenerateHandle
      Src: /src/libtpms/src/tpm12/tpm_key.c:3503,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3514,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - tpm_key_handle
    - keepHandle
    - tpm_key_handle_entries
    - tpm_key_handle_entry
    argTypes:
    - TPM_KEY_HANDLE*
    - TPM_BOOL
    - TPM_KEY_HANDLE_ENTRY*
    - TPM_KEY_HANDLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3518
      start: 3475
    functionDepth: 2
    functionLinenumber: 3475
    functionLinenumberEnd: 3518
    functionName: TPM_KeyHandleEntries_AddEntry
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 3
    functionsReached:
    - TPM_Handle_GenerateHandle
    - TPM_KeyHandleEntries_IsSpace
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyHandleEntries_AddEntry(TPM_KEY_HANDLE *tpm_key_handle,\t\t/*
      i/o */\n\t\t\t\t\t TPM_BOOL keepHandle,\t\t\t\t/* input */\n\t\t\t\t\t TPM_KEY_HANDLE_ENTRY
      *tpm_key_handle_entries,\t/* input */\n\t\t\t\t\t TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entry)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3531,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3541,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3545,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - tpm_key_handle_entry
    - tpm_key_handle_entries
    - tpm_key_handle
    argTypes:
    - TPM_KEY_HANDLE_ENTRY**
    - TPM_KEY_HANDLE_ENTRY*
    - TPM_KEY_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3548
      start: 3523
    functionDepth: 1
    functionLinenumber: 3523
    functionLinenumberEnd: 3548
    functionName: TPM_KeyHandleEntries_GetEntry
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyHandleEntries_GetEntry(TPM_KEY_HANDLE_ENTRY **tpm_key_handle_entry,\n\t\t\t\t\t
      TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entries,\n\t\t\t\t\t TPM_KEY_HANDLE tpm_key_handle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - tpm_key_handle_entry
    - current
    - tpm_key_handle_entries
    - start
    argTypes:
    - TPM_KEY_HANDLE_ENTRY**
    - size_t*
    - TPM_KEY_HANDLE_ENTRY*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3578
      start: 3562
    functionDepth: 1
    functionLinenumber: 3562
    functionLinenumberEnd: 3578
    functionName: TPM_KeyHandleEntries_GetNextEntry
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyHandleEntries_GetNextEntry(TPM_KEY_HANDLE_ENTRY
      **tpm_key_handle_entry,\n\t\t\t\t\t     size_t *current,\n\t\t\t\t\t     TPM_KEY_HANDLE_ENTRY
      *tpm_key_handle_entries,\n\t\t\t\t\t     size_t start)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3607,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3618,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3626,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3633,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3648,1
    - Dst: TPM_KeyHandleEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:3659,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3663,1
    - Dst: TPM_Key_CheckPCRDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:3687,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 7
    argNames:
    - tpm_key
    - parentPCRStatus
    - tpm_state
    - tpm_key_handle
    - readOnly
    - ignorePCRs
    - allowEK
    argTypes:
    - TPM_KEY**
    - TPM_BOOL*
    - tpm_state_t*
    - TPM_KEY_HANDLE
    - TPM_BOOL
    - TPM_BOOL
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3691
      start: 3594
    functionDepth: 4
    functionLinenumber: 3594
    functionLinenumberEnd: 3691
    functionName: TPM_KeyHandleEntries_GetKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 11
    functionsReached:
    - TPM_KeyHandleEntries_GetEntry
    - printf
    - TPM_Key_CheckPCRDigest
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyHandleEntries_GetKey(TPM_KEY **tpm_key,\n\t\t\t\t
      \      TPM_BOOL *parentPCRStatus,\n\t\t\t\t       tpm_state_t *tpm_state,\n\t\t\t\t
      \      TPM_KEY_HANDLE tpm_key_handle,\n\t\t\t\t       TPM_BOOL readOnly,\n\t\t\t\t
      \      TPM_BOOL ignorePCRs,\n\t\t\t\t       TPM_BOOL allowEK)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3703,1
    - Dst: TPM_KeyHandleEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:3706,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3710,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tpm_key_handle_entries
    - tpm_key_handle
    - parentPCRStatus
    argTypes:
    - TPM_KEY_HANDLE_ENTRY*
    - TPM_KEY_HANDLE
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3718
      start: 3696
    functionDepth: 2
    functionLinenumber: 3696
    functionLinenumberEnd: 3718
    functionName: TPM_KeyHandleEntries_SetParentPCRStatus
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_KeyHandleEntries_GetEntry
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyHandleEntries_SetParentPCRStatus(TPM_KEY_HANDLE_ENTRY
      *tpm_key_handle_entries,\n\t\t\t\t\t\t   TPM_KEY_HANDLE tpm_key_handle,\n\t\t\t\t\t\t
      \  TPM_BOOL parentPCRStatus)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3734,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_key.c:3737,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3741,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_key.c:3749,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3754,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3761,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3767,1
    - Dst: TPM_KeyHandleEntry_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:3768,1
    - Dst: TPM_KeyHandleEntry_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:3770,1
    - Dst: TPM_KeyHandleEntries_AddEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:3774,1
    - Dst: TPM_KeyHandleEntry_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:3782,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - tpm_key_handle_entries
    - stream
    - stream_size
    argTypes:
    - TPM_KEY_HANDLE_ENTRY*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3786
      start: 3724
    functionDepth: 5
    functionLinenumber: 3724
    functionLinenumberEnd: 3786
    functionName: TPM_KeyHandleEntries_OwnerEvictLoad
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - TPM_KeyHandleEntry_Load
    - TPM_KeyHandleEntry_Init
    - TPM_KeyHandleEntry_Delete
    - TPM_KeyHandleEntries_AddEntry
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyHandleEntries_OwnerEvictLoad(TPM_KEY_HANDLE_ENTRY
      *tpm_key_handle_entries,\n\t\t\t\t\t       unsigned char **stream,\n\t\t\t\t\t
      \      uint32_t *stream_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3801,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_key.c:3804,1
    - Dst: TPM_KeyHandleEntries_OwnerEvictGetCount
      Src: /src/libtpms/src/tpm12/tpm_key.c:3808,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_key.c:3812,1
    - Dst: TPM_KeyHandleEntry_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:3820,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - sbuffer
    - tpm_key_handle_entries
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_KEY_HANDLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3825
      start: 3794
    functionDepth: 8
    functionLinenumber: 3794
    functionLinenumberEnd: 3825
    functionName: TPM_KeyHandleEntries_OwnerEvictStore
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_KeyHandleEntry_Store
    - TPM_KeyHandleEntries_OwnerEvictGetCount
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyHandleEntries_OwnerEvictStore(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t\t\tconst
      TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entries)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3837,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3849,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3854,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - count
    - tpm_key_handle_entries
    argTypes:
    - uint16_t*
    - TPM_KEY_HANDLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3860
      start: 3830
    functionDepth: 1
    functionLinenumber: 3830
    functionLinenumberEnd: 3860
    functionName: TPM_KeyHandleEntries_OwnerEvictGetCount
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_KeyHandleEntries_OwnerEvictGetCount(uint16_t *count,\n\t\t\t\t\tconst
      TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entries)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_KeyHandleEntry_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:3875,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - tpm_key_handle_entries
    argTypes:
    - TPM_KEY_HANDLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3880
      start: 3866
    functionDepth: 5
    functionLinenumber: 3866
    functionLinenumberEnd: 3880
    functionName: TPM_KeyHandleEntries_OwnerEvictDelete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_KeyHandleEntry_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_KeyHandleEntries_OwnerEvictDelete(TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entries)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3927,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:3928,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:3936,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:3939,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:3945,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_key.c:3957,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_key.c:3961,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3965,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3975,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3978,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:3985,1
    - Dst: TPM_Key_StorePubkey
      Src: /src/libtpms/src/tpm12/tpm_key.c:3994,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4000,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_key.c:4003,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4018,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4020,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_key.c:4029,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:4035,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4041,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_key.c:4052,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4059,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:4064,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4066
      start: 3895
    functionDepth: 3
    functionLinenumber: 3895
    functionLinenumberEnd: 4066
    functionName: TPM_Process_ReadPubek
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_GetInParamDigest
    - TPM_SHA1
    - TPM_PrintFour
    - TPM_Sbuffer_Append
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Nonce_Load
    - TPM_Sbuffer_Delete
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_Key_StorePubkey
    - TPM_Digest_Store
    - TPM_Sbuffer_Init
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ReadPubek(tpm_state_t *tpm_state,\n\t\t\t\t
      TPM_STORE_BUFFER *response,\n\t\t\t\t TPM_TAG tag,\n\t\t\t\t uint32_t paramSize,\t\t/*
      of remaining parameters*/\n\t\t\t\t TPM_COMMAND_CODE ordinal,\n\t\t\t\t unsigned
      char *command,\n\t\t\t\t TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4114,1
    - Dst: TPM_KeyParms_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:4118,1
    - Dst: TPM_Pubkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:4119,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:4127,1
    - Dst: TPM_KeyParms_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:4131,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_key.c:4135,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4139,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:4142,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:4145,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4151,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_key.c:4163,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_key.c:4167,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4171,1
    - Dst: TPM_CreateEndorsementKeyPair_Common
      Src: /src/libtpms/src/tpm12/tpm_key.c:4182,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_key.c:4192,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_key.c:4198,1
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:4203,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_key.c:4207,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4215,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4217,1
    - Dst: TPM_Pubkey_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:4226,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:4230,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:4239,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4245,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_key.c:4256,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4263,1
    - Dst: TPM_KeyParms_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:4268,1
    - Dst: TPM_Pubkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:4269,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 77
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4271
      start: 4075
    functionDepth: 7
    functionLinenumber: 4075
    functionLinenumberEnd: 4271
    functionName: TPM_Process_CreateRevocableEK
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Nonce_Generate
    - TPM_Nonce_Store
    - TPM_SetCapability_Flag
    - TPM_GetInParamDigest
    - TPM_LoadBool
    - TPM_Pubkey_Init
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_GetOutParamDigest
    - TPM_Nonce_Copy
    - TPM_KeyParms_Init
    - TPM_PrintFour
    - TPM_CheckRequestTag0
    - printf
    - TPM_CreateEndorsementKeyPair_Common
    - TPM_Pubkey_Store
    - TPM_Digest_Store
    - TPM_ProcessAudit
    - TPM_KeyParms_Delete
    - TPM_KeyParms_Load
    - TPM_Nonce_Load
    - TPM_Pubkey_Delete
    - TPM_CheckState
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_CreateRevocableEK(tpm_state_t *tpm_state,\n\t\t\t\t\t
      TPM_STORE_BUFFER *response,\n\t\t\t\t\t TPM_TAG tag,\n\t\t\t\t\t uint32_t paramSize,\n\t\t\t\t\t
      TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t unsigned char *command,\n\t\t\t\t\t TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4312,1
    - Dst: TPM_KeyParms_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:4316,1
    - Dst: TPM_Pubkey_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:4317,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:4325,1
    - Dst: TPM_KeyParms_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:4329,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4335,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_key.c:4347,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_key.c:4351,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4355,1
    - Dst: TPM_CreateEndorsementKeyPair_Common
      Src: /src/libtpms/src/tpm12/tpm_key.c:4364,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_key.c:4374,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_key.c:4379,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4387,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4389,1
    - Dst: TPM_Pubkey_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:4397,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:4401,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4407,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_key.c:4418,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4425,1
    - Dst: TPM_KeyParms_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:4430,1
    - Dst: TPM_Pubkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:4431,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4433
      start: 4279
    functionDepth: 7
    functionLinenumber: 4279
    functionLinenumberEnd: 4433
    functionName: TPM_Process_CreateEndorsementKeyPair
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_SetCapability_Flag
    - TPM_GetInParamDigest
    - TPM_Pubkey_Init
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_GetOutParamDigest
    - TPM_KeyParms_Init
    - TPM_CheckRequestTag0
    - printf
    - TPM_CreateEndorsementKeyPair_Common
    - TPM_Pubkey_Store
    - TPM_Digest_Store
    - TPM_ProcessAudit
    - TPM_KeyParms_Delete
    - TPM_KeyParms_Load
    - TPM_Nonce_Load
    - TPM_Pubkey_Delete
    - TPM_CheckState
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_CreateEndorsementKeyPair(tpm_state_t *tpm_state,\n\t\t\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\t\t\tTPM_TAG tag,\n\t\t\t\t\t\tuint32_t paramSize,\t/* of
      remaining parameters*/\n\t\t\t\t\t\tTPM_COMMAND_CODE ordinal,\n\t\t\t\t\t\tunsigned
      char *command,\n\t\t\t\t\t\tTPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4456,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:4457,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4461,1
    - Dst: TPM_KeyParms_GetRSAKeyParms
      Src: /src/libtpms/src/tpm12/tpm_key.c:4475,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4480,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4489,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4503,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4525,1
    - Dst: TPM_Key_GenerateRSA
      Src: /src/libtpms/src/tpm12/tpm_key.c:4532,1
    - Dst: TPM_KeyParms_Copy
      Src: /src/libtpms/src/tpm12/tpm_key.c:4548,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:4553,1
    - Dst: TPM_Pubkey_Store
      Src: /src/libtpms/src/tpm12/tpm_key.c:4561,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_key.c:4565,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_key.c:4568,1
    - Dst: TPM_PermanentData_InitDaa
      Src: /src/libtpms/src/tpm12/tpm_key.c:4579,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:4588,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 7
    argNames:
    - endorsementKey
    - pubEndorsementKey
    - checksum
    - writePermanentData
    - tpm_state
    - keyInfo
    - antiReplay
    argTypes:
    - TPM_KEY*
    - TPM_PUBKEY*
    - TPM_DIGEST
    - TPM_BOOL*
    - tpm_state_t*
    - TPM_KEY_PARMS*
    - TPM_NONCE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4590
      start: 4442
    functionDepth: 7
    functionLinenumber: 4442
    functionLinenumberEnd: 4590
    functionName: TPM_CreateEndorsementKeyPair_Common
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 3
    functionsReached:
    - TPM_SHA1
    - TPM_PermanentData_InitDaa
    - TPM_Sbuffer_Get
    - TPM_KeyParms_GetRSAKeyParms
    - TPM_Sbuffer_Delete
    - TPM_KeyParms_Copy
    - TPM_Key_GenerateRSA
    - printf
    - TPM_SizedBuffer_Set
    - TPM_Pubkey_Store
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CreateEndorsementKeyPair_Common(TPM_KEY *endorsementKey,\t\t/*
      output */\n\t\t\t\t\t       TPM_PUBKEY *pubEndorsementKey,\t/* output */\n\t\t\t\t\t
      \      TPM_DIGEST checksum,\t\t/* output */\n\t\t\t\t\t       TPM_BOOL *writePermanentData,\t/*
      output */\n\t\t\t\t\t       tpm_state_t *tpm_state,\t\t/* input */\n\t\t\t\t\t
      \      TPM_KEY_PARMS *keyInfo,\t\t/* input */\n\t\t\t\t\t       TPM_NONCE antiReplay)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4630,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_key.c:4638,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_key.c:4641,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4647,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_key.c:4659,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_key.c:4663,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4667,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4679,1
    - Dst: TPM_Nonce_Compare
      Src: /src/libtpms/src/tpm12/tpm_key.c:4686,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4688,1
    - Dst: TPM_Global_GetPhysicalPresence
      Src: /src/libtpms/src/tpm12/tpm_key.c:4694,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4698,1
    - Dst: TPM_OwnerClearCommon
      Src: /src/libtpms/src/tpm12/tpm_key.c:4706,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_key.c:4712,1
    - Dst: TPM_PermanentData_InitDaa
      Src: /src/libtpms/src/tpm12/tpm_key.c:4718,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4722,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:4723,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_key.c:4724,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_key.c:4729,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4737,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4739,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4751,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_key.c:4762,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4769,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 79
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4775
      start: 4599
    functionDepth: 4
    functionLinenumber: 4599
    functionLinenumberEnd: 4775
    functionName: TPM_Process_RevokeTrust
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_SetCapability_Flag
    - TPM_GetInParamDigest
    - TPM_PermanentData_InitDaa
    - TPM_Nonce_Compare
    - TPM_PrintFour
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Global_GetPhysicalPresence
    - TPM_OwnerClearCommon
    - TPM_Nonce_Load
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Key_Delete
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_RevokeTrust(tpm_state_t *tpm_state,\n\t\t\t\t
      \  TPM_STORE_BUFFER *response,\n\t\t\t\t   TPM_TAG tag,\n\t\t\t\t   uint32_t
      paramSize,\t\t/* of remaining parameters*/\n\t\t\t\t   TPM_COMMAND_CODE ordinal,\n\t\t\t\t
      \  unsigned char *command,\n\t\t\t\t   TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4821,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4831,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_key.c:4843,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_key.c:4847,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_key.c:4851,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4860,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_key.c:4875,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_key.c:4887,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_key.c:4898,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4901,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_key.c:4904,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:4913,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4915,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:4927,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:4939,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_key.c:4948,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:4955,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_key.c:4962,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4965
      start: 4786
    functionDepth: 1
    functionLinenumber: 4786
    functionLinenumberEnd: 4965
    functionName: TPM_Process_DisablePubekRead
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_SetCapability_Flag
    - TPM_GetInParamDigest
    - TPM_CheckRequestTag1
    - TPM_AuthParams_Set
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthParams_Get
    - TPM_CheckState
    - printf
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    - TPM_AuthSessions_GetData
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_DisablePubekRead(tpm_state_t *tpm_state,\n\t\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\t\tTPM_TAG tag,\n\t\t\t\t\tuint32_t paramSize,\t\t/* of remaining
      parameters*/\n\t\t\t\t\tTPM_COMMAND_CODE ordinal,\n\t\t\t\t\tunsigned char *command,\n\t\t\t\t\tTPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5009,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_key.c:5010,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:5020,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_key.c:5032,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_key.c:5036,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_key.c:5040,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5049,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_key.c:5063,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_key.c:5075,1
    - Dst: TPM_Key_StorePubkey
      Src: /src/libtpms/src/tpm12/tpm_key.c:5087,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5097,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:5099,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_key.c:5108,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:5117,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:5129,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_key.c:5138,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:5145,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_key.c:5152,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_key.c:5157,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5159
      start: 4972
    functionDepth: 3
    functionLinenumber: 4972
    functionLinenumberEnd: 5159
    functionName: TPM_Process_OwnerReadPubek
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_AuthParams_Set
    - TPM_GetInParamDigest
    - TPM_CheckRequestTag1
    - TPM_Sbuffer_Append
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_Sbuffer_Delete
    - TPM_AuthParams_Get
    - TPM_CheckState
    - printf
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Key_StorePubkey
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_OwnerReadPubek(tpm_state_t *tpm_state,\n\t\t\t\t
      \     TPM_STORE_BUFFER *response,\n\t\t\t\t      TPM_TAG tag,\n\t\t\t\t      uint32_t
      paramSize,\t\t/* of remaining parameters*/\n\t\t\t\t      TPM_COMMAND_CODE ordinal,\n\t\t\t\t
      \     unsigned char *command,\n\t\t\t\t      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5199,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:5205,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:5213,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_key.c:5225,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_key.c:5229,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5233,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5248,1
    - Dst: TPM_KeyHandleEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_key.c:5249,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5253,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5260,1
    - Dst: TPM_KeyHandleEntry_FlushSpecific
      Src: /src/libtpms/src/tpm12/tpm_key.c:5266,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5273,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:5275,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:5287,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_key.c:5298,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:5305,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5308
      start: 5172
    functionDepth: 6
    functionLinenumber: 5172
    functionLinenumberEnd: 5308
    functionName: TPM_Process_EvictKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_KeyHandleEntries_GetEntry
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_GetOutParamDigest
    - TPM_KeyHandleEntry_FlushSpecific
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_EvictKey(tpm_state_t *tpm_state,\n\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\tTPM_TAG tag,\n\t\t\t\tuint32_t paramSize,\t\t/* of remaining
      parameters*/\n\t\t\t\tTPM_COMMAND_CODE ordinal,\n\t\t\t\tunsigned char *command,\n\t\t\t\tTPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5359,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_key.c:5370,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5373,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:5379,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_key.c:5391,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_key.c:5395,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_key.c:5399,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5408,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_key.c:5422,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_key.c:5434,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5447,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5453,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5458,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_key.c:5468,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:5470,1
    - Dst: TPM_Key_StorePubkey
      Src: /src/libtpms/src/tpm12/tpm_key.c:5479,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_key.c:5486,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_key.c:5498,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_key.c:5507,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_key.c:5514,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_key.c:5521,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 77
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5527
      start: 5320
    functionDepth: 3
    functionLinenumber: 5320
    functionLinenumberEnd: 5527
    functionName: TPM_Process_OwnerReadInternalPub
    functionSourceFile: /src/libtpms/src/tpm12/tpm_key.c
    functionUses: 0
    functionsReached:
    - TPM_AuthParams_Set
    - TPM_GetInParamDigest
    - TPM_CheckRequestTag1
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthParams_Get
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_Authdata_Check
    - TPM_Key_StorePubkey
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    - TPM_AuthSessions_GetData
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_OwnerReadInternalPub(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \   TPM_STORE_BUFFER *response,\n\t\t\t\t\t    TPM_TAG tag,\n\t\t\t\t\t    uint32_t
      paramSize,\t     /* of remaining parameters */\n\t\t\t\t\t    TPM_COMMAND_CODE
      ordinal,\n\t\t\t\t\t    unsigned char *command,\n\t\t\t\t\t    TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:69,1
    - Dst: EVP_PKEY_new
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:76,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:78,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:83,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:86,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:90,1
    - Dst: RSA_new
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:94,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:96,1
    - Dst: RSA_set0_key
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:101,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:103,1
    - Dst: RSA_set_flags
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:112,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:113,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:115,1
    - Dst: EVP_PKEY_free
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:123,1
    - Dst: RSA_free
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:125,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:126,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:127,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm12/tpm_openssl_helpers.c:128,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 7
    argNames:
    - pkey
    - narr
    - nbytes
    - earr
    - ebytes
    - darr
    - dbytes
    argTypes:
    - EVP_PKEY**
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 132
    functionName: TPM_RSAGenerateEVP_PKEY
    functionSourceFile: /src/libtpms/src/tpm12/tpm_openssl_helpers.c
    functionUses: 2
    functionsReached:
    - RSA_free
    - RSA_set_flags
    - BN_free
    - RSA_set0_key
    - RSA_new
    - BN_clear_free
    - EVP_PKEY_assign_RSA
    - printf
    - TPM_bin2bn
    - EVP_PKEY_free
    - EVP_PKEY_new
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAGenerateEVP_PKEY(EVP_PKEY **pkey,              /*
      out: pkey */\n\t\t\t\t   unsigned char *narr,      /* public modulus */\n\t\t\t\t
      \  uint32_t nbytes,\n\t\t\t\t   unsigned char *earr,      /* public exponent
      */\n\t\t\t\t   uint32_t ebytes,\n\t\t\t\t   unsigned char *darr,\t/* private
      exponent */\n\t\t\t\t   uint32_t dbytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:92,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_auth.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tpm_authdata
    argTypes:
    - TPM_AUTHDATA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: TPM_Authdata_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - printf
    - memset
    linkageType: ''
    returnType: void
    signature: void TPM_Authdata_Init(TPM_AUTHDATA tpm_authdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:111,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:116,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_auth.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - tpm_authdata
    - stream
    - stream_size
    argTypes:
    - TPM_AUTHDATA
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 127
    functionName: TPM_Authdata_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 1
    functionsReached:
    - printf
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Authdata_Load(TPM_AUTHDATA tpm_authdata,\n\t\t\t     unsigned
      char **stream,\n\t\t\t     uint32_t *stream_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:142,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_auth.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sbuffer
    - tpm_authdata
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_AUTHDATA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: TPM_Authdata_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Authdata_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t      const
      TPM_AUTHDATA tpm_authdata)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:166,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_auth.c:169,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_auth.c:173,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_auth.c:177,1
    - Dst: TPM_Authdata_Load
      Src: /src/libtpms/src/tpm12/tpm_auth.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 7
    argNames:
    - authHandle
    - authHandleValid
    - nonceOdd
    - continueAuthSession
    - authData
    - command
    - paramSize
    argTypes:
    - TPM_AUTHHANDLE*
    - TPM_BOOL*
    - TPM_NONCE
    - TPM_BOOL*
    - TPM_AUTHDATA
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 187
    functionName: TPM_AuthParams_Get
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 28
    functionsReached:
    - TPM_LoadBool
    - TPM_Nonce_Load
    - printf
    - TPM_Load32
    - TPM_Authdata_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuthParams_Get(TPM_AUTHHANDLE *authHandle,\t/* The
      authorization handle used for\n\t\t\t\t\t\t\t\t   this command */\n\t\t\t      TPM_BOOL
      *authHandleValid,\n\t\t\t      TPM_NONCE nonceOdd,\t/* Nonce generated by system
      associated with\n\t\t\t\t\t\t\t   authHandle */\n\t\t\t      TPM_BOOL *continueAuthSession,\t/*
      The continue use flag for the\n\t\t\t\t\t\t\t\t   authorization handle */\n\t\t\t
      \     TPM_AUTHDATA authData,\t/* Authorization digest for input params. */\n\t\t\t
      \     unsigned char **command,\t/* parameter stream */\n\t\t\t      uint32_t
      *paramSize)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:205,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_auth.c:208,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_auth.c:212,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_auth.c:216,1
    - Dst: TPM_Authdata_Generate
      Src: /src/libtpms/src/tpm12/tpm_auth.c:220,1
    - Dst: TPM_Authdata_Store
      Src: /src/libtpms/src/tpm12/tpm_auth.c:229,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 6
    argNames:
    - response
    - hmacKey
    - auth_session_data
    - outParamDigest
    - nonceOdd
    - continueAuthSession
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_SECRET
    - TPM_AUTH_SESSION_DATA*
    - TPM_DIGEST
    - TPM_NONCE
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 232
    functionName: TPM_AuthParams_Set
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 27
    functionsReached:
    - TPM_Nonce_Store
    - TPM_Authdata_Store
    - TPM_Nonce_Generate
    - TPM_Authdata_Generate
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuthParams_Set(TPM_STORE_BUFFER *response,\n\t\t\t
      \     TPM_SECRET hmacKey,\t\t\t/* HMAC key */\n\t\t\t      TPM_AUTH_SESSION_DATA
      *auth_session_data, /* session data for\n\t\t\t\t\t\t\t\t\t   authHandle */\n\t\t\t
      \     TPM_DIGEST outParamDigest,\n\t\t\t      TPM_NONCE nonceOdd,\t\t/* Nonce
      generated by system\n\t\t\t\t\t\t\t\t   associated with authHandle */\n\t\t\t
      \     TPM_BOOL continueAuthSession)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:244,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_auth.c:246,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_auth.c:247,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_auth.c:248,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_auth.c:249,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:250,1
    - Dst: TPM_HMAC_Generate
      Src: /src/libtpms/src/tpm12/tpm_auth.c:251,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_auth.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - resAuth
    - usageAuth
    - outParamDigest
    - nonceEven
    - nonceOdd
    - continueSession
    argTypes:
    - TPM_AUTHDATA
    - TPM_SECRET
    - TPM_DIGEST
    - TPM_NONCE
    - TPM_NONCE
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 261
    functionName: TPM_Authdata_Generate
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 2
    functionsReached:
    - TPM_PrintFour
    - TPM_HMAC_Generate
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Authdata_Generate(TPM_AUTHDATA resAuth,\t\t/* result
      */\n\t\t\t\t TPM_SECRET usageAuth,\t\t/* HMAC key */\n\t\t\t\t TPM_DIGEST outParamDigest,
      /* digest of outputs above double\n\t\t\t\t\t\t\t       line */\n\t\t\t\t TPM_NONCE
      nonceEven,\n\t\t\t\t TPM_NONCE nonceOdd,\n\t\t\t\t TPM_BOOL continueSession)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:282,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_auth.c:284,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_auth.c:285,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_auth.c:286,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_auth.c:287,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:288,1
    - Dst: TPM_HMAC_Check
      Src: /src/libtpms/src/tpm12/tpm_auth.c:291,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:302,1
    - Dst: TPM_Authdata_Fail
      Src: /src/libtpms/src/tpm12/tpm_auth.c:304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 7
    argNames:
    - tpm_state
    - hmacKey
    - inParamDigest
    - tpm_auth_session_data
    - nonceOdd
    - continueSession
    - usageAuth
    argTypes:
    - tpm_state_t*
    - TPM_SECRET
    - TPM_DIGEST
    - TPM_AUTH_SESSION_DATA*
    - TPM_NONCE
    - TPM_BOOL
    - TPM_AUTHDATA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 312
    functionName: TPM_Authdata_Check
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 27
    functionsReached:
    - TPM_HMAC_Check
    - TPM_PrintFour
    - printf
    - TPM_Authdata_Fail
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Authdata_Check(tpm_state_t\t*tpm_state,\n\t\t\t      TPM_SECRET\thmacKey,\t/*
      HMAC key */\n\t\t\t      TPM_DIGEST\tinParamDigest,\t/* digest of inputs above
      line */\n\t\t\t      TPM_AUTH_SESSION_DATA *tpm_auth_session_data,\t/* auth
      session */\n\t\t\t      TPM_NONCE\t\tnonceOdd,\t/* Nonce generated by system\n\t\t\t\t\t\t\t\t
      \  associated with authHandle */\n\t\t\t      TPM_BOOL\t\tcontinueSession,\n\t\t\t
      \     TPM_AUTHDATA\tusageAuth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_auth.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - tpm_state
    - hmacKey
    - inParamDigest
    - tpm_auth_session_data
    - nonceOdd
    - continueSession
    - usageAuth
    argTypes:
    - tpm_state_t*
    - TPM_SECRET
    - TPM_DIGEST
    - TPM_AUTH_SESSION_DATA*
    - TPM_NONCE
    - TPM_BOOL
    - TPM_AUTHDATA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 318
    functionDepth: 4
    functionLinenumber: 318
    functionLinenumberEnd: 340
    functionName: TPM_Auth2data_Check
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 1
    functionsReached:
    - TPM_Authdata_Check
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Auth2data_Check(tpm_state_t\t*tpm_state,\n\t\t\t       TPM_SECRET\thmacKey,\t/*
      HMAC key */\n\t\t\t       TPM_DIGEST\tinParamDigest,\t/* digest of inputs above
      line */\n\t\t\t       TPM_AUTH_SESSION_DATA *tpm_auth_session_data,\t/* auth
      session */\n\t\t\t       TPM_NONCE\tnonceOdd,\t/* Nonce generated by system\n\t\t\t\t\t\t\t\t
      \  associated with authHandle */\n\t\t\t       TPM_BOOL\t\tcontinueSession,\n\t\t\t
      \      TPM_AUTHDATA\tusageAuth)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:356,1
    - Dst: TPM_GetTimeOfDay
      Src: /src/libtpms/src/tpm12/tpm_auth.c:369,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 375
    functionName: TPM_Authdata_Fail
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 1
    functionsReached:
    - TPM_GetTimeOfDay
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Authdata_Fail(tpm_state_t *tpm_state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:392,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:397,1
    - Dst: TPM_GetTimeOfDay
      Src: /src/libtpms/src/tpm12/tpm_auth.c:403,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:407,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:425,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:428,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - state
    - timeLeft
    - tpm_state
    argTypes:
    - TPM_DA_STATE*
    - uint32_t*
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 435
    functionName: TPM_Authdata_GetState
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - TPM_GetTimeOfDay
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Authdata_GetState(TPM_DA_STATE *state,\n\t\t\t\t uint32_t
      *timeLeft,\n\t\t\t\t tpm_state_t *tpm_state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:450,1
    - Dst: TPM_Authdata_GetState
      Src: /src/libtpms/src/tpm12/tpm_auth.c:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 465
    functionName: TPM_Authdata_CheckState
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Authdata_GetState
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Authdata_CheckState(tpm_state_t *tpm_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:480,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:481,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpm_changeauth_validate
    argTypes:
    - TPM_CHANGEAUTH_VALIDATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 484
    functionName: TPM_ChangeauthValidate_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - TPM_Nonce_Init
    - TPM_Secret_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_ChangeauthValidate_Init(TPM_CHANGEAUTH_VALIDATE *tpm_changeauth_validate)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:502,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_auth.c:505,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_auth.c:509,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tpm_changeauth_validate
    - stream
    - stream_size
    argTypes:
    - TPM_CHANGEAUTH_VALIDATE*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 512
    functionName: TPM_ChangeauthValidate_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - TPM_Secret_Load
    - printf
    - TPM_Nonce_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ChangeauthValidate_Load(TPM_CHANGEAUTH_VALIDATE *tpm_changeauth_validate,\n\t\t\t\t
      \      unsigned char **stream,\n\t\t\t\t       uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:526,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_auth.c:529,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_auth.c:533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sbuffer
    - tpm_changeauth_validate
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_CHANGEAUTH_VALIDATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 536
    functionName: TPM_ChangeauthValidate_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Secret_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ChangeauthValidate_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t\tconst
      TPM_CHANGEAUTH_VALIDATE *tpm_changeauth_validate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:550,1
    - Dst: TPM_ChangeauthValidate_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_changeauth_validate
    argTypes:
    - TPM_CHANGEAUTH_VALIDATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 555
    functionName: TPM_ChangeauthValidate_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_ChangeauthValidate_Init
    linkageType: ''
    returnType: void
    signature: void TPM_ChangeauthValidate_Delete(TPM_CHANGEAUTH_VALIDATE *tpm_changeauth_validate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:570,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tpm_da_info
    argTypes:
    - TPM_DA_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 581
    functionName: TPM_DaInfo_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_DaInfo_Init(TPM_DA_INFO *tpm_da_info)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:594,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_auth.c:597,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_auth.c:601,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_auth.c:605,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_auth.c:609,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_auth.c:615,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_auth.c:619,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_auth.c:623,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_auth.c:627,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - sbuffer
    - tpm_da_info
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DA_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 630
    functionName: TPM_DaInfo_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append16
    - TPM_SizedBuffer_Store
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DaInfo_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t    const
      TPM_DA_INFO *tpm_da_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:643,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_auth.c:645,1
    - Dst: TPM_DaInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_da_info
    argTypes:
    - TPM_DA_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 649
    functionName: TPM_DaInfo_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Delete
    - printf
    - TPM_DaInfo_Init
    linkageType: ''
    returnType: void
    signature: void TPM_DaInfo_Delete(TPM_DA_INFO *tpm_da_info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:662,1
    - Dst: TPM_Authdata_GetState
      Src: /src/libtpms/src/tpm12/tpm_auth.c:668,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - tpm_da_info
    - tpm_state
    argTypes:
    - TPM_DA_INFO*
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 686
    functionName: TPM_DaInfo_Set
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Authdata_GetState
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DaInfo_Set(TPM_DA_INFO *tpm_da_info,\n\t\t\t  tpm_state_t
      *tpm_state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:701,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tpm_da_info_limited
    argTypes:
    - TPM_DA_INFO_LIMITED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 709
    functionName: TPM_DaInfoLimited_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_DaInfoLimited_Init(TPM_DA_INFO_LIMITED *tpm_da_info_limited)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:722,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_auth.c:725,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_auth.c:729,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_auth.c:735,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_auth.c:739,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_auth.c:743,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - sbuffer
    - tpm_da_info_limited
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DA_INFO_LIMITED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 746
    functionName: TPM_DaInfoLimited_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append16
    - TPM_SizedBuffer_Store
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DaInfoLimited_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \  const TPM_DA_INFO_LIMITED *tpm_da_info_limited)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:759,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_auth.c:761,1
    - Dst: TPM_DaInfoLimited_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_da_info_limited
    argTypes:
    - TPM_DA_INFO_LIMITED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 757
    functionDepth: 2
    functionLinenumber: 757
    functionLinenumberEnd: 765
    functionName: TPM_DaInfoLimited_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Delete
    - TPM_DaInfoLimited_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_DaInfoLimited_Delete(TPM_DA_INFO_LIMITED *tpm_da_info_limited)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:779,1
    - Dst: TPM_Authdata_GetState
      Src: /src/libtpms/src/tpm12/tpm_auth.c:782,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tpm_da_info_limited
    - tpm_state
    argTypes:
    - TPM_DA_INFO_LIMITED*
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 773
    functionDepth: 2
    functionLinenumber: 773
    functionLinenumberEnd: 785
    functionName: TPM_DaInfoLimited_Set
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Authdata_GetState
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DaInfoLimited_Set(TPM_DA_INFO_LIMITED *tpm_da_info_limited,\n\t\t\t\t
      tpm_state_t *tpm_state)"
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:879,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:880,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:881,1
    - Dst: TPM_StoreAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:883,1
    - Dst: TPM_SealedData_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:884,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_auth.c:890,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:896,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_auth.c:897,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:901,1
    - Dst: TPM_Authdata_Load
      Src: /src/libtpms/src/tpm12/tpm_auth.c:902,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_auth.c:906,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_auth.c:910,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:913,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_auth.c:919,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_auth.c:931,1
    - Dst: TPM_CheckRequestTag2
      Src: /src/libtpms/src/tpm12/tpm_auth.c:935,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_auth.c:939,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:948,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_auth.c:949,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:957,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:961,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:984,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_auth.c:991,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_auth.c:999,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1014,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1028,1
    - Dst: TPM_AuthSessionData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1038,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1049,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1062,1
    - Dst: TPM_RSAPrivateDecryptMalloc
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1070,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1078,1
    - Dst: TPM_StoreAsymkey_Load
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1084,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1093,1
    - Dst: TPM_Auth2data_Check
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1097,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1108,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1109,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1110,1
    - Dst: TPM_StoreAsymkey_GenerateEncData
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1115,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1119,1
    - Dst: TPM_SealedData_Load
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1125,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1128,1
    - Dst: TPM_Secret_Compare
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1129,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1136,1
    - Dst: TPM_Auth2data_Check
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1140,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1151,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1152,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1153,1
    - Dst: TPM_SealedData_GenerateEncData
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1158,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1172,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1174,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1182,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1188,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1199,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1207,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1216,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1223,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1228,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1231,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1236,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1237,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1238,1
    - Dst: TPM_StoreAsymkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1239,1
    - Dst: TPM_SealedData_Delete
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1240,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 178
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 814
    functionDepth: 5
    functionLinenumber: 814
    functionLinenumberEnd: 1242
    functionName: TPM_Process_ChangeAuth
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - TPM_StoreAsymkey_Init
    - TPM_CheckRequestTag2
    - TPM_Secret_Copy
    - TPM_StoreAsymkey_GenerateEncData
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_RSAPrivateDecryptMalloc
    - TPM_SizedBuffer_Store
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthSessionData_Decrypt
    - TPM_Auth2data_Check
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_StoreAsymkey_Load
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Authdata_Load
    - TPM_SealedData_Delete
    - TPM_Load16
    - TPM_SizedBuffer_Init
    - TPM_StoreAsymkey_Delete
    - TPM_SizedBuffer_Delete
    - TPM_PrintFour
    - TPM_SealedData_GenerateEncData
    - TPM_SealedData_Load
    - printf
    - TPM_Secret_Compare
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_SealedData_Init
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ChangeAuth(tpm_state_t *tpm_state,\n\t\t\t\t
      \ TPM_STORE_BUFFER *response,\n\t\t\t\t  TPM_TAG tag,\n\t\t\t\t  uint32_t paramSize,\n\t\t\t\t
      \ TPM_COMMAND_CODE ordinal,\n\t\t\t\t  unsigned char *command,\n\t\t\t\t  TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1297,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1305,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1309,1
    - Dst: TPM_Authdata_Load
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1310,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1314,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1320,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1332,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1336,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1340,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1349,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1364,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1376,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1388,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1396,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1400,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1405,1
    - Dst: TPM_AuthSessionData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1412,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1421,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1422,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1428,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1430,1
    - Dst: TPM_AuthSessions_TerminateEntity
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1433,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1440,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1449,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1451,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1463,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1474,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1483,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1490,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1497,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 97
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1255
    functionDepth: 4
    functionLinenumber: 1255
    functionLinenumberEnd: 1503
    functionName: TPM_Process_ChangeAuthOwner
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_CheckRequestTag1
    - TPM_Secret_Copy
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateEntity
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthSessionData_Decrypt
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Authdata_Load
    - TPM_Load16
    - TPM_PrintFour
    - printf
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_AuthParams_Get
    - TPM_CheckState
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ChangeAuthOwner(tpm_state_t *tpm_state,\n\t\t\t\t
      \      TPM_STORE_BUFFER *response,\n\t\t\t\t       TPM_TAG tag,\n\t\t\t\t       uint32_t
      paramSize,\n\t\t\t\t       TPM_COMMAND_CODE ordinal,\n\t\t\t\t       unsigned
      char *command,\n\t\t\t\t       TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1579,1
    - Dst: TPM_KeyParms_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1580,1
    - Dst: TPM_CertifyInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1581,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1582,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1589,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1594,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1596,1
    - Dst: TPM_KeyParms_Load
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1600,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1606,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1618,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1622,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1626,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1635,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1650,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1657,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1664,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1670,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1674,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1686,1
    - Dst: TPM_KeyParms_GetRSAKeyParms
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1700,1
    - Dst: TPM_KeyParms_CheckProperties
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1707,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1718,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1740,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1741,1
    - Dst: TPM_Key_GenerateRSA
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1742,1
    - Dst: TPM_KeyHandleEntries_AddKeyEntry
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1756,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1763,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1773,1
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1774,1
    - Dst: TPM_CertifyInfo_Set
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1775,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1780,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1784,1
    - Dst: TPM_RSASignToSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1785,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1795,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1797,1
    - Dst: TPM_CertifyInfo_Store
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1805,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1809,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1813,1
    - Dst: TPM_Key_StorePubData
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1817,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1821,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1827,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1838,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1847,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1854,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1861,1
    - Dst: TPM_KeyParms_Delete
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1866,1
    - Dst: TPM_CertifyInfo_Delete
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1867,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1868,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1872,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1873,1
    - Dst: TPM_KeyHandleEntries_DeleteHandle
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1877,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 144
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1527
    functionDepth: 8
    functionLinenumber: 1527
    functionLinenumberEnd: 1881
    functionName: TPM_Process_ChangeAuthAsymStart
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_KeyParms_CheckProperties
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_SizedBuffer_Store
    - TPM_KeyHandleEntries_DeleteHandle
    - TPM_AuthSessions_GetData
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_KeyParms_GetRSAKeyParms
    - TPM_CertifyInfo_Store
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Key_StorePubData
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_CertifyInfo_Set
    - TPM_Nonce_Copy
    - TPM_KeyParms_Init
    - TPM_SizedBuffer_Init
    - TPM_SizedBuffer_Delete
    - TPM_Malloc
    - TPM_Key_Delete
    - printf
    - TPM_CheckRequestTag10
    - TPM_ProcessAudit
    - TPM_Key_Init
    - TPM_AuthParams_Set
    - TPM_CertifyInfo_Init
    - TPM_KeyHandleEntries_GetKey
    - TPM_RSASignToSizedBuffer
    - TPM_KeyHandleEntries_AddKeyEntry
    - TPM_KeyParms_Delete
    - TPM_KeyParms_Load
    - TPM_Nonce_Load
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Key_GenerateRSA
    - TPM_Load32
    - TPM_CertifyInfo_Delete
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ChangeAuthAsymStart(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \  TPM_STORE_BUFFER *response,\n\t\t\t\t\t   TPM_TAG tag,\n\t\t\t\t\t   uint32_t
      paramSize,\n\t\t\t\t\t   TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t   unsigned char
      *command,\n\t\t\t\t\t   TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1963,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1964,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1965,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1966,1
    - Dst: TPM_StoreAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1967,1
    - Dst: TPM_ChangeauthValidate_Init
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1970,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1976,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1980,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1981,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1986,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1988,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1992,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_auth.c:1996,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2000,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2003,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2009,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2021,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2025,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2029,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2038,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2053,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2061,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2068,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2079,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2093,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2106,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2119,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2127,1
    - Dst: TPM_RSAPrivateDecryptMalloc
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2134,1
    - Dst: TPM_StoreAsymkey_Load
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2144,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2152,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2159,1
    - Dst: TPM_RSAPrivateDecryptMalloc
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2165,1
    - Dst: TPM_ChangeauthValidate_Load
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2174,1
    - Dst: TPM_HMAC_Check
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2183,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2191,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2197,1
    - Dst: TPM_StoreAsymkey_GenerateEncData
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2200,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2204,1
    - Dst: TPM_HMAC_Generate
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2209,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2218,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2219,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2220,1
    - Dst: TPM_KeyHandleEntries_DeleteHandle
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2222,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2230,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2232,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2240,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2244,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2248,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2254,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2265,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2274,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2281,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2288,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2293,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2294,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2295,1
    - Dst: TPM_StoreAsymkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2296,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2297,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2298,1
    - Dst: TPM_ChangeauthValidate_Delete
      Src: /src/libtpms/src/tpm12/tpm_auth.c:2299,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 181
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2301
      start: 1903
    functionDepth: 5
    functionLinenumber: 1903
    functionLinenumberEnd: 2301
    functionName: TPM_Process_ChangeAuthAsymFinish
    functionSourceFile: /src/libtpms/src/tpm12/tpm_auth.c
    functionUses: 0
    functionsReached:
    - TPM_StoreAsymkey_Init
    - TPM_Secret_Copy
    - TPM_StoreAsymkey_GenerateEncData
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_RSAPrivateDecryptMalloc
    - TPM_SizedBuffer_Store
    - TPM_ChangeauthValidate_Delete
    - free
    - TPM_AuthSessions_GetData
    - TPM_KeyHandleEntries_DeleteHandle
    - TPM_Nonce_Store
    - TPM_GetInParamDigest
    - TPM_StoreAsymkey_Load
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_HMAC_Check
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_Random
    - TPM_Load16
    - TPM_SizedBuffer_Init
    - TPM_StoreAsymkey_Delete
    - TPM_SizedBuffer_Delete
    - TPM_Key_Delete
    - printf
    - TPM_CheckRequestTag10
    - TPM_Digest_Store
    - TPM_ChangeauthValidate_Load
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Digest_Load
    - TPM_KeyHandleEntries_GetKey
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_HMAC_Generate
    - TPM_ChangeauthValidate_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ChangeAuthAsymFinish(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \   TPM_STORE_BUFFER *response,\n\t\t\t\t\t    TPM_TAG tag,\n\t\t\t\t\t    uint32_t
      paramSize,\n\t\t\t\t\t    TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t    unsigned
      char *command,\n\t\t\t\t\t    TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:89,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:90,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:91,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tpm_sign_info
    argTypes:
    - TPM_SIGN_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: TPM_SignInfo_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 1
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_Nonce_Init
    - printf
    - memset
    linkageType: ''
    returnType: void
    signature: void TPM_SignInfo_Init(TPM_SIGN_INFO *tpm_sign_info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:107,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:110,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:114,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:118,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:122,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:127,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - sbuffer
    - tpm_sign_info
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_SIGN_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 131
    functionName: TPM_SignInfo_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append16
    - TPM_Sbuffer_Get
    - TPM_Sbuffer_Append
    - TPM_SizedBuffer_Store
    - printf
    - TPM_PrintAll
    - TPM_Nonce_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SignInfo_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t      const
      TPM_SIGN_INFO *tpm_sign_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:144,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:146,1
    - Dst: TPM_SignInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_sign_info
    argTypes:
    - TPM_SIGN_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: TPM_SignInfo_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 1
    functionsReached:
    - TPM_SizedBuffer_Delete
    - TPM_SignInfo_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_SignInfo_Delete(TPM_SIGN_INFO *tpm_sign_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:165,1
    - Dst: TPM_StructVer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:166,1
    - Dst: TPM_KeyParms_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:170,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:171,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:172,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - tpm_certify_info
    argTypes:
    - TPM_CERTIFY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 177
    functionName: TPM_CertifyInfo_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 1
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_Nonce_Init
    - TPM_StructVer_Init
    - printf
    - TPM_Digest_Init
    - TPM_KeyParms_Init
    linkageType: ''
    returnType: void
    signature: void TPM_CertifyInfo_Init(TPM_CERTIFY_INFO *tpm_certify_info)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:198,1
    - Dst: TPM_StructVer_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:201,1
    - Dst: TPM_StructVer_CheckVer
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:205,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:209,1
    - Dst: TPM_KeyFlags_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:213,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:217,1
    - Dst: TPM_KeyParms_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:221,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:225,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:229,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:233,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:237,1
    - Dst: TPM_PCRInfo_CreateFromBuffer
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:241,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - tpm_certify_info
    - stream
    - stream_size
    argTypes:
    - TPM_CERTIFY_INFO*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 192
    functionDepth: 4
    functionLinenumber: 192
    functionLinenumberEnd: 245
    functionName: TPM_CertifyInfo_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - TPM_StructVer_Load
    - TPM_Digest_Load
    - TPM_LoadBool
    - TPM_KeyParms_Load
    - TPM_Nonce_Load
    - printf
    - TPM_SizedBuffer_Load
    - TPM_StructVer_CheckVer
    - TPM_KeyFlags_Load
    - TPM_PCRInfo_CreateFromBuffer
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CertifyInfo_Load(TPM_CERTIFY_INFO *tpm_certify_info,\n\t\t\t\tunsigned
      char **stream,\n\t\t\t\tuint32_t *stream_size)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:259,1
    - Dst: TPM_StructVer_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:262,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:266,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:270,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:274,1
    - Dst: TPM_KeyParms_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:279,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:283,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:287,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:291,1
    - Dst: TPM_SizedBuffer_SetStructure
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:296,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:302,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - sbuffer
    - tpm_certify_info
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_CERTIFY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 254
    functionDepth: 6
    functionLinenumber: 254
    functionLinenumberEnd: 305
    functionName: TPM_CertifyInfo_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Nonce_Store
    - TPM_SizedBuffer_SetStructure
    - TPM_Sbuffer_Append16
    - TPM_StructVer_Store
    - TPM_SizedBuffer_Store
    - TPM_KeyParms_Store
    - printf
    - TPM_Digest_Store
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CertifyInfo_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      TPM_CERTIFY_INFO *tpm_certify_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:318,1
    - Dst: TPM_KeyParms_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:320,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:322,1
    - Dst: TPM_PCRInfo_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:324,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:325,1
    - Dst: TPM_CertifyInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - tpm_certify_info
    argTypes:
    - TPM_CERTIFY_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 329
    functionName: TPM_CertifyInfo_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 1
    functionsReached:
    - TPM_CertifyInfo_Init
    - TPM_SizedBuffer_Delete
    - TPM_KeyParms_Delete
    - printf
    - TPM_PCRInfo_Delete
    - free
    linkageType: ''
    returnType: void
    signature: void TPM_CertifyInfo_Delete(TPM_CERTIFY_INFO *tpm_certify_info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:340,1
    - Dst: TPM_KeyParms_Copy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:345,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - tpm_certify_info
    - tpm_key
    argTypes:
    - TPM_CERTIFY_INFO*
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 335
    functionDepth: 5
    functionLinenumber: 335
    functionLinenumberEnd: 356
    functionName: TPM_CertifyInfo_Set
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 1
    functionsReached:
    - TPM_KeyParms_Copy
    - TPM_SHA1
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CertifyInfo_Set(TPM_CERTIFY_INFO *tpm_certify_info,\n\t\t\t
      \      TPM_KEY *tpm_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:371,1
    - Dst: TPM_KeyParms_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:377,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:378,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:379,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:381,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - tpm_certify_info2
    argTypes:
    - TPM_CERTIFY_INFO2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 385
    functionName: TPM_CertifyInfo2_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_KeyParms_Init
    - TPM_SizedBuffer_Init
    - TPM_Nonce_Init
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_CertifyInfo2_Init(TPM_CERTIFY_INFO2 *tpm_certify_info2)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:404,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:407,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:411,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:416,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:422,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:426,1
    - Dst: TPM_KeyFlags_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:430,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:434,1
    - Dst: TPM_KeyParms_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:438,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:442,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:446,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:450,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:454,1
    - Dst: TPM_PCRInfoShort_CreateFromBuffer
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:458,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:463,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:469,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 3
    argNames:
    - tpm_certify_info2
    - stream
    - stream_size
    argTypes:
    - TPM_CERTIFY_INFO2*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 398
    functionDepth: 5
    functionLinenumber: 398
    functionLinenumberEnd: 476
    functionName: TPM_CertifyInfo2_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - TPM_Digest_Load
    - TPM_CheckTag
    - TPM_LoadBool
    - TPM_KeyParms_Load
    - TPM_Nonce_Load
    - printf
    - TPM_SizedBuffer_Load
    - TPM_Load8
    - TPM_PCRInfoShort_CreateFromBuffer
    - TPM_KeyFlags_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CertifyInfo2_Load(TPM_CERTIFY_INFO2 *tpm_certify_info2,\n\t\t\t\t
      unsigned char **stream,\n\t\t\t\t uint32_t *stream_size)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:490,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:493,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:497,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:501,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:506,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:510,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:514,1
    - Dst: TPM_KeyParms_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:519,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:523,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:527,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:531,1
    - Dst: TPM_SizedBuffer_SetStructure
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:536,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:542,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:546,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - sbuffer
    - tpm_certify_info2
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_CERTIFY_INFO2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 485
    functionDepth: 6
    functionLinenumber: 485
    functionLinenumberEnd: 549
    functionName: TPM_CertifyInfo2_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Nonce_Store
    - TPM_SizedBuffer_SetStructure
    - TPM_Sbuffer_Append16
    - TPM_SizedBuffer_Store
    - TPM_KeyParms_Store
    - printf
    - TPM_Digest_Store
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CertifyInfo2_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      TPM_CERTIFY_INFO2 *tpm_certify_info2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:562,1
    - Dst: TPM_KeyParms_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:564,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:566,1
    - Dst: TPM_PCRInfoShort_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:568,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:569,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:570,1
    - Dst: TPM_CertifyInfo2_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - tpm_certify_info2
    argTypes:
    - TPM_CERTIFY_INFO2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 560
    functionDepth: 3
    functionLinenumber: 560
    functionLinenumberEnd: 574
    functionName: TPM_CertifyInfo2_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_CertifyInfo2_Init
    - TPM_SizedBuffer_Delete
    - TPM_KeyParms_Delete
    - printf
    - TPM_PCRInfoShort_Delete
    - free
    linkageType: ''
    returnType: void
    signature: void TPM_CertifyInfo2_Delete(TPM_CERTIFY_INFO2 *tpm_certify_info2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:587,1
    - Dst: TPM_Key_GetStoreAsymkey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:590,1
    - Dst: TPM_Key_GetStoreAsymkey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:597,1
    - Dst: TPM_KeyParms_Copy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:600,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:606,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - tpm_certify_info2
    - tpm_key
    argTypes:
    - TPM_CERTIFY_INFO2*
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 581
    functionDepth: 5
    functionLinenumber: 581
    functionLinenumberEnd: 611
    functionName: TPM_CertifyInfo2_Set
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_KeyParms_Copy
    - TPM_SHA1
    - printf
    - TPM_Key_GetStoreAsymkey
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CertifyInfo2_Set(TPM_CERTIFY_INFO2 *tpm_certify_info2,\n\t\t\t
      \      TPM_KEY *tpm_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tpm_symmetric_key
    argTypes:
    - TPM_SYMMETRIC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 632
    functionName: TPM_SymmetricKey_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_SymmetricKey_Init(TPM_SYMMETRIC_KEY *tpm_symmetric_key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:650,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:653,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:657,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:661,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:665,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:669,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - tpm_symmetric_key
    - stream
    - stream_size
    argTypes:
    - TPM_SYMMETRIC_KEY*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 672
    functionName: TPM_SymmetricKey_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - TPM_Loadn
    - TPM_Malloc
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKey_Load(TPM_SYMMETRIC_KEY *tpm_symmetric_key,\n\t\t\t\t
      unsigned char **stream,\n\t\t\t\t uint32_t *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:685,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:688,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:692,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:697,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_symmetric_key
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_SYMMETRIC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 704
    functionName: TPM_SymmetricKey_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append
    - TPM_Sbuffer_Append32
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKey_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \ const TPM_SYMMETRIC_KEY *tpm_symmetric_key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:717,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:719,1
    - Dst: TPM_SymmetricKey_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_symmetric_key
    argTypes:
    - TPM_SYMMETRIC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 715
    functionDepth: 2
    functionLinenumber: 715
    functionLinenumberEnd: 723
    functionName: TPM_SymmetricKey_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_SymmetricKey_Init
    - printf
    - free
    linkageType: ''
    returnType: void
    signature: void TPM_SymmetricKey_Delete(TPM_SYMMETRIC_KEY *tpm_symmetric_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:740,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:743,1
    - Dst: TPM_SymmetricKeyData_Encrypt
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - encrypt_data
    - sbuffer
    - tpm_symmetric_key_data
    argTypes:
    - TPM_SIZED_BUFFER*
    - TPM_STORE_BUFFER*
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 752
    functionName: TPM_SymmetricKeyData_EncryptSbuffer
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_SymmetricKeyData_Encrypt
    - printf
    - TPM_Sbuffer_Get
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_EncryptSbuffer(TPM_SIZED_BUFFER *encrypt_data,\n\t\t\t\t\t
      \      TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t\t       const TPM_SYMMETRIC_KEY_TOKEN
      tpm_symmetric_key_data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:776,1
    - Dst: TPM_SymmetricKeyData_CtrCrypt
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:781,1
    - Dst: TPM_SymmetricKeyData_OfbCrypt
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:790,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:799,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:806,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 9
    argNames:
    - data_out
    - data_in
    - data_size
    - algId
    - encScheme
    - symmetric_key
    - symmetric_key_size
    - pad_in
    - pad_in_size
    argTypes:
    - unsigned char*
    - unsigned char*
    - uint32_t
    - TPM_ALGORITHM_ID
    - TPM_ENC_SCHEME
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 811
    functionName: TPM_SymmetricKeyData_StreamCrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 1
    functionsReached:
    - TPM_SymmetricKeyData_OfbCrypt
    - TPM_SymmetricKeyData_CtrCrypt
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_StreamCrypt(unsigned char *data_out,\t\t/*
      output */\n\t\t\t\t\t    const unsigned char *data_in,\t/* input */\n\t\t\t\t\t
      \   uint32_t data_size,\t\t\t/* input */\n\t\t\t\t\t    TPM_ALGORITHM_ID algId,\t\t/*
      algorithm */\n\t\t\t\t\t    TPM_ENC_SCHEME encScheme,\t\t/* mode */\n\t\t\t\t\t
      \   const unsigned char *symmetric_key, /* input */\n\t\t\t\t\t    uint32_t
      symmetric_key_size,\t/* input */\n\t\t\t\t\t    unsigned char *pad_in,\t\t/*
      input */\n\t\t\t\t\t    uint32_t pad_in_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:833,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:836,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:837,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - tpm_digest
    - sbuffer
    argTypes:
    - TPM_DIGEST
    - TPM_STORE_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 826
    functionDepth: 3
    functionLinenumber: 826
    functionLinenumberEnd: 844
    functionName: TPM_SHA1Sbuffer
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 3
    functionsReached:
    - TPM_PrintFour
    - TPM_SHA1
    - printf
    - TPM_Sbuffer_Get
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SHA1Sbuffer(TPM_DIGEST tpm_digest,\n\t\t\t   TPM_STORE_BUFFER
      *sbuffer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:860,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:861,1
    - Dst: storeFunction
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:864,1
    - Dst: TPM_SHA1Sbuffer
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:868,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:870,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - tpm_digest
    - tpmStructure
    - storeFunction
    argTypes:
    - TPM_DIGEST
    - void*
    - TPM_STORE_FUNCTION_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 853
    functionDepth: 4
    functionLinenumber: 853
    functionLinenumberEnd: 872
    functionName: TPM_SHA1_GenerateStructure
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 9
    functionsReached:
    - storeFunction
    - TPM_Sbuffer_Delete
    - printf
    - TPM_Sbuffer_Init
    - TPM_SHA1Sbuffer
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SHA1_GenerateStructure(TPM_DIGEST tpm_digest,\n\t\t\t\t
      \     void *tpmStructure,\n\t\t\t\t      TPM_STORE_FUNCTION_T storeFunction)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:892,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:895,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:899,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - expected_digest
    - tpmStructure
    - storeFunction
    - error
    argTypes:
    - TPM_DIGEST
    - void*
    - TPM_STORE_FUNCTION_T
    - TPM_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 884
    functionDepth: 5
    functionLinenumber: 884
    functionLinenumberEnd: 905
    functionName: TPM_SHA1_CheckStructure
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_Digest_Compare
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SHA1_CheckStructure(TPM_DIGEST expected_digest,\n\t\t\t\t
      \  void *tpmStructure,\n\t\t\t\t   TPM_STORE_FUNCTION_T storeFunction,\n\t\t\t\t
      \  TPM_RESULT error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:919,1
    - Dst: va_start
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:920,1
    - Dst: TPM_SHA1_valist
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:921,1
    - Dst: va_end
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - md
    argTypes:
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 924
    functionName: TPM_SHA1
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 16
    functionsReached:
    - TPM_SHA1_valist
    - va_start
    - printf
    - va_end
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SHA1(TPM_DIGEST md, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:935,1
    - Dst: va_start
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:937,1
    - Dst: TPM_SHA1_valist
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:938,1
    - Dst: va_end
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:939,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:942,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - digest_expect
    argTypes:
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 945
    functionName: TPM_SHA1_Check
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 3
    functionsReached:
    - TPM_Digest_Compare
    - TPM_SHA1_valist
    - va_start
    - printf
    - va_end
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SHA1_Check(TPM_DIGEST digest_expect, ...)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:966,1
    - Dst: TPM_SHA1InitCmd
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:968,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:972,1
    - Dst: TPM_SHA1UpdateCmd
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:973,1
    - Dst: va_arg
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:977,1
    - Dst: va_arg
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:979,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:980,1
    - Dst: TPM_SHA1UpdateCmd
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:981,1
    - Dst: TPM_SHA1FinalCmd
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:988,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:991,1
    - Dst: TPM_SHA1Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:994,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - md
    - length0
    - buffer0
    - ap
    argTypes:
    - TPM_DIGEST
    - uint32_t
    - unsigned char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 956
    functionDepth: 3
    functionLinenumber: 956
    functionLinenumberEnd: 996
    functionName: TPM_SHA1_valist
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 2
    functionsReached:
    - va_arg
    - TPM_PrintFour
    - TPM_SHA1FinalCmd
    - printf
    - TPM_SHA1Delete
    - TPM_SHA1InitCmd
    - TPM_SHA1UpdateCmd
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SHA1_valist(TPM_DIGEST md,\n\t\t\t\t  uint32_t length0,
      unsigned char *buffer0,\n\t\t\t\t  va_list ap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1014,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1017,1
    - Dst: TPM_HMAC_Generate
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - tpm_hmac
    - hmac_key
    - sbuffer
    argTypes:
    - TPM_HMAC
    - TPM_SECRET
    - TPM_STORE_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1025
    functionName: TPM_HMAC_GenerateSbuffer
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_HMAC_Generate
    - printf
    - TPM_Sbuffer_Get
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_HMAC_GenerateSbuffer(TPM_HMAC tpm_hmac,\n\t\t\t\t    const
      TPM_SECRET hmac_key,\n\t\t\t\t    TPM_STORE_BUFFER *sbuffer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1043,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1044,1
    - Dst: storeFunction
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1047,1
    - Dst: TPM_HMAC_GenerateSbuffer
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1051,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1053,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - tpm_hmac
    - hmac_key
    - tpmStructure
    - storeFunction
    argTypes:
    - TPM_HMAC
    - TPM_SECRET
    - void*
    - TPM_STORE_FUNCTION_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1035
    functionDepth: 2
    functionLinenumber: 1035
    functionLinenumberEnd: 1055
    functionName: TPM_HMAC_GenerateStructure
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 4
    functionsReached:
    - storeFunction
    - TPM_Sbuffer_Delete
    - printf
    - TPM_Sbuffer_Init
    - TPM_HMAC_GenerateSbuffer
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_HMAC_GenerateStructure(TPM_HMAC tpm_hmac,\n\t\t\t\t
      \     const TPM_SECRET hmac_key,\n\t\t\t\t      void *tpmStructure,\n\t\t\t\t
      \     TPM_STORE_FUNCTION_T storeFunction)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1071,1
    - Dst: va_start
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1072,1
    - Dst: TPM_HMAC_Generatevalist
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1073,1
    - Dst: va_end
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - tpm_hmac
    - hmac_key
    argTypes:
    - TPM_HMAC
    - TPM_SECRET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1076
    functionName: TPM_HMAC_Generate
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 3
    functionsReached:
    - TPM_HMAC_Generatevalist
    - va_start
    - printf
    - va_end
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_HMAC_Generate(TPM_HMAC tpm_hmac,\n\t\t\t     const
      TPM_SECRET hmac_key,\n\t\t\t     ...)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1096,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1105,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1106,1
    - Dst: TPM_SHA1_valist
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1108,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1113,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - tpm_hmac
    - key
    - ap
    argTypes:
    - TPM_HMAC
    - TPM_SECRET
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1086
    functionDepth: 4
    functionLinenumber: 1086
    functionLinenumberEnd: 1122
    functionName: TPM_HMAC_Generatevalist
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 1
    functionsReached:
    - TPM_SHA1_valist
    - TPM_SHA1
    - TPM_PrintFour
    - memset
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_HMAC_Generatevalist(TPM_HMAC tpm_hmac,\n\t\t\t\t\t
      \ const TPM_SECRET key,\n\t\t\t\t\t  va_list ap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1141,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1144,1
    - Dst: TPM_HMAC_Check
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - valid
    - expect
    - hmac_key
    - sbuffer
    argTypes:
    - TPM_BOOL*
    - TPM_HMAC
    - TPM_SECRET
    - TPM_STORE_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1153
    functionName: TPM_HMAC_CheckSbuffer
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 2
    functionsReached:
    - TPM_HMAC_Check
    - printf
    - TPM_Sbuffer_Get
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_HMAC_CheckSbuffer(TPM_BOOL *valid,\t\t\t/* result */\n\t\t\t\t
      TPM_HMAC expect,\t\t/* expected */\n\t\t\t\t const TPM_SECRET hmac_key,\t/*
      key */\n\t\t\t\t TPM_STORE_BUFFER *sbuffer)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1173,1
    - Dst: va_start
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1174,1
    - Dst: TPM_HMAC_Generatevalist
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1176,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1179,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1180,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1181,1
    - Dst: va_end
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - valid
    - expect
    - key
    argTypes:
    - TPM_BOOL*
    - TPM_HMAC
    - TPM_SECRET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1163
    functionDepth: 5
    functionLinenumber: 1163
    functionLinenumberEnd: 1191
    functionName: TPM_HMAC_Check
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 5
    functionsReached:
    - TPM_HMAC_Generatevalist
    - va_start
    - TPM_PrintFour
    - memcmp
    - printf
    - va_end
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_HMAC_Check(TPM_BOOL *valid,\n\t\t\t  TPM_HMAC expect,\n\t\t\t
      \ const TPM_SECRET key,\n\t\t\t  ...)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1218,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1219,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1221,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1222,1
    - Dst: storeFunction
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1223,1
    - Dst: TPM_HMAC_CheckSbuffer
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1228,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1235,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - hmac_key
    - tpmStructure
    - expect
    - storeFunction
    - error
    argTypes:
    - TPM_SECRET
    - void*
    - TPM_HMAC
    - TPM_STORE_FUNCTION_T
    - TPM_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1207
    functionDepth: 2
    functionLinenumber: 1207
    functionLinenumberEnd: 1241
    functionName: TPM_HMAC_CheckStructure
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - storeFunction
    - TPM_Sbuffer_Delete
    - TPM_HMAC_CheckSbuffer
    - printf
    - TPM_Digest_Copy
    - TPM_Sbuffer_Init
    - TPM_Digest_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_HMAC_CheckStructure(const TPM_SECRET hmac_key,\n\t\t\t\t
      \  void *tpmStructure,\n\t\t\t\t   TPM_HMAC expect,\n\t\t\t\t   TPM_STORE_FUNCTION_T
      storeFunction,\n\t\t\t\t   TPM_RESULT error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - out
    - in1
    - in2
    - length
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1247
    functionDepth: 0
    functionLinenumber: 1247
    functionLinenumberEnd: 1258
    functionName: TPM_XOR
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TPM_XOR(unsigned char *out,\n\t     const unsigned char *in1,\n\t
      \    const unsigned char *in2,\n\t     size_t length)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1302,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1306,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1317,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1318,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1323,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1332,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1337,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - mask
    - maskLen
    - mgfSeed
    - mgfSeedlen
    argTypes:
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1291
    functionDepth: 2
    functionLinenumber: 1291
    functionLinenumberEnd: 1343
    functionName: TPM_MGF1
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1
    - printf
    - htonl
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_MGF1(unsigned char       *mask,\n                    uint32_t
      \           maskLen,\n                    const unsigned char *mgfSeed,\n                    uint32_t\t\tmgfSeedlen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1367,1
    - Dst: va_start
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1370,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1373,1
    - Dst: va_arg
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1379,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1382,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1384,1
    - Dst: va_arg
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1389,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1390,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1398,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1406,1
    - Dst: TPM_MGF1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1410,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1414,1
    - Dst: va_end
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1416,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1417,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 3
    argNames:
    - array
    - arrayLen
    - seedLen
    argTypes:
    - unsigned char**
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1353
    functionDepth: 3
    functionLinenumber: 1353
    functionLinenumberEnd: 1419
    functionName: TPM_MGF1_GenerateArray
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 1
    functionsReached:
    - va_start
    - memcpy
    - va_arg
    - TPM_MGF1
    - TPM_PrintFour
    - TPM_Malloc
    - printf
    - free
    - va_end
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_MGF1_GenerateArray(unsigned char **array,\n\t\t\t\t
      \ uint32_t arrayLen,\n\t\t\t\t  uint32_t seedLen,\n\t\t\t\t  ...)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1438,1
    - Dst: TPM_BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1441,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1452,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1458,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1463,1
    - Dst: TPM_bn2binArray
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1468,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - bin
    - bytes
    - bn
    - padBytes
    argTypes:
    - unsigned char**
    - unsigned int*
    - TPM_BIGNUM
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1431
    functionDepth: 2
    functionLinenumber: 1431
    functionLinenumberEnd: 1471
    functionName: TPM_bn2binMalloc
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 2
    functionsReached:
    - TPM_Malloc
    - TPM_bn2binArray
    - printf
    - TPM_BN_num_bytes
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_bn2binMalloc(unsigned char **bin,\t/* freed by caller
      */\n\t\t\t    unsigned int *bytes,\n\t\t\t    TPM_BIGNUM bn,\n\t\t\t    uint32_t
      padBytes)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1485,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1488,1
    - Dst: TPM_BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1490,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1494,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1496,1
    - Dst: TPM_bn2bin
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1504,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - bin
    - bytes
    - bn
    argTypes:
    - unsigned char*
    - unsigned int
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1478
    functionDepth: 1
    functionLinenumber: 1478
    functionLinenumberEnd: 1509
    functionName: TPM_bn2binArray
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 1
    functionsReached:
    - TPM_bn2bin
    - printf
    - TPM_BN_num_bytes
    - memset
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_bn2binArray(unsigned char *bin,\n\t\t\t   unsigned
      int bytes,\n\t\t\t   TPM_BIGNUM bn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1527,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1528,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1531,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1535,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1539,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1541,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - bignum_in
    - bin0
    - size0
    - bin1
    - size1
    argTypes:
    - TPM_BIGNUM*
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1518
    functionDepth: 1
    functionLinenumber: 1518
    functionLinenumberEnd: 1545
    functionName: TPM_2bin2bn
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Init
    - TPM_Sbuffer_Get
    - TPM_Sbuffer_Delete
    - TPM_bin2bn
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_2bin2bn(TPM_BIGNUM *bignum_in,         /* freed by
      caller */\n                       const unsigned char *bin0, uint32_t size0,\n
      \                      const unsigned char *bin1, uint32_t size1)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1561,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1564,1
    - Dst: TPM_RSAPrivateDecryptH
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - decrypt_data
    - decrypt_data_length
    - encrypt_data
    - encrypt_data_size
    - tpm_key
    argTypes:
    - unsigned char**
    - uint32_t*
    - unsigned char*
    - uint32_t
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1551
    functionDepth: 2
    functionLinenumber: 1551
    functionLinenumberEnd: 1575
    functionName: TPM_RSAPrivateDecryptMalloc
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 9
    functionsReached:
    - TPM_Malloc
    - printf
    - TPM_RSAPrivateDecryptH
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAPrivateDecryptMalloc(unsigned char **decrypt_data,\t/*
      decrypted data */\n\t\t\t\t       uint32_t *decrypt_data_length,\t/* length
      of data put into\n\t\t\t\t\t\t\t\t\t   decrypt_data */\n\t\t\t\t       unsigned
      char *encrypt_data,\n\t\t\t\t       uint32_t encrypt_data_size,\n\t\t\t\t       TPM_KEY
      *tpm_key)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1599,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1600,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1603,1
    - Dst: TPM_Key_GetPublicKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1609,1
    - Dst: TPM_Key_GetPrivateKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1613,1
    - Dst: TPM_Key_GetExponent
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1617,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1622,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1629,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1630,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1631,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1632,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1633,1
    - Dst: TPM_RSAPrivateDecrypt
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1635,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1649,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 6
    argNames:
    - decrypt_data
    - decrypt_data_length
    - decrypt_data_size
    - encrypt_data
    - encrypt_data_size
    - tpm_key
    argTypes:
    - unsigned char*
    - uint32_t*
    - uint32_t
    - unsigned char*
    - uint32_t
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1583
    functionDepth: 3
    functionLinenumber: 1583
    functionLinenumberEnd: 1652
    functionName: TPM_RSAPrivateDecryptH
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 2
    functionsReached:
    - TPM_Key_GetPublicKey
    - TPM_RSAPrivateDecrypt
    - TPM_PrintFour
    - TPM_Key_GetPrivateKey
    - TPM_Key_GetExponent
    - printf
    - TPM_PrintFourLimit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAPrivateDecryptH(unsigned char *decrypt_data,\t/*
      decrypted data */\n\t\t\t\t  uint32_t *decrypt_data_length,\t/* length of data
      put into\n\t\t\t\t\t\t\t\t\t   decrypt_data */\n\t\t\t\t  uint32_t decrypt_data_size,\t/*
      size of decrypt_data buffer */\n\t\t\t\t  unsigned char *encrypt_data,\n\t\t\t\t
      \ uint32_t encrypt_data_size,\n\t\t\t\t  TPM_KEY *tpm_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1666,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1668,1
    - Dst: TPM_RSAPublicEncrypt_Key
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - enc_data
    - sbuffer
    - tpm_key
    argTypes:
    - TPM_SIZED_BUFFER*
    - TPM_STORE_BUFFER*
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1658
    functionDepth: 1
    functionLinenumber: 1658
    functionLinenumberEnd: 1676
    functionName: TPM_RSAPublicEncryptSbuffer_Key
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 4
    functionsReached:
    - printf
    - TPM_RSAPublicEncrypt_Key
    - TPM_Sbuffer_Get
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAPublicEncryptSbuffer_Key(TPM_SIZED_BUFFER *enc_data,\n\t\t\t\t\t
      \  TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t\t   TPM_KEY *tpm_key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1693,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1696,1
    - Dst: TPM_Key_GetPublicKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1702,1
    - Dst: TPM_Key_GetExponent
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1706,1
    - Dst: TPM_RSAPublicEncrypt_Common
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1709,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - enc_data
    - decrypt_data
    - decrypt_data_size
    - tpm_key
    argTypes:
    - TPM_SIZED_BUFFER*
    - unsigned char*
    - size_t
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1682
    functionDepth: 2
    functionLinenumber: 1682
    functionLinenumberEnd: 1719
    functionName: TPM_RSAPublicEncrypt_Key
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 2
    functionsReached:
    - TPM_Key_GetExponent
    - TPM_RSAPublicEncrypt_Common
    - printf
    - TPM_Key_GetPublicKey
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAPublicEncrypt_Key(TPM_SIZED_BUFFER *enc_data,\n\t\t\t\t
      \   const unsigned char *decrypt_data,\n\t\t\t\t    size_t decrypt_data_size,\n\t\t\t\t
      \   TPM_KEY *tpm_key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1736,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1739,1
    - Dst: TPM_Pubkey_GetPublicKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1745,1
    - Dst: TPM_Pubkey_GetExponent
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1749,1
    - Dst: TPM_RSAPublicEncrypt_Common
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1752,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - enc_data
    - decrypt_data
    - decrypt_data_size
    - tpm_pubkey
    argTypes:
    - TPM_SIZED_BUFFER*
    - unsigned char*
    - size_t
    - TPM_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1725
    functionDepth: 3
    functionLinenumber: 1725
    functionLinenumberEnd: 1762
    functionName: TPM_RSAPublicEncrypt_Pubkey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 3
    functionsReached:
    - TPM_Pubkey_GetPublicKey
    - TPM_RSAPublicEncrypt_Common
    - printf
    - TPM_Pubkey_GetExponent
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAPublicEncrypt_Pubkey(TPM_SIZED_BUFFER *enc_data,\n\t\t\t\t
      \      const unsigned char *decrypt_data,\n\t\t\t\t       size_t decrypt_data_size,\n\t\t\t\t
      \      TPM_PUBKEY *tpm_pubkey)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1781,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1782,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1786,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1793,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1797,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1798,1
    - Dst: TPM_RSAPublicEncrypt
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1800,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1812,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1813,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1814,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1816,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 8
    argNames:
    - enc_data
    - decrypt_data
    - decrypt_data_size
    - encScheme
    - narr
    - nbytes
    - earr
    - ebytes
    argTypes:
    - TPM_SIZED_BUFFER*
    - unsigned char*
    - size_t
    - TPM_ENC_SCHEME
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1768
    functionDepth: 3
    functionLinenumber: 1768
    functionLinenumberEnd: 1818
    functionName: TPM_RSAPublicEncrypt_Common
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 2
    functionsReached:
    - TPM_RSAPublicEncrypt
    - TPM_PrintFour
    - TPM_Malloc
    - printf
    - TPM_SizedBuffer_Set
    - TPM_PrintFourLimit
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAPublicEncrypt_Common(TPM_SIZED_BUFFER *enc_data,\n\t\t\t\t
      \      const unsigned char *decrypt_data,\n\t\t\t\t       size_t decrypt_data_size,\n\t\t\t\t
      \      TPM_ENC_SCHEME encScheme,\n\t\t\t\t       unsigned char\t*narr,\t\t /*
      public modulus */\n\t\t\t\t       uint32_t \tnbytes,\n\t\t\t\t       unsigned
      char\t*earr,\t\t /* public exponent */\n\t\t\t\t       uint32_t \tebytes)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1852,1
    - Dst: TPM_KeyParms_GetRSAKeyParms
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1854,1
    - Dst: TPM_SizedBuffer_Allocate
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1859,1
    - Dst: TPM_RSASignH
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1863,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1873,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - signature
    - message
    - message_size
    - tpm_key
    argTypes:
    - TPM_SIZED_BUFFER*
    - unsigned char*
    - size_t
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1843
    functionDepth: 3
    functionLinenumber: 1843
    functionLinenumberEnd: 1879
    functionName: TPM_RSASignToSizedBuffer
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 4
    functionsReached:
    - TPM_KeyParms_GetRSAKeyParms
    - printf
    - TPM_RSASignH
    - TPM_SizedBuffer_Allocate
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSASignToSizedBuffer(TPM_SIZED_BUFFER *signature,\n\t\t\t\t
      \   const unsigned char *message,\t/* input */\n\t\t\t\t    size_t message_size,\t\t/*
      input */\n\t\t\t\t    TPM_KEY *tpm_key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1903,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1904,1
    - Dst: TPM_Key_GetPublicKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1907,1
    - Dst: TPM_Key_GetPrivateKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1911,1
    - Dst: TPM_Key_GetExponent
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1915,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1919,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1920,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1921,1
    - Dst: TPM_RSASign
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1923,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1937,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 6
    argNames:
    - signature
    - signature_length
    - signature_size
    - message
    - message_size
    - tpm_key
    argTypes:
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - size_t
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1888
    functionDepth: 3
    functionLinenumber: 1888
    functionLinenumberEnd: 1940
    functionName: TPM_RSASignH
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 1
    functionsReached:
    - TPM_Key_GetPublicKey
    - TPM_PrintFour
    - TPM_Key_GetPrivateKey
    - TPM_Key_GetExponent
    - printf
    - TPM_RSASign
    - TPM_PrintFourLimit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSASignH(unsigned char *signature,\t\t/* output */\n\t\t\tunsigned
      int *signature_length,\t\t/* output, size of signature */\n\t\t\tunsigned int
      signature_size,\t/* input, size of signature buffer */\n\t\t\tconst unsigned
      char *message,\t/* input */\n\t\t\tsize_t message_size,\t\t/* input */\n\t\t\tTPM_KEY
      *tpm_key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1956,1
    - Dst: TPM_Pubkey_GetPublicKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1959,1
    - Dst: TPM_Pubkey_GetExponent
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1963,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1967,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1968,1
    - Dst: TPM_RSAVerify
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:1970,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - signature
    - message
    - message_size
    - tpm_pubkey
    argTypes:
    - TPM_SIZED_BUFFER*
    - unsigned char*
    - uint32_t
    - TPM_PUBKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1945
    functionDepth: 3
    functionLinenumber: 1945
    functionLinenumberEnd: 1981
    functionName: TPM_RSAVerifyH
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 1
    functionsReached:
    - TPM_Pubkey_GetExponent
    - TPM_PrintFour
    - TPM_Pubkey_GetPublicKey
    - printf
    - TPM_PrintAll
    - TPM_RSAVerify
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAVerifyH(TPM_SIZED_BUFFER *signature,\t/* input */\n\t\t\t
      \ const unsigned char *message, /* input */\n\t\t\t  uint32_t message_size,\t/*
      input */\n\t\t\t  TPM_PUBKEY *tpm_pubkey)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2000,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2005,1
    - Dst: TPM_RSAVerifySHA1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2010,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2020,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2024,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 9
    argNames:
    - signature
    - signature_size
    - sigScheme
    - message
    - message_size
    - narr
    - nbytes
    - earr
    - ebytes
    argTypes:
    - unsigned char*
    - unsigned int
    - TPM_SIG_SCHEME
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 1988
    functionDepth: 1
    functionLinenumber: 1988
    functionLinenumberEnd: 2030
    functionName: TPM_RSAVerify
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_RSAVerifySHA1
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAVerify(unsigned char *signature,      /* input */\n
      \                        unsigned int \tsignature_size, /* input, size of signature
      buffer */\n                         TPM_SIG_SCHEME sigScheme,      /* input,
      type of signature */\n                         const unsigned char *message,
      \ /* input */\n                         uint32_t \tmessage_size,   /* input
      */\n                         unsigned char *narr,           /* public modulus
      */\n                         uint32_t \tnbytes,\n                         unsigned
      char *earr,           /* public exponent */\n                         uint32_t
      \tebytes)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2072,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2073,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2074,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2075,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2086,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2103,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2104,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2111,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2117,1
    - Dst: TPM_MGF1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2120,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2126,1
    - Dst: TPM_MGF1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2131,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2137,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2143,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 6
    argNames:
    - em
    - emLen
    - from
    - fLen
    - pHash
    - seed
    argTypes:
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2060
    functionDepth: 3
    functionLinenumber: 2060
    functionLinenumberEnd: 2147
    functionName: TPM_RSA_padding_add_PKCS1_OAEP
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 2
    functionsReached:
    - TPM_XOR
    - memcpy
    - TPM_MGF1
    - TPM_PrintFour
    - memset
    - TPM_Malloc
    - printf
    - TPM_PrintFourLimit
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSA_padding_add_PKCS1_OAEP(unsigned char *em, uint32_t
      emLen,\n\t\t\t\t\t  const unsigned char *from, uint32_t fLen,\n\t\t\t\t\t  const
      unsigned char *pHash,\t\t/* input 20 bytes */\n\t\t\t\t\t  const unsigned char
      *seed)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2186,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2187,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2199,1
    - Dst: TPM_MGF1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2212,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2216,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2218,1
    - Dst: TPM_MGF1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2221,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2227,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2232,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2242,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2248,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2259,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2265,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2266,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2267,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2268,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2269,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2271,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 61
    argCount: 7
    argNames:
    - to
    - tLen
    - tSize
    - em
    - emLen
    - pHash
    - seed
    argTypes:
    - unsigned char*
    - uint32_t*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2172
    functionDepth: 3
    functionLinenumber: 2172
    functionLinenumberEnd: 2273
    functionName: TPM_RSA_padding_check_PKCS1_OAEP
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 2
    functionsReached:
    - TPM_XOR
    - memcpy
    - TPM_MGF1
    - TPM_PrintFour
    - TPM_Malloc
    - printf
    - TPM_PrintFourLimit
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSA_padding_check_PKCS1_OAEP(unsigned char *to, uint32_t
      *tLen, uint32_t tSize, \n\t\t\t\t\t    const unsigned char *em, uint32_t emLen,\n\t\t\t\t\t
      \   unsigned char *pHash,\t/* output 20 bytes */\n\t\t\t\t\t    unsigned char
      *seed)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - exponent
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2279
    functionDepth: 1
    functionLinenumber: 2279
    functionLinenumberEnd: 2300
    functionName: TPM_RSA_exponent_verify
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_RSA_exponent_verify(unsigned long exponent)
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2366,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2375,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2376,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2381,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2383,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2384,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2385,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2390,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2391,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2397,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2399,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2400,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2401,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2406,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2407,1
    - Dst: TPM_HMAC_Generate
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2408,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2414,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2416,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2417,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2418,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2423,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2424,1
    - Dst: TPM_HMAC_Generate
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2425,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2432,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2434,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2435,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2436,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2441,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2442,1
    - Dst: TPM_HMAC_Check
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2443,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2452,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2453,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2454,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2459,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2460,1
    - Dst: TPM_RSA_padding_add_PKCS1_OAEP
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2465,1
    - Dst: TPM_RSA_padding_check_PKCS1_OAEP
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2470,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2477,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2483,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2485,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2486,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2487,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2492,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2494,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2495,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2496,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2501,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2503,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2504,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2505,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2510,1
    - Dst: TPM_SymmetricKeyData_New
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2512,1
    - Dst: TPM_SymmetricKeyData_GenerateKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2516,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2520,1
    - Dst: TPM_SymmetricKeyData_Encrypt
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2524,1
    - Dst: TPM_SymmetricKeyData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2532,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2541,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2547,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2549,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2550,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2551,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2556,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2558,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2562,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2566,1
    - Dst: TPM_SymmetricKeyData_CtrCrypt
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2569,1
    - Dst: TPM_SymmetricKeyData_CtrCrypt
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2578,1
    - Dst: TPM_Secret_Compare
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2588,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2590,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2591,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2592,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2596,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2598,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2602,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2606,1
    - Dst: TPM_SymmetricKeyData_OfbCrypt
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2609,1
    - Dst: TPM_SymmetricKeyData_OfbCrypt
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2618,1
    - Dst: TPM_Secret_Compare
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2628,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2630,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2631,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2632,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2637,1
    - Dst: TPM_RSAGenerateKeyPair
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2639,1
    - Dst: TPM_RSAPublicEncrypt
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2649,1
    - Dst: TPM_RSAPrivateDecrypt
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2660,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2676,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2682,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2684,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2685,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2686,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2692,1
    - Dst: TPM_RSAPublicEncrypt
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2694,1
    - Dst: TPM_RSAPrivateDecrypt
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2706,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2723,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2730,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2732,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2733,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2734,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2742,1
    - Dst: TPM_RSASign
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2743,1
    - Dst: TPM_RSAVerify
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2757,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2771,1
    - Dst: TPM_RSASign
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2772,1
    - Dst: TPM_RSAVerify
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2786,1
    - Dst: TPM_Crypto_TestSpecific
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2800,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2805,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2806,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2807,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2808,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2809,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2810,1
    - Dst: TPM_SymmetricKeyData_Free
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2811,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 272
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2307
    functionDepth: 6
    functionLinenumber: 2307
    functionLinenumberEnd: 2813
    functionName: TPM_CryptoTest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 1
    functionsReached:
    - TPM_SymmetricKeyData_CtrCrypt
    - memcmp
    - TPM_SymmetricKeyData_New
    - TPM_RSAGenerateKeyPair
    - TPM_SHA1
    - TPM_RSAPrivateDecrypt
    - TPM_RSAPublicEncrypt
    - TPM_SymmetricKeyData_OfbCrypt
    - memset
    - TPM_SymmetricKeyData_Encrypt
    - TPM_HMAC_Check
    - TPM_SymmetricKeyData_Free
    - TPM_Random
    - TPM_RSA_padding_add_PKCS1_OAEP
    - TPM_RSAVerify
    - TPM_Crypto_TestSpecific
    - TPM_SymmetricKeyData_Decrypt
    - TPM_PrintFour
    - printf
    - TPM_SymmetricKeyData_GenerateKey
    - TPM_Secret_Compare
    - TPM_RSA_padding_check_PKCS1_OAEP
    - TPM_RSASign
    - TPM_HMAC_Generate
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_CryptoTest(void)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2880,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2881,1
    - Dst: TPM_SignInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2882,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2883,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2884,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2890,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2895,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2897,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2900,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2906,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2918,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2922,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2926,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2935,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2948,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2956,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2962,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2966,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2979,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2991,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:2999,1
    - Dst: TPM_KeyParms_GetRSAKeyParms
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3007,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3013,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3017,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3030,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3035,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3048,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3053,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3057,1
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3063,1
    - Dst: TPM_SizedBuffer_Copy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3066,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3070,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3079,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3086,1
    - Dst: TPM_RSASignToSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3087,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3097,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3099,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3107,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3113,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3124,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3133,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3140,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3147,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3152,1
    - Dst: TPM_SignInfo_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3153,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3154,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3155,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 155
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3157
      start: 2834
    functionDepth: 5
    functionLinenumber: 2834
    functionLinenumberEnd: 3157
    functionName: TPM_Process_Sign
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_SizedBuffer_Store
    - TPM_PrintAll
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_KeyParms_GetRSAKeyParms
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_Nonce_Copy
    - TPM_SignInfo_Delete
    - TPM_SizedBuffer_Init
    - memcpy
    - TPM_SizedBuffer_Delete
    - TPM_SizedBuffer_Copy
    - printf
    - TPM_CheckRequestTag10
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_RSASignToSizedBuffer
    - TPM_Sbuffer_Delete
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_SignInfo_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_Sign(tpm_state_t *tpm_state,\n\t\t\t    TPM_STORE_BUFFER
      *response,\n\t\t\t    TPM_TAG tag,\n\t\t\t    uint32_t paramSize,\n\t\t\t    TPM_COMMAND_CODE
      ordinal,\n\t\t\t    unsigned char *command,\n\t\t\t    TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3205,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3215,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3227,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3232,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3236,1
    - Dst: TPM_SHA1InitCmd
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3256,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3263,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3265,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3273,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3279,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3290,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3297,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3300
      start: 3177
    functionDepth: 1
    functionLinenumber: 3177
    functionLinenumberEnd: 3300
    functionName: TPM_Process_SHA1Start
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_SHA1InitCmd
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_SHA1Start(tpm_state_t *tpm_state,\n\t\t\t\t
      TPM_STORE_BUFFER *response,\n\t\t\t\t TPM_TAG tag,\n\t\t\t\t uint32_t paramSize,\n\t\t\t\t
      TPM_COMMAND_CODE ordinal,\n\t\t\t\t unsigned char *command,\n\t\t\t\t TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3334,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3335,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3343,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3349,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3361,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3366,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3370,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3384,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3390,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3392,1
    - Dst: TPM_SHA1Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3396,1
    - Dst: TPM_SHA1Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3405,1
    - Dst: TPM_SHA1UpdateCmd
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3410,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3417,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3419,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3431,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3442,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3449,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3454,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3456
      start: 3308
    functionDepth: 3
    functionLinenumber: 3308
    functionLinenumberEnd: 3456
    functionName: TPM_Process_SHA1Update
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_GetInParamDigest
    - TPM_SizedBuffer_Delete
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_SHA1Delete
    - TPM_SizedBuffer_Load
    - TPM_GetOutParamDigest
    - TPM_SHA1UpdateCmd
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_SHA1Update(tpm_state_t *tpm_state,\n\t\t\t\t
      \ TPM_STORE_BUFFER *response,\n\t\t\t\t  TPM_TAG tag,\n\t\t\t\t  uint32_t paramSize,\n\t\t\t\t
      \ TPM_COMMAND_CODE ordinal,\n\t\t\t\t  unsigned char *command,\n\t\t\t\t  TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3489,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3491,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3499,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3505,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3517,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3522,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3526,1
    - Dst: TPM_SHA1CompleteCommon
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3540,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3549,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3551,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3559,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3565,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3576,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3583,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3588,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3590
      start: 3463
    functionDepth: 3
    functionLinenumber: 3463
    functionLinenumberEnd: 3590
    functionName: TPM_Process_SHA1Complete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_GetInParamDigest
    - TPM_SizedBuffer_Delete
    - TPM_SHA1CompleteCommon
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_SizedBuffer_Load
    - TPM_GetOutParamDigest
    - TPM_Digest_Store
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_SHA1Complete(tpm_state_t *tpm_state,\n\t\t\t\t
      \   TPM_STORE_BUFFER *response,\n\t\t\t\t    TPM_TAG tag,\n\t\t\t\t    uint32_t
      paramSize,\n\t\t\t\t    TPM_COMMAND_CODE ordinal,\n\t\t\t\t    unsigned char
      *command,\n\t\t\t\t    TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3634,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3635,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3643,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3647,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3648,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3654,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3666,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3671,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3675,1
    - Dst: TPM_SHA1CompleteCommon
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3692,1
    - Dst: TPM_ExtendCommon
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3698,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3705,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3707,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3715,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3719,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3725,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3736,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3743,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3748,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3750
      start: 3605
    functionDepth: 4
    functionLinenumber: 3605
    functionLinenumberEnd: 3750
    functionName: TPM_Process_SHA1CompleteExtend
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_GetInParamDigest
    - TPM_SizedBuffer_Delete
    - TPM_SHA1CompleteCommon
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_GetOutParamDigest
    - TPM_ExtendCommon
    - TPM_Digest_Store
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_SHA1CompleteExtend(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \ TPM_STORE_BUFFER *response,\n\t\t\t\t\t  TPM_TAG tag,\n\t\t\t\t\t  uint32_t
      paramSize,\n\t\t\t\t\t  TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t  unsigned char
      *command,\n\t\t\t\t\t  TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3763,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3766,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3774,1
    - Dst: TPM_SHA1UpdateCmd
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3779,1
    - Dst: TPM_SHA1FinalCmd
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3782,1
    - Dst: TPM_SHA1Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3785,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - hashValue
    - sha1_context
    - hashData
    argTypes:
    - TPM_DIGEST
    - void**
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3787
      start: 3756
    functionDepth: 1
    functionLinenumber: 3756
    functionLinenumberEnd: 3787
    functionName: TPM_SHA1CompleteCommon
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 2
    functionsReached:
    - TPM_SHA1UpdateCmd
    - printf
    - TPM_SHA1FinalCmd
    - TPM_SHA1Delete
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SHA1CompleteCommon(TPM_DIGEST hashValue,\t\t/* output:
      digest */\n\t\t\t\t  void **sha1_context,\t\t/* IO: SHA1 context */\n\t\t\t\t
      \ TPM_SIZED_BUFFER *hashData)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3825,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3826,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3834,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3840,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3852,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3856,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3860,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3870,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3873,1
    - Dst: TPM_SizedBuffer_Allocate
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3879,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3883,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3890,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3892,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3900,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3906,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3917,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3924,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3929,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3931
      start: 3798
    functionDepth: 3
    functionLinenumber: 3798
    functionLinenumberEnd: 3931
    functionName: TPM_Process_GetRandom
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_GetInParamDigest
    - TPM_SizedBuffer_Delete
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_SizedBuffer_Store
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_GetOutParamDigest
    - TPM_SizedBuffer_Allocate
    - TPM_Random
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_GetRandom(tpm_state_t *tpm_state,\n\t\t\t\t
      TPM_STORE_BUFFER *response,\n\t\t\t\t TPM_TAG tag,\n\t\t\t\t uint32_t paramSize,\n\t\t\t\t
      TPM_COMMAND_CODE ordinal,\n\t\t\t\t unsigned char *command,\n\t\t\t\t TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3965,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3966,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3974,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3980,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3992,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:3996,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4000,1
    - Dst: TPM_StirRandomCmd
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4011,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4018,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4020,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4031,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4042,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4049,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4054,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4056
      start: 3938
    functionDepth: 3
    functionLinenumber: 3938
    functionLinenumberEnd: 4056
    functionName: TPM_Process_StirRandom
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_GetInParamDigest
    - TPM_SizedBuffer_Delete
    - TPM_StirRandomCmd
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_SizedBuffer_Load
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_StirRandom(tpm_state_t *tpm_state,\n\t\t\t\t
      \ TPM_STORE_BUFFER *response,\n\t\t\t\t  TPM_TAG tag,\n\t\t\t\t  uint32_t paramSize,\n\t\t\t\t
      \ TPM_COMMAND_CODE ordinal,\n\t\t\t\t  unsigned char *command,\n\t\t\t\t  TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4160,1
    - Dst: TPM_CertifyInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4161,1
    - Dst: TPM_CertifyInfo2_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4162,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4163,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4169,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4173,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4174,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4180,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4181,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4187,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4199,1
    - Dst: TPM_CheckRequestTag210
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4203,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4207,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4215,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4219,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4227,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4231,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4246,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4253,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4263,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4289,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4293,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4307,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4321,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4329,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4333,1
    - Dst: TPM_Auth2data_Check
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4347,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4360,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4367,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4377,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4384,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4388,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4396,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4402,1
    - Dst: TPM_Key_GetPCRUsage
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4411,1
    - Dst: TPM_Key_GetLocalityAtRelease
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4415,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4429,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4432,1
    - Dst: TPM_PCRInfo_CreateFromKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4451,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4456,1
    - Dst: TPM_PCRInfoShort_CreateFromKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4472,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4498,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4500,1
    - Dst: TPM_CertifyInfo_Set
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4502,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4505,1
    - Dst: TPM_CertifyInfo2_Set
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4507,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4514,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4516,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4520,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4527,1
    - Dst: TPM_RSASignToSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4528,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4538,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4540,1
    - Dst: TPM_CertifyInfo_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4549,1
    - Dst: TPM_CertifyInfo2_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4552,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4557,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4563,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4574,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4583,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4592,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4599,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4606,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4612,1
    - Dst: TPM_CertifyInfo_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4617,1
    - Dst: TPM_CertifyInfo2_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4618,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4619,1
    CyclomaticComplexity: 93
    EdgeCount: 93
    ICount: 217
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4621
      start: 4094
    functionDepth: 7
    functionLinenumber: 4094
    functionLinenumberEnd: 4621
    functionName: TPM_Process_CertifyKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_Key_GetPCRUsage
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_SizedBuffer_Store
    - TPM_Auth2data_Check
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_CertifyInfo_Store
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_Digest_Copy
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_CertifyInfo_Set
    - TPM_SizedBuffer_Init
    - TPM_CertifyInfo2_Init
    - TPM_CheckRequestTag210
    - TPM_SizedBuffer_Delete
    - TPM_Key_GetLocalityAtRelease
    - printf
    - TPM_CertifyInfo2_Set
    - TPM_PCRInfoShort_CreateFromKey
    - TPM_CertifyInfo2_Delete
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_CertifyInfo_Init
    - TPM_KeyHandleEntries_GetKey
    - TPM_RSASignToSizedBuffer
    - TPM_CertifyInfo2_Store
    - TPM_Nonce_Load
    - TPM_AuthParams_Get
    - TPM_PCRInfo_CreateFromKey
    - TPM_CheckState
    - TPM_CertifyInfo_Delete
    - TPM_Load32
    - TPM_Digest_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_CertifyKey(tpm_state_t *tpm_state,\n\t\t\t\t
      \ TPM_STORE_BUFFER *response,\n\t\t\t\t  TPM_TAG tag,\n\t\t\t\t  uint32_t paramSize,\n\t\t\t\t
      \ TPM_COMMAND_CODE ordinal,\n\t\t\t\t  unsigned char *command,\n\t\t\t\t  TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4705,1
    - Dst: TPM_CertifyInfo2_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4706,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4707,1
    - Dst: TPM_CmkMigauth_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4708,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4714,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4718,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4719,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4725,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4727,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4731,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4737,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4749,1
    - Dst: TPM_CheckRequestTag210
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4753,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4757,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4765,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4769,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4777,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4781,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4796,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4802,1
    - Dst: TPM_Key_GetStoreAsymkey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4809,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4816,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4841,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4845,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4859,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4873,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4881,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4885,1
    - Dst: TPM_Auth2data_Check
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4899,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4913,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4929,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4936,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4940,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4948,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4954,1
    - Dst: TPM_CertifyInfo2_Set
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4962,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4970,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4976,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4986,1
    - Dst: TPM_Key_GeneratePubkeyDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4988,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4993,1
    - Dst: TPM_CmkMigauth_CheckHMAC
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:4995,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5002,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5009,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5010,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5016,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5027,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5039,1
    - Dst: TPM_PCRInfoShort_CreateFromKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5045,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5060,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5061,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5067,1
    - Dst: TPM_RSASignToSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5068,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5078,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5080,1
    - Dst: TPM_CertifyInfo2_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5088,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5092,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5098,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5109,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5118,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5127,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5134,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5141,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5147,1
    - Dst: TPM_CertifyInfo2_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5152,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5153,1
    - Dst: TPM_CmkMigauth_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5154,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 204
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5156
      start: 4640
    functionDepth: 7
    functionLinenumber: 4640
    functionLinenumberEnd: 5156
    functionName: TPM_Process_CertifyKey2
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_Key_GetStoreAsymkey
    - TPM_SizedBuffer_Store
    - TPM_SizedBuffer_Set
    - TPM_Auth2data_Check
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_SHA1
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_Digest_Copy
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_CmkMigauth_CheckHMAC
    - TPM_Key_GeneratePubkeyDigest
    - TPM_SizedBuffer_Init
    - TPM_CertifyInfo2_Init
    - TPM_CheckRequestTag210
    - TPM_CmkMigauth_Init
    - TPM_SizedBuffer_Delete
    - printf
    - TPM_CertifyInfo2_Set
    - TPM_PCRInfoShort_CreateFromKey
    - TPM_CertifyInfo2_Delete
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Digest_Load
    - TPM_CertifyInfo2_Store
    - TPM_KeyHandleEntries_GetKey
    - TPM_RSASignToSizedBuffer
    - TPM_Nonce_Load
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_CmkMigauth_Delete
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_CertifyKey2(tpm_state_t *tpm_state,\n\t\t\t\t
      \  TPM_STORE_BUFFER *response,\n\t\t\t\t   TPM_TAG tag,\n\t\t\t\t   uint32_t
      paramSize,\n\t\t\t\t   TPM_COMMAND_CODE ordinal,\n\t\t\t\t   unsigned char *command,\n\t\t\t\t
      \  TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5216,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5217,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5223,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5229,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5230,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5236,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5248,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5252,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5256,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5265,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5280,1
    - Dst: TPM_SelfTestFullCmd
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5281,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5286,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5293,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5299,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5303,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5316,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5330,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5341,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5349,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5350,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5359,1
    - Dst: TPM_RSASignToSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5360,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5370,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5372,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5380,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5386,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5397,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5406,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5413,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5420,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_cryptoh.c:5425,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 101
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5427
      start: 5172
    functionDepth: 5
    functionLinenumber: 5172
    functionLinenumberEnd: 5427
    functionName: TPM_Process_CertifySelfTest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_cryptoh.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_SizedBuffer_Store
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_SHA1
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - htonl
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_SizedBuffer_Init
    - TPM_SizedBuffer_Delete
    - printf
    - TPM_CheckRequestTag10
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_RSASignToSizedBuffer
    - TPM_Nonce_Load
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_SelfTestFullCmd
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_CertifySelfTest(tpm_state_t *tpm_state,\n\t\t\t\t
      \      TPM_STORE_BUFFER *response,\n\t\t\t\t       TPM_TAG tag,\n\t\t\t\t       uint32_t
      paramSize,\n\t\t\t\t       TPM_COMMAND_CODE ordinal,\n\t\t\t\t       unsigned
      char *command,\n\t\t\t\t       TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sbuffer
    argTypes:
    - TPM_STORE_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: TPM_Sbuffer_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TPM_Sbuffer_Init(TPM_STORE_BUFFER *sbuffer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_store.c:90,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_store.c:95,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_store.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - sbuffer
    - stream
    - stream_size
    argTypes:
    - TPM_STORE_BUFFER*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 106
    functionName: TPM_Sbuffer_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Sbuffer_Load(TPM_STORE_BUFFER *sbuffer,\n                            unsigned
      char **stream,\n                            uint32_t *stream_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_store.c:118,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_store.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sbuffer
    argTypes:
    - TPM_STORE_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: TPM_Sbuffer_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 35
    functionsReached:
    - free
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: void
    signature: void TPM_Sbuffer_Delete(TPM_STORE_BUFFER *sbuffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sbuffer
    argTypes:
    - TPM_STORE_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: TPM_Sbuffer_Clear
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TPM_Sbuffer_Clear(TPM_STORE_BUFFER *sbuffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - sbuffer
    - buffer
    - length
    argTypes:
    - TPM_STORE_BUFFER*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: TPM_Sbuffer_Get
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TPM_Sbuffer_Get(TPM_STORE_BUFFER *sbuffer,\n                     const
      unsigned char **buffer,\n                     uint32_t *length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - sbuffer
    - buffer
    - length
    - total
    argTypes:
    - TPM_STORE_BUFFER*
    - unsigned char**
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: TPM_Sbuffer_GetAll
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TPM_Sbuffer_GetAll(TPM_STORE_BUFFER *sbuffer,\n\t\t\tunsigned
      char **buffer,\n\t\t\tuint32_t *length,\n\t\t\tuint32_t *total)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_store.c:174,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_store.c:182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - sbuffer
    - buffer
    - length
    - total
    argTypes:
    - TPM_STORE_BUFFER*
    - unsigned char*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 200
    functionName: TPM_Sbuffer_Set
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Sbuffer_Set(TPM_STORE_BUFFER *sbuffer,\n\t\t\t   unsigned
      char *buffer,\n\t\t\t   const uint32_t length,\n\t\t\t   const uint32_t total)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_store.c:229,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_store.c:246,1
    - Dst: TPM_Realloc
      Src: /src/libtpms/src/tpm12/tpm_store.c:250,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_store.c:261,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - sbuffer
    - data
    - data_length
    argTypes:
    - TPM_STORE_BUFFER*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 266
    functionName: TPM_Sbuffer_Append
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 34
    functionsReached:
    - TPM_Realloc
    - printf
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Sbuffer_Append(TPM_STORE_BUFFER *sbuffer,\n                              const
      unsigned char *data,\n                              size_t data_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_store.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sbuffer
    - data
    argTypes:
    - TPM_STORE_BUFFER*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 3
    functionLinenumber: 271
    functionLinenumberEnd: 277
    functionName: TPM_Sbuffer_Append8
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Sbuffer_Append8(TPM_STORE_BUFFER *sbuffer, uint8_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htons
      Src: /src/libtpms/src/tpm12/tpm_store.c:286,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_store.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sbuffer
    - data
    argTypes:
    - TPM_STORE_BUFFER*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 289
    functionName: TPM_Sbuffer_Append16
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 33
    functionsReached:
    - TPM_Sbuffer_Append
    - htons
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Sbuffer_Append16(TPM_STORE_BUFFER *sbuffer, uint16_t
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_store.c:298,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_store.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sbuffer
    - data
    argTypes:
    - TPM_STORE_BUFFER*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 301
    functionName: TPM_Sbuffer_Append32
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 32
    functionsReached:
    - TPM_Sbuffer_Append
    - htonl
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Sbuffer_Append32(TPM_STORE_BUFFER *sbuffer, uint32_t
      data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_store.c:317,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_store.c:318,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_store.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - destSbuffer
    - srcSbuffer
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_STORE_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 309
    functionDepth: 4
    functionLinenumber: 309
    functionLinenumberEnd: 324
    functionName: TPM_Sbuffer_AppendAsSizedBuffer
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append
    - TPM_Sbuffer_Get
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Sbuffer_AppendAsSizedBuffer(TPM_STORE_BUFFER *destSbuffer,\n
      \                                          TPM_STORE_BUFFER *srcSbuffer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_store.c:338,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_store.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - destSbuffer
    - srcSbuffer
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_STORE_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 342
    functionName: TPM_Sbuffer_AppendSBuffer
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append
    - TPM_Sbuffer_Get
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Sbuffer_AppendSBuffer(TPM_STORE_BUFFER *destSbuffer,\n
      \                                    TPM_STORE_BUFFER *srcSbuffer)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_store.c:366,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_store.c:384,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_store.c:388,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_store.c:393,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - response
    - request_tag
    - returnCode
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - TPM_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 359
    functionDepth: 4
    functionLinenumber: 359
    functionLinenumberEnd: 396
    functionName: TPM_Sbuffer_StoreInitialResponse
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 59
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Sbuffer_StoreInitialResponse(TPM_STORE_BUFFER *response,\n
      \                                           TPM_TAG request_tag,\n                                            TPM_RESULT
      returnCode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_store.c:418,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_store.c:420,1
    - Dst: TPM12_GetBufferSize
      Src: /src/libtpms/src/tpm12/tpm_store.c:421,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_store.c:422,1
    - Dst: TPM12_GetBufferSize
      Src: /src/libtpms/src/tpm12/tpm_store.c:423,1
    - Dst: TPM_Sbuffer_AdjustParamSize
      Src: /src/libtpms/src/tpm12/tpm_store.c:427,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_store.c:433,1
    - Dst: TPM_Sbuffer_AdjustReturnCode
      Src: /src/libtpms/src/tpm12/tpm_store.c:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - sbuffer
    - returnCode
    - tpm_state
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_RESULT
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 440
    functionName: TPM_Sbuffer_StoreFinalResponse
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 59
    functionsReached:
    - TPM_Sbuffer_AdjustParamSize
    - TPM_Sbuffer_Get
    - TPM12_GetBufferSize
    - TPM_Sbuffer_AdjustReturnCode
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Sbuffer_StoreFinalResponse(TPM_STORE_BUFFER *sbuffer,\n
      \                                         TPM_RESULT returnCode,\n                                          tpm_state_t
      *tpm_state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_store.c:455,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_store.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - sbuffer
    argTypes:
    - TPM_STORE_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 459
    functionName: TPM_Sbuffer_AdjustParamSize
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 1
    functionsReached:
    - htonl
    - memcpy
    linkageType: ''
    returnType: void
    signature: void TPM_Sbuffer_AdjustParamSize(TPM_STORE_BUFFER *sbuffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_store.c:475,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_store.c:479,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_store.c:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - returnCode
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 467
    functionDepth: 4
    functionLinenumber: 467
    functionLinenumberEnd: 486
    functionName: TPM_Sbuffer_AdjustReturnCode
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Sbuffer_AdjustReturnCode(TPM_STORE_BUFFER *sbuffer,
      TPM_RESULT returnCode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_store.c:499,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_store.c:500,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_store.c:504,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_store.c:507,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_store.c:512,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_store.c:517,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_store.c:519,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 521
    functionName: TPM_Sbuffer_Test
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Init
    - TPM_Sbuffer_Delete
    - printf
    - TPM_Random
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Sbuffer_Test(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buffer
    - offset
    - value
    argTypes:
    - unsigned char*
    - unsigned int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 531
    functionName: STORE32
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void STORE32(unsigned char *buffer, unsigned int offset, uint32_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - buffer
    - offset
    - value
    argTypes:
    - unsigned char*
    - unsigned int
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 537
    functionName: STORE16
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void STORE16(unsigned char *buffer, unsigned int offset, uint16_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buffer
    - offset
    - value
    argTypes:
    - unsigned char*
    - unsigned int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 543
    functionName: STORE8
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void STORE8(unsigned char *buffer, unsigned int offset, uint8_t value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_store.c:560,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tpm_bool
    - tpm_bitmap
    - pos
    argTypes:
    - TPM_BOOL*
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 569
    functionName: TPM_Bitmap_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Bitmap_Load(TPM_BOOL *tpm_bool,\n\t\t\t   uint32_t
      tpm_bitmap,\n\t\t\t   uint32_t *pos)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_store.c:586,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - tpm_bitmap
    - tpm_bool
    - pos
    argTypes:
    - uint32_t*
    - TPM_BOOL
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 597
    functionName: TPM_Bitmap_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_store.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Bitmap_Store(uint32_t *tpm_bitmap,\n\t\t\t    TPM_BOOL
      tpm_bool,\n\t\t\t    uint32_t *pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:188,1
    - Dst: TPM_Version_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:189,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_process.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tpm_cap_version_info
    argTypes:
    - TPM_CAP_VERSION_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 197
    functionName: TPM_CapVersionInfo_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 0
    functionsReached:
    - TPM_Version_Init
    - printf
    - memcpy
    linkageType: ''
    returnType: void
    signature: void TPM_CapVersionInfo_Init(TPM_CAP_VERSION_INFO *tpm_cap_version_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:204,1
    - Dst: TPM_Version_Set
      Src: /src/libtpms/src/tpm12/tpm_process.c:205,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_process.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - tpm_cap_version_info
    - tpm_permanent_data
    argTypes:
    - TPM_CAP_VERSION_INFO*
    - TPM_PERMANENT_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 213
    functionName: TPM_CapVersionInfo_Set
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Version_Set
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void TPM_CapVersionInfo_Set(TPM_CAP_VERSION_INFO *tpm_cap_version_info,\n\t\t\t
      \   TPM_PERMANENT_DATA *tpm_permanent_data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:232,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_process.c:235,1
    - Dst: TPM_Version_Load
      Src: /src/libtpms/src/tpm12/tpm_process.c:239,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_process.c:243,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_process.c:247,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_process.c:252,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_process.c:257,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_process.c:261,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_process.c:266,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - tpm_cap_version_info
    - stream
    - stream_size
    argTypes:
    - TPM_CAP_VERSION_INFO*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 271
    functionName: TPM_CapVersionInfo_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - TPM_CheckTag
    - TPM_Loadn
    - TPM_Malloc
    - printf
    - TPM_Version_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CapVersionInfo_Load(TPM_CAP_VERSION_INFO *tpm_cap_version_info,\n\t\t\t\t
      \  unsigned char **stream,\n\t\t\t\t   uint32_t *stream_size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:285,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_process.c:288,1
    - Dst: TPM_Version_Store
      Src: /src/libtpms/src/tpm12/tpm_process.c:292,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_process.c:296,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_process.c:300,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_process.c:305,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_process.c:310,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_process.c:314,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - sbuffer
    - tpm_cap_version_info
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_CAP_VERSION_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 280
    functionDepth: 4
    functionLinenumber: 280
    functionLinenumberEnd: 319
    functionName: TPM_CapVersionInfo_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_Version_Store
    - TPM_Sbuffer_Append
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CapVersionInfo_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \   const TPM_CAP_VERSION_INFO *tpm_cap_version_info)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:332,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_process.c:334,1
    - Dst: TPM_CapVersionInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_cap_version_info
    argTypes:
    - TPM_CAP_VERSION_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 338
    functionName: TPM_CapVersionInfo_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - printf
    - free
    - TPM_CapVersionInfo_Init
    linkageType: ''
    returnType: void
    signature: void TPM_CapVersionInfo_Delete(TPM_CAP_VERSION_INFO *tpm_cap_version_info)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - entry
    - ordinalTable
    - ordinal
    argTypes:
    - TPM_ORDINAL_TABLE**
    - TPM_ORDINAL_TABLE*
    - TPM_COMMAND_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2056
    functionDepth: 0
    functionLinenumber: 2056
    functionLinenumberEnd: 2073
    functionName: TPM_OrdinalTable_GetEntry
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_OrdinalTable_GetEntry(TPM_ORDINAL_TABLE **entry,\n\t\t\t\t
      \    TPM_ORDINAL_TABLE *ordinalTable,\n\t\t\t\t     TPM_COMMAND_CODE ordinal)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2087,1
    - Dst: TPM_OrdinalTable_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_process.c:2090,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - tpm_process_function
    - ordinalTable
    - ordinal
    argTypes:
    - tpm_process_function_t*
    - TPM_ORDINAL_TABLE*
    - TPM_COMMAND_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2080
    functionDepth: 1
    functionLinenumber: 2080
    functionLinenumberEnd: 2103
    functionName: TPM_OrdinalTable_GetProcessFunction
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_OrdinalTable_GetEntry
    linkageType: ''
    returnType: void
    signature: "void TPM_OrdinalTable_GetProcessFunction(tpm_process_function_t *tpm_process_function,\n\t\t\t\t\t
      TPM_ORDINAL_TABLE *ordinalTable,\n\t\t\t\t\t TPM_COMMAND_CODE ordinal)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2116,1
    - Dst: TPM_OrdinalTable_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_process.c:2118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - auditable
    - ordinal
    argTypes:
    - TPM_BOOL*
    - TPM_COMMAND_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 2110
    functionDepth: 1
    functionLinenumber: 2110
    functionLinenumberEnd: 2137
    functionName: TPM_OrdinalTable_GetAuditable
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_OrdinalTable_GetEntry
    linkageType: ''
    returnType: void
    signature: "void TPM_OrdinalTable_GetAuditable(TPM_BOOL *auditable,\n\t\t\t\t
      \  TPM_COMMAND_CODE ordinal)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_OrdinalTable_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_process.c:2155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - auditDefault
    - ordinal
    argTypes:
    - TPM_BOOL*
    - TPM_COMMAND_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2148
    functionDepth: 1
    functionLinenumber: 2148
    functionLinenumberEnd: 2166
    functionName: TPM_OrdinalTable_GetAuditDefault
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 0
    functionsReached:
    - TPM_OrdinalTable_GetEntry
    linkageType: ''
    returnType: void
    signature: "void TPM_OrdinalTable_GetAuditDefault(TPM_BOOL *auditDefault,\n\t\t\t\t
      \     TPM_COMMAND_CODE ordinal)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_OrdinalTable_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_process.c:2181,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ownerPermissionBlock
    - ownerPermissionPosition
    - ordinal
    argTypes:
    - uint16_t*
    - uint32_t*
    - TPM_COMMAND_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2173
    functionDepth: 1
    functionLinenumber: 2173
    functionLinenumberEnd: 2194
    functionName: TPM_OrdinalTable_GetOwnerPermission
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 0
    functionsReached:
    - TPM_OrdinalTable_GetEntry
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_OrdinalTable_GetOwnerPermission(uint16_t *ownerPermissionBlock,\n\t\t\t\t\t
      \      uint32_t *ownerPermissionPosition,\n\t\t\t\t\t       TPM_COMMAND_CODE
      ordinal)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_OrdinalTable_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_process.c:2208,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - keyPermissionBlock
    - keyPermissionPosition
    - ordinal
    argTypes:
    - uint16_t*
    - uint32_t*
    - TPM_COMMAND_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2200
    functionDepth: 1
    functionLinenumber: 2200
    functionLinenumberEnd: 2220
    functionName: TPM_OrdinalTable_GetKeyPermission
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 0
    functionsReached:
    - TPM_OrdinalTable_GetEntry
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_OrdinalTable_GetKeyPermission(uint16_t *keyPermissionBlock,\n\t\t\t\t\t
      \    uint32_t *keyPermissionPosition,\n\t\t\t\t\t     TPM_COMMAND_CODE ordinal)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2254,1
    - Dst: TPM_Process_GetCommandParams
      Src: /src/libtpms/src/tpm12/tpm_process.c:2263,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2268,1
    - Dst: TPM_OrdinalTable_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_process.c:2269,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2294,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2303,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2311,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2328,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2335,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 8
    argNames:
    - datawStart
    - datawLen
    - keyHandles
    - keyHandle1Index
    - keyHandle2Index
    - ordinal
    - transportWrappable
    - wrappedCmd
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - TPM_COMMAND_CODE*
    - TPM_BOOL*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2237
    functionDepth: 1
    functionLinenumber: 2237
    functionLinenumberEnd: 2342
    functionName: TPM_OrdinalTable_ParseWrappedCmd
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_Process_GetCommandParams
    - printf
    - TPM_OrdinalTable_GetEntry
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_OrdinalTable_ParseWrappedCmd(uint32_t *datawStart,\n\t\t\t\t\t
      \   uint32_t *datawLen,\n\t\t\t\t\t    uint32_t *keyHandles,\n\t\t\t\t\t    uint32_t
      *keyHandle1Index,\n\t\t\t\t\t    uint32_t *keyHandle2Index,\n\t\t\t\t\t    TPM_COMMAND_CODE
      *ordinal,\n\t\t\t\t\t    TPM_BOOL *transportWrappable,\n\t\t\t\t\t    TPM_SIZED_BUFFER
      *wrappedCmd)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2366,1
    - Dst: TPM_Process_GetResponseParams
      Src: /src/libtpms/src/tpm12/tpm_process.c:2370,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2376,1
    - Dst: TPM_OrdinalTable_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_process.c:2377,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2401,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2410,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2418,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 6
    argNames:
    - datawStart
    - datawLen
    - rcw
    - ordinal
    - wrappedRspStream
    - wrappedRspStreamSize
    argTypes:
    - uint32_t*
    - uint32_t*
    - TPM_RESULT*
    - TPM_COMMAND_CODE
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2421
      start: 2353
    functionDepth: 1
    functionLinenumber: 2353
    functionLinenumberEnd: 2421
    functionName: TPM_OrdinalTable_ParseWrappedRsp
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Process_GetResponseParams
    - TPM_OrdinalTable_GetEntry
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_OrdinalTable_ParseWrappedRsp(uint32_t *datawStart,\n\t\t\t\t\t
      \   uint32_t *datawLen,\n\t\t\t\t\t    TPM_RESULT *rcw,\n\t\t\t\t\t    TPM_COMMAND_CODE
      ordinal,\n\t\t\t\t\t    const unsigned char *wrappedRspStream,\n\t\t\t\t\t    uint32_t
      wrappedRspStreamSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - tpm_key_handle_entries
    argTypes:
    - TPM_KEY_HANDLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2433
      start: 2425
    functionDepth: 1
    functionLinenumber: 2425
    functionLinenumberEnd: 2433
    functionName: TPM_KeyHandleEntries_Trace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_KeyHandleEntries_Trace(TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2446
      start: 2437
    functionDepth: 1
    functionLinenumber: 2437
    functionLinenumberEnd: 2446
    functionName: TPM_State_Trace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_State_Trace(tpm_state_t *tpm_state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Sbuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_process.c:2489,1
    - Dst: TPM_Process
      Src: /src/libtpms/src/tpm12/tpm_process.c:2495,1
    - Dst: TPM_Sbuffer_GetAll
      Src: /src/libtpms/src/tpm12/tpm_process.c:2502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - response
    - response_size
    - response_total
    - command
    - command_size
    argTypes:
    - unsigned char**
    - uint32_t*
    - uint32_t*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2477
    functionDepth: 2
    functionLinenumber: 2477
    functionLinenumberEnd: 2508
    functionName: TPM_ProcessA
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_GetAll
    - TPM_Process
    - TPM_Sbuffer_Set
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ProcessA(unsigned char **response,\n\t\t\tuint32_t
      *response_size,\n\t\t\tuint32_t *response_total,\n\t\t\tunsigned char *command,\t\t/*
      complete command array */\n\t\t\tuint32_t command_size)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:2537,1
    - Dst: TPM_Sbuffer_Clear
      Src: /src/libtpms/src/tpm12/tpm_process.c:2544,1
    - Dst: TPM_Process_GetCommandParams
      Src: /src/libtpms/src/tpm12/tpm_process.c:2546,1
    - Dst: TPM_Process_Preprocess
      Src: /src/libtpms/src/tpm12/tpm_process.c:2551,1
    - Dst: TPM_KeyHandleEntries_Trace
      Src: /src/libtpms/src/tpm12/tpm_process.c:2555,1
    - Dst: TPM_OrdinalTable_GetProcessFunction
      Src: /src/libtpms/src/tpm12/tpm_process.c:2560,1
    - Dst: tpm_process_function
      Src: /src/libtpms/src/tpm12/tpm_process.c:2562,1
    - Dst: TPM_KeyHandleEntries_Trace
      Src: /src/libtpms/src/tpm12/tpm_process.c:2569,1
    - Dst: TPM_State_Trace
      Src: /src/libtpms/src/tpm12/tpm_process.c:2573,1
    - Dst: TPM_VolatileAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_process.c:2578,1
    - Dst: TPM_Sbuffer_AppendSBuffer
      Src: /src/libtpms/src/tpm12/tpm_process.c:2584,1
    - Dst: TPM_Sbuffer_Clear
      Src: /src/libtpms/src/tpm12/tpm_process.c:2608,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2610,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_process.c:2612,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_process.c:2616,1
    - Dst: TPM_Sbuffer_AppendSBuffer
      Src: /src/libtpms/src/tpm12/tpm_process.c:2619,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_process.c:2625,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 51
    argCount: 3
    argNames:
    - response
    - command
    - command_size
    argTypes:
    - TPM_STORE_BUFFER*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2627
      start: 2521
    functionDepth: 5
    functionLinenumber: 2521
    functionLinenumberEnd: 2627
    functionName: TPM_Process
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_Process_GetCommandParams
    - TPM_Sbuffer_AppendSBuffer
    - TPM_VolatileAll_NVStore
    - TPM_Sbuffer_Clear
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Sbuffer_Delete
    - TPM_Process_Preprocess
    - TPM_KeyHandleEntries_Trace
    - printf
    - TPM_State_Trace
    - TPM_OrdinalTable_GetProcessFunction
    - tpm_process_function
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process(TPM_STORE_BUFFER *response,\n\t\t       unsigned
      char *command,\t\t/* complete command array */\n\t\t       uint32_t command_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2665,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:2666,1
    - Dst: TPM_Process_GetCommandParams
      Src: /src/libtpms/src/tpm12/tpm_process.c:2670,1
    - Dst: TPM_Process_Preprocess
      Src: /src/libtpms/src/tpm12/tpm_process.c:2675,1
    - Dst: TPM_OrdinalTable_GetProcessFunction
      Src: /src/libtpms/src/tpm12/tpm_process.c:2680,1
    - Dst: tpm_process_function
      Src: /src/libtpms/src/tpm12/tpm_process.c:2682,1
    - Dst: TPM_Sbuffer_AppendSBuffer
      Src: /src/libtpms/src/tpm12/tpm_process.c:2689,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_process.c:2701,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_process.c:2706,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 5
    argNames:
    - response
    - command
    - command_size
    - targetInstance
    - transportInternal
    argTypes:
    - TPM_STORE_BUFFER*
    - unsigned char*
    - uint32_t
    - tpm_state_t*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2651
    functionDepth: 4
    functionLinenumber: 2651
    functionLinenumberEnd: 2708
    functionName: TPM_Process_Wrapped
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_Process_GetCommandParams
    - TPM_Sbuffer_AppendSBuffer
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Sbuffer_Delete
    - TPM_Process_Preprocess
    - printf
    - TPM_OrdinalTable_GetProcessFunction
    - tpm_process_function
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_Wrapped(TPM_STORE_BUFFER *response,\n\t\t\t
      \      unsigned char *command,\t\t/* complete command array */\n\t\t\t       uint32_t
      command_size,\t\t/* actual bytes in command */\n\t\t\t       tpm_state_t *targetInstance,\t/*
      global TPM state */\n\t\t\t       TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2726,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_process.c:2729,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_process.c:2733,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_process.c:2737,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2744,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2752,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - tag
    - paramSize
    - ordinal
    - command
    - command_size
    argTypes:
    - TPM_TAG*
    - uint32_t*
    - TPM_COMMAND_CODE*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2757
      start: 2718
    functionDepth: 2
    functionLinenumber: 2718
    functionLinenumberEnd: 2757
    functionName: TPM_Process_GetCommandParams
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 3
    functionsReached:
    - TPM_Load16
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_GetCommandParams(TPM_TAG *tag,\n\t\t\t\t\tuint32_t
      *paramSize ,\n\t\t\t\t\tTPM_COMMAND_CODE *ordinal,\n\t\t\t\t\tunsigned char
      **command,\n\t\t\t\t\tuint32_t *command_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2775,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_process.c:2778,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_process.c:2782,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_process.c:2786,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2793,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2801,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - tag
    - paramSize
    - returnCode
    - response
    - response_size
    argTypes:
    - TPM_TAG*
    - uint32_t*
    - TPM_RESULT*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2767
    functionDepth: 2
    functionLinenumber: 2767
    functionLinenumberEnd: 2806
    functionName: TPM_Process_GetResponseParams
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_Load16
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_GetResponseParams(TPM_TAG *tag,\n\t\t\t\t\t
      uint32_t *paramSize ,\n\t\t\t\t\t TPM_RESULT *returnCode,\n\t\t\t\t\t unsigned
      char **response,\n\t\t\t\t\t uint32_t *response_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2817,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - tpm_tag
    argTypes:
    - TPM_TAG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2821
      start: 2810
    functionDepth: 1
    functionLinenumber: 2810
    functionLinenumberEnd: 2821
    functionName: TPM_CheckRequestTag210
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_CheckRequestTag210(TPM_TAG tpm_tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2829,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - tpm_tag
    argTypes:
    - TPM_TAG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2833
      start: 2823
    functionDepth: 1
    functionLinenumber: 2823
    functionLinenumberEnd: 2833
    functionName: TPM_CheckRequestTag21
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_CheckRequestTag21(TPM_TAG tpm_tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_tag
    argTypes:
    - TPM_TAG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2835
    functionDepth: 1
    functionLinenumber: 2835
    functionLinenumberEnd: 2844
    functionName: TPM_CheckRequestTag2
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_CheckRequestTag2(TPM_TAG tpm_tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - tpm_tag
    argTypes:
    - TPM_TAG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2856
      start: 2846
    functionDepth: 1
    functionLinenumber: 2846
    functionLinenumberEnd: 2856
    functionName: TPM_CheckRequestTag10
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 13
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_CheckRequestTag10(TPM_TAG tpm_tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_tag
    argTypes:
    - TPM_TAG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2867
      start: 2858
    functionDepth: 1
    functionLinenumber: 2858
    functionLinenumberEnd: 2867
    functionName: TPM_CheckRequestTag1
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 18
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_CheckRequestTag1(TPM_TAG tpm_tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_tag
    argTypes:
    - TPM_TAG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2878
      start: 2869
    functionDepth: 1
    functionLinenumber: 2869
    functionLinenumberEnd: 2878
    functionName: TPM_CheckRequestTag0
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 25
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_CheckRequestTag0(TPM_TAG tpm_tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2890,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2896,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_process.c:2898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2880
    functionDepth: 5
    functionLinenumber: 2880
    functionLinenumberEnd: 2900
    functionName: TPM_Process_Unused
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Sbuffer_StoreInitialResponse
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_Unused(tpm_state_t *tpm_state,\n\t\t\t      TPM_STORE_BUFFER
      *response,\n\t\t\t      TPM_TAG tag,\n\t\t\t      uint32_t paramSize,\n\t\t\t
      \     TPM_COMMAND_CODE ordinal,\n\t\t\t      unsigned char *command,\n\t\t\t
      \     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2915,1
    - Dst: TPM_Authdata_CheckState
      Src: /src/libtpms/src/tpm12/tpm_process.c:2919,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2928,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2937,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2951,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2961,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2970,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 3
    argNames:
    - tpm_state
    - tag
    - tpm_check_map
    argTypes:
    - tpm_state_t*
    - TPM_TAG
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2976
      start: 2909
    functionDepth: 3
    functionLinenumber: 2909
    functionLinenumberEnd: 2976
    functionName: TPM_CheckState
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 59
    functionsReached:
    - TPM_Authdata_CheckState
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CheckState(tpm_state_t *tpm_state,\n\t\t\t  TPM_TAG
      tag,\n\t\t\t  uint32_t tpm_check_map)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:2990,1
    - Dst: TPM_ContinueSelfTestCmd
      Src: /src/libtpms/src/tpm12/tpm_process.c:3023,1
    - Dst: TPM_Check_SHA1Context
      Src: /src/libtpms/src/tpm12/tpm_process.c:3029,1
    - Dst: TPM_SaveState_NVDelete
      Src: /src/libtpms/src/tpm12/tpm_process.c:3038,1
    - Dst: TPM_TransportSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_process.c:3051,1
    - Dst: TPM_IO_GetLocality
      Src: /src/libtpms/src/tpm12/tpm_process.c:3059,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 26
    argCount: 3
    argNames:
    - tpm_state
    - ordinal
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_COMMAND_CODE
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3063
      start: 2984
    functionDepth: 3
    functionLinenumber: 2984
    functionLinenumberEnd: 3063
    functionName: TPM_Process_Preprocess
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 2
    functionsReached:
    - TPM_TransportSessions_TerminateHandle
    - TPM_ContinueSelfTestCmd
    - TPM_SaveState_NVDelete
    - TPM_IO_GetLocality
    - printf
    - TPM_Check_SHA1Context
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_Preprocess(tpm_state_t *tpm_state,\n\t\t\t\t
      \ TPM_COMMAND_CODE ordinal,\n\t\t\t\t  TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3111,1
    - Dst: TPM_SHA1Delete
      Src: /src/libtpms/src/tpm12/tpm_process.c:3112,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 3
    argNames:
    - tpm_state
    - ordinal
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_COMMAND_CODE
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3116
      start: 3084
    functionDepth: 1
    functionLinenumber: 3084
    functionLinenumberEnd: 3116
    functionName: TPM_Check_SHA1Context
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_SHA1Delete
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Check_SHA1Context(tpm_state_t *tpm_state,\n\t\t\t\t
      TPM_COMMAND_CODE ordinal,\n\t\t\t\t TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3152,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3159,1
    - Dst: TPM_OrdinalAuditStatus_GetAuditStatus
      Src: /src/libtpms/src/tpm12/tpm_process.c:3161,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_process.c:3177,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_process.c:3183,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_process.c:3188,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 9
    argNames:
    - inParamDigest
    - auditStatus
    - transportEncrypt
    - tpm_state
    - tag
    - ordinal
    - inParamStart
    - inParamEnd
    - transportInternal
    argTypes:
    - TPM_DIGEST
    - TPM_BOOL*
    - TPM_BOOL*
    - tpm_state_t*
    - TPM_TAG
    - TPM_COMMAND_CODE
    - unsigned char*
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3193
      start: 3139
    functionDepth: 3
    functionLinenumber: 3139
    functionLinenumberEnd: 3193
    functionName: TPM_GetInParamDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 58
    functionsReached:
    - TPM_SHA1
    - TPM_PrintFour
    - TPM_OrdinalAuditStatus_GetAuditStatus
    - printf
    - htonl
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetInParamDigest(TPM_DIGEST inParamDigest,\t\t/* output
      */\n\t\t\t\tTPM_BOOL *auditStatus,\t\t\t/* output */\n\t\t\t\tTPM_BOOL *transportEncrypt,\t\t/*
      output */\n\t\t\t\ttpm_state_t *tpm_state,\n\t\t\t\tTPM_TAG tag,\n\t\t\t\tTPM_COMMAND_CODE
      ordinal,\n\t\t\t\tunsigned char *inParamStart,\n\t\t\t\tunsigned char *inParamEnd,\n\t\t\t\tTPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3213,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_process.c:3216,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_process.c:3217,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_process.c:3222,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_process.c:3228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 8
    argNames:
    - outParamDigest
    - auditStatus
    - transportEncrypt
    - tag
    - returnCode
    - ordinal
    - outParamStart
    - outParamLength
    argTypes:
    - TPM_DIGEST
    - TPM_BOOL
    - TPM_BOOL
    - TPM_TAG
    - TPM_RESULT
    - TPM_COMMAND_CODE
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3233
      start: 3200
    functionDepth: 3
    functionLinenumber: 3200
    functionLinenumberEnd: 3233
    functionName: TPM_GetOutParamDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 58
    functionsReached:
    - TPM_SHA1
    - printf
    - htonl
    - TPM_PrintFour
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetOutParamDigest(TPM_DIGEST outParamDigest,\t/* output
      */\n\t\t\t\t TPM_BOOL auditStatus,\t\t/* input audit status */\n\t\t\t\t TPM_BOOL
      transportEncrypt,\t/* wrapped in encrypt transport */\n\t\t\t\t TPM_TAG tag,\t\t\t\n\t\t\t\t
      TPM_RESULT returnCode,\n\t\t\t\t TPM_COMMAND_CODE ordinal,\t/* command ordinal
      (hbo) */\n\t\t\t\t unsigned char *outParamStart,\t/* starting point of param's
      */\n\t\t\t\t uint32_t outParamLength)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3255,1
    - Dst: TPM_Digest_IsZero
      Src: /src/libtpms/src/tpm12/tpm_process.c:3263,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3267,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_process.c:3269,1
    - Dst: TPM_AuditDigest_ExtendIn
      Src: /src/libtpms/src/tpm12/tpm_process.c:3283,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_process.c:3291,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_process.c:3292,1
    - Dst: TPM_AuditDigest_ExtendIn
      Src: /src/libtpms/src/tpm12/tpm_process.c:3297,1
    - Dst: TPM_AuditDigest_ExtendOut
      Src: /src/libtpms/src/tpm12/tpm_process.c:3315,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_process.c:3323,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_process.c:3324,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_process.c:3325,1
    - Dst: TPM_AuditDigest_ExtendOut
      Src: /src/libtpms/src/tpm12/tpm_process.c:3331,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 5
    argNames:
    - tpm_state
    - transportEncrypt
    - inParamDigest
    - outParamDigest
    - ordinal
    argTypes:
    - tpm_state_t*
    - TPM_BOOL
    - TPM_DIGEST
    - TPM_DIGEST
    - TPM_COMMAND_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3350
      start: 3243
    functionDepth: 2
    functionLinenumber: 3243
    functionLinenumberEnd: 3350
    functionName: TPM_ProcessAudit
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 59
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_AuditDigest_ExtendOut
    - TPM_SHA1
    - TPM_AuditDigest_ExtendIn
    - printf
    - htonl
    - TPM_Digest_IsZero
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ProcessAudit(tpm_state_t *tpm_state,\n\t\t\t    TPM_BOOL
      transportEncrypt,\t/* wrapped in encrypt transport */\n\t\t\t    TPM_DIGEST
      inParamDigest,\n\t\t\t    TPM_DIGEST outParamDigest,\n\t\t\t    TPM_COMMAND_CODE
      ordinal)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3394,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:3395,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:3396,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3404,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3408,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_process.c:3409,1
    - Dst: TPM_GetSubCapInt
      Src: /src/libtpms/src/tpm12/tpm_process.c:3413,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_process.c:3419,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_process.c:3432,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_process.c:3436,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3440,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3471,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3476,1
    - Dst: TPM_ContinueSelfTestCmd
      Src: /src/libtpms/src/tpm12/tpm_process.c:3477,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3486,1
    - Dst: TPM_GetCapabilityCommon
      Src: /src/libtpms/src/tpm12/tpm_process.c:3488,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3495,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_process.c:3497,1
    - Dst: TPM_Sbuffer_AppendAsSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_process.c:3504,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_process.c:3510,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_process.c:3521,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_process.c:3528,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_process.c:3533,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_process.c:3534,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 69
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3536
      start: 3364
    functionDepth: 5
    functionLinenumber: 3364
    functionLinenumberEnd: 3536
    functionName: TPM_Process_GetCapability
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_GetInParamDigest
    - TPM_ContinueSelfTestCmd
    - TPM_GetCapabilityCommon
    - TPM_SizedBuffer_Delete
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Sbuffer_Delete
    - TPM_GetSubCapInt
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_GetOutParamDigest
    - TPM_Sbuffer_Init
    - TPM_Sbuffer_AppendAsSizedBuffer
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_GetCapability(tpm_state_t *tpm_state,\n\t\t\t\t
      \    TPM_STORE_BUFFER *response,\n\t\t\t\t     TPM_TAG tag,\n\t\t\t\t     uint32_t
      paramSize,\n\t\t\t\t     TPM_COMMAND_CODE ordinal,\n\t\t\t\t     unsigned char
      *command,\n\t\t\t\t     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_process.c:3552,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3553,1
    - Dst: htons
      Src: /src/libtpms/src/tpm12/tpm_process.c:3556,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - subCap16
    - subCap32
    - subCap
    argTypes:
    - uint16_t*
    - uint32_t*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3559
      start: 3545
    functionDepth: 1
    functionLinenumber: 3545
    functionLinenumberEnd: 3559
    functionName: TPM_GetSubCapInt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - printf
    - htonl
    - htons
    linkageType: ''
    returnType: void
    signature: "void TPM_GetSubCapInt(uint16_t *subCap16,\n\t\t      uint32_t *subCap32,\n\t\t
      \     TPM_SIZED_BUFFER *subCap)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3581,1
    - Dst: TPM_GetCapability_CapOrd
      Src: /src/libtpms/src/tpm12/tpm_process.c:3585,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3588,1
    - Dst: TPM_GetCapability_CapAlg
      Src: /src/libtpms/src/tpm12/tpm_process.c:3594,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3597,1
    - Dst: TPM_GetCapability_CapPid
      Src: /src/libtpms/src/tpm12/tpm_process.c:3603,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3606,1
    - Dst: TPM_GetCapability_CapFlag
      Src: /src/libtpms/src/tpm12/tpm_process.c:3612,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3615,1
    - Dst: TPM_GetCapability_CapProperty
      Src: /src/libtpms/src/tpm12/tpm_process.c:3621,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3624,1
    - Dst: TPM_GetCapability_CapVersion
      Src: /src/libtpms/src/tpm12/tpm_process.c:3629,1
    - Dst: TPM_KeyHandleEntries_StoreHandles
      Src: /src/libtpms/src/tpm12/tpm_process.c:3634,1
    - Dst: TPM_GetCapability_CapCheckLoaded
      Src: /src/libtpms/src/tpm12/tpm_process.c:3638,1
    - Dst: TPM_GetCapability_CapSymMode
      Src: /src/libtpms/src/tpm12/tpm_process.c:3644,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3647,1
    - Dst: TPM_GetCapability_CapKeyStatus
      Src: /src/libtpms/src/tpm12/tpm_process.c:3653,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3658,1
    - Dst: TPM_NVIndexEntries_GetNVList
      Src: /src/libtpms/src/tpm12/tpm_process.c:3663,1
    - Dst: TPM_GetCapability_CapMfr
      Src: /src/libtpms/src/tpm12/tpm_process.c:3666,1
    - Dst: TPM_GetCapability_CapNVIndex
      Src: /src/libtpms/src/tpm12/tpm_process.c:3670,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3673,1
    - Dst: TPM_GetCapability_CapTransAlg
      Src: /src/libtpms/src/tpm12/tpm_process.c:3679,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3682,1
    - Dst: TPM_GetCapability_CapHandle
      Src: /src/libtpms/src/tpm12/tpm_process.c:3688,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3691,1
    - Dst: TPM_GetCapability_CapTransEs
      Src: /src/libtpms/src/tpm12/tpm_process.c:3697,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3700,1
    - Dst: TPM_GetCapability_CapAuthEncrypt
      Src: /src/libtpms/src/tpm12/tpm_process.c:3706,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3709,1
    - Dst: TPM_GetCapability_CapSelectSize
      Src: /src/libtpms/src/tpm12/tpm_process.c:3714,1
    - Dst: TPM_GetCapability_CapDaLogic
      Src: /src/libtpms/src/tpm12/tpm_process.c:3718,1
    - Dst: TPM_GetCapability_CapVersionVal
      Src: /src/libtpms/src/tpm12/tpm_process.c:3722,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3726,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 129
    argCount: 6
    argNames:
    - capabilityResponse
    - tpm_state
    - capArea
    - subCap16
    - subCap32
    - subCap
    argTypes:
    - TPM_STORE_BUFFER*
    - tpm_state_t*
    - TPM_CAPABILITY_AREA
    - uint16_t
    - uint32_t
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3731
      start: 3571
    functionDepth: 2
    functionLinenumber: 3571
    functionLinenumberEnd: 3731
    functionName: TPM_GetCapabilityCommon
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_GetCapability_CapVersion
    - TPM_GetCapability_CapCheckLoaded
    - TPM_GetCapability_CapDaLogic
    - TPM_NVIndexEntries_GetNVList
    - TPM_GetCapability_CapSymMode
    - TPM_GetCapability_CapTransAlg
    - TPM_GetCapability_CapVersionVal
    - TPM_GetCapability_CapPid
    - TPM_GetCapability_CapNVIndex
    - TPM_GetCapability_CapProperty
    - TPM_GetCapability_CapKeyStatus
    - TPM_GetCapability_CapHandle
    - TPM_GetCapability_CapAuthEncrypt
    - TPM_GetCapability_CapSelectSize
    - TPM_GetCapability_CapTransEs
    - printf
    - TPM_GetCapability_CapAlg
    - TPM_KeyHandleEntries_StoreHandles
    - TPM_GetCapability_CapOrd
    - TPM_GetCapability_CapMfr
    - TPM_GetCapability_CapFlag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapabilityCommon(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t
      \  tpm_state_t *tpm_state, \n\t\t\t\t   TPM_CAPABILITY_AREA capArea, \n\t\t\t\t
      \  uint16_t subCap16, \n\t\t\t\t   uint32_t subCap32,\n\t\t\t\t   TPM_SIZED_BUFFER
      *subCap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM_OrdinalTable_GetProcessFunction
      Src: /src/libtpms/src/tpm12/tpm_process.c:3747,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3756,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_process.c:3758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - capabilityResponse
    - ordinal
    argTypes:
    - TPM_STORE_BUFFER*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3760
      start: 3740
    functionDepth: 3
    functionLinenumber: 3740
    functionLinenumberEnd: 3760
    functionName: TPM_GetCapability_CapOrd
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_OrdinalTable_GetProcessFunction
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapOrd(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t
      \  uint32_t ordinal)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3776,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3783,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_process.c:3784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - capabilityResponse
    - algorithmID
    argTypes:
    - TPM_STORE_BUFFER*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3786
      start: 3770
    functionDepth: 3
    functionLinenumber: 3770
    functionLinenumberEnd: 3786
    functionName: TPM_GetCapability_CapAlg
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapAlg(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t
      \  uint32_t algorithmID)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3801,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3818,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_process.c:3819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - capabilityResponse
    - protocolID
    argTypes:
    - TPM_STORE_BUFFER*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3821
      start: 3795
    functionDepth: 3
    functionLinenumber: 3795
    functionLinenumberEnd: 3821
    functionName: TPM_GetCapability_CapPid
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapPid(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t
      \  uint16_t protocolID)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3837,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3840,1
    - Dst: TPM_PermanentFlags_StoreBytes
      Src: /src/libtpms/src/tpm12/tpm_process.c:3841,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3844,1
    - Dst: TPM_StclearFlags_Store
      Src: /src/libtpms/src/tpm12/tpm_process.c:3845,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3848,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - capabilityResponse
    - tpm_state
    - capFlag
    argTypes:
    - TPM_STORE_BUFFER*
    - tpm_state_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3853
      start: 3831
    functionDepth: 1
    functionLinenumber: 3831
    functionLinenumberEnd: 3853
    functionName: TPM_GetCapability_CapFlag
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_PermanentFlags_StoreBytes
    - printf
    - TPM_StclearFlags_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapFlag(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t
      \   tpm_state_t *tpm_state,\n\t\t\t\t\t    uint32_t capFlag)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3867,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3870,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3871,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3875,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3876,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3879,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_process.c:3881,1
    - Dst: TPM_KeyHandleEntries_GetSpace
      Src: /src/libtpms/src/tpm12/tpm_process.c:3885,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3886,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3887,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3892,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3893,1
    - Dst: TPM_AuthSessions_GetSpace
      Src: /src/libtpms/src/tpm12/tpm_process.c:3897,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3898,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3899,1
    - Dst: TPM_TransportSessions_GetSpace
      Src: /src/libtpms/src/tpm12/tpm_process.c:3903,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3904,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3905,1
    - Dst: TPM_Counters_GetSpace
      Src: /src/libtpms/src/tpm12/tpm_process.c:3909,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3910,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3911,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3915,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3917,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3921,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3923,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3927,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3929,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3933,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3934,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3938,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_process.c:3940,1
    - Dst: TPM_ContextList_GetSpace
      Src: /src/libtpms/src/tpm12/tpm_process.c:3945,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3946,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3947,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3950,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3952,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3955,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3957,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3960,1
    - Dst: TPM_GetCapability_CapPropTisTimeout
      Src: /src/libtpms/src/tpm12/tpm_process.c:3961,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3964,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3966,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3969,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3971,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3975,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3976,1
    - Dst: TPM_DaaSessions_GetSpace
      Src: /src/libtpms/src/tpm12/tpm_process.c:3980,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3981,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3982,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3986,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:3987,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:3996,1
    - Dst: TPM_Sbuffer_Append8
      Src: /src/libtpms/src/tpm12/tpm_process.c:3997,1
    - Dst: TPM_AuthSessions_GetSpace
      Src: /src/libtpms/src/tpm12/tpm_process.c:4002,1
    - Dst: TPM_TransportSessions_GetSpace
      Src: /src/libtpms/src/tpm12/tpm_process.c:4003,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4004,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4005,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4009,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4010,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4014,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4016,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4020,1
    - Dst: TPM_GetCapability_CapPropDuration
      Src: /src/libtpms/src/tpm12/tpm_process.c:4021,1
    - Dst: TPM_Counters_GetActiveCounter
      Src: /src/libtpms/src/tpm12/tpm_process.c:4025,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4031,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4032,1
    - Dst: TPM_NVIndexEntries_GetFreeSpace
      Src: /src/libtpms/src/tpm12/tpm_process.c:4039,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4041,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4042,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4047,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4054,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4056,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4059,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 147
    argCount: 3
    argNames:
    - capabilityResponse
    - tpm_state
    - capProperty
    argTypes:
    - TPM_STORE_BUFFER*
    - tpm_state_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4064
      start: 3858
    functionDepth: 7
    functionLinenumber: 3858
    functionLinenumberEnd: 4064
    functionName: TPM_GetCapability_CapProperty
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_Counters_GetActiveCounter
    - TPM_Sbuffer_Append32
    - TPM_ContextList_GetSpace
    - TPM_TransportSessions_GetSpace
    - TPM_KeyHandleEntries_GetSpace
    - TPM_DaaSessions_GetSpace
    - TPM_AuthSessions_GetSpace
    - TPM_Counters_GetSpace
    - TPM_Sbuffer_Append8
    - printf
    - TPM_GetCapability_CapPropTisTimeout
    - TPM_NVIndexEntries_GetFreeSpace
    - TPM_GetCapability_CapPropDuration
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapProperty(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t\ttpm_state_t
      *tpm_state,\n\t\t\t\t\t\tuint32_t capProperty)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_StructVer_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:4084,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4085,1
    - Dst: TPM_StructVer_Store
      Src: /src/libtpms/src/tpm12/tpm_process.c:4088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - capabilityResponse
    argTypes:
    - TPM_STORE_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4090
      start: 4079
    functionDepth: 1
    functionLinenumber: 4079
    functionLinenumberEnd: 4090
    functionName: TPM_GetCapability_CapVersion
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_StructVer_Store
    - printf
    - TPM_StructVer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_GetCapability_CapVersion(TPM_STORE_BUFFER *capabilityResponse)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TPM_KeyParms_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:4111,1
    - Dst: TPM_KeyParms_Load
      Src: /src/libtpms/src/tpm12/tpm_process.c:4116,1
    - Dst: TPM_KeyHandleEntries_IsSpace
      Src: /src/libtpms/src/tpm12/tpm_process.c:4120,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4123,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4129,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_process.c:4130,1
    - Dst: TPM_KeyParms_Delete
      Src: /src/libtpms/src/tpm12/tpm_process.c:4132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - capabilityResponse
    - tpm_key_handle_entry
    - subCap
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_KEY_HANDLE_ENTRY*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4134
      start: 4100
    functionDepth: 4
    functionLinenumber: 4100
    functionLinenumberEnd: 4134
    functionName: TPM_GetCapability_CapCheckLoaded
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_KeyHandleEntries_IsSpace
    - TPM_KeyParms_Delete
    - TPM_KeyParms_Load
    - printf
    - TPM_Sbuffer_Append
    - TPM_KeyParms_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapCheckLoaded(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t\t
      \  const TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entry,\n\t\t\t\t\t\t   TPM_SIZED_BUFFER
      *subCap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4146,1
    - Dst: TPM_Sbuffer_Append8
      Src: /src/libtpms/src/tpm12/tpm_process.c:4147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - capabilityResponse
    - symMode
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_SYM_MODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4149
      start: 4140
    functionDepth: 4
    functionLinenumber: 4140
    functionLinenumberEnd: 4149
    functionName: TPM_GetCapability_CapSymMode
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Sbuffer_Append8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapSymMode(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t
      \      TPM_SYM_MODE symMode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4162,1
    - Dst: TPM_KeyHandleEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_process.c:4165,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4169,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4177,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_process.c:4178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - capabilityResponse
    - tpm_key_handle_entries
    - tpm_key_handle
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_KEY_HANDLE_ENTRY*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4181
      start: 4154
    functionDepth: 3
    functionLinenumber: 4154
    functionLinenumberEnd: 4181
    functionName: TPM_GetCapability_CapKeyStatus
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_KeyHandleEntries_GetEntry
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapKeyStatus(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t\t
      TPM_KEY_HANDLE_ENTRY *tpm_key_handle_entries,\n\t\t\t\t\t\t uint32_t tpm_key_handle)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_process.c:4197,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4198,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4201,1
    - Dst: getpid
      Src: /src/libtpms/src/tpm12/tpm_process.c:4213,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4214,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4215,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4218,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4226,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - capabilityResponse
    - tpm_state
    - subCap
    argTypes:
    - TPM_STORE_BUFFER*
    - tpm_state_t*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4232
      start: 4187
    functionDepth: 4
    functionLinenumber: 4187
    functionLinenumberEnd: 4232
    functionName: TPM_GetCapability_CapMfr
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - getpid
    - printf
    - htonl
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapMfr(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t
      \  tpm_state_t *tpm_state,\n\t\t\t\t\t   TPM_SIZED_BUFFER *subCap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4244,1
    - Dst: TPM_NVIndexEntries_GetDataPublic
      Src: /src/libtpms/src/tpm12/tpm_process.c:4247,1
    - Dst: TPM_NVDataPublic_Store
      Src: /src/libtpms/src/tpm12/tpm_process.c:4253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - capabilityResponse
    - tpm_state
    - nvIndex
    argTypes:
    - TPM_STORE_BUFFER*
    - tpm_state_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4257
      start: 4237
    functionDepth: 3
    functionLinenumber: 4237
    functionLinenumberEnd: 4257
    functionName: TPM_GetCapability_CapNVIndex
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_NVDataPublic_Store
    - printf
    - TPM_NVIndexEntries_GetDataPublic
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapNVIndex(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t
      \      tpm_state_t *tpm_state,\n\t\t\t\t\t       uint32_t nvIndex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4273,1
    - Dst: TPM_TransportPublic_CheckAlgId
      Src: /src/libtpms/src/tpm12/tpm_process.c:4274,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4275,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_process.c:4276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - capabilityResponse
    - algorithmID
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_ALGORITHM_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4278
      start: 4267
    functionDepth: 3
    functionLinenumber: 4267
    functionLinenumberEnd: 4278
    functionName: TPM_GetCapability_CapTransAlg
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_TransportPublic_CheckAlgId
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapTransAlg(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t\tTPM_ALGORITHM_ID
      algorithmID)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4299,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4302,1
    - Dst: TPM_KeyHandleEntries_StoreHandles
      Src: /src/libtpms/src/tpm12/tpm_process.c:4303,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4307,1
    - Dst: TPM_AuthSessions_StoreHandles
      Src: /src/libtpms/src/tpm12/tpm_process.c:4308,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4312,1
    - Dst: TPM_TransportSessions_StoreHandles
      Src: /src/libtpms/src/tpm12/tpm_process.c:4313,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4317,1
    - Dst: TPM_ContextList_StoreHandles
      Src: /src/libtpms/src/tpm12/tpm_process.c:4318,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4322,1
    - Dst: TPM_Counters_StoreHandles
      Src: /src/libtpms/src/tpm12/tpm_process.c:4323,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4327,1
    - Dst: TPM_DaaSessions_StoreHandles
      Src: /src/libtpms/src/tpm12/tpm_process.c:4328,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4332,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - capabilityResponse
    - tpm_state
    - resourceType
    argTypes:
    - TPM_STORE_BUFFER*
    - tpm_state_t*
    - TPM_RESOURCE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4337
      start: 4293
    functionDepth: 3
    functionLinenumber: 4293
    functionLinenumberEnd: 4337
    functionName: TPM_GetCapability_CapHandle
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_ContextList_StoreHandles
    - TPM_DaaSessions_StoreHandles
    - TPM_Counters_StoreHandles
    - printf
    - TPM_TransportSessions_StoreHandles
    - TPM_AuthSessions_StoreHandles
    - TPM_KeyHandleEntries_StoreHandles
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapHandle(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t
      \     tpm_state_t *tpm_state,\n\t\t\t\t\t      TPM_RESOURCE_TYPE resourceType)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4350,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4364,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_process.c:4365,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - capabilityResponse
    - encScheme
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_ENC_SCHEME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4367
      start: 4344
    functionDepth: 3
    functionLinenumber: 4344
    functionLinenumberEnd: 4367
    functionName: TPM_GetCapability_CapTransEs
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapTransEs(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t
      \      TPM_ENC_SCHEME encScheme)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4381,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4399,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_process.c:4400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - capabilityResponse
    - algorithmID
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_ALGORITHM_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4402
      start: 4375
    functionDepth: 3
    functionLinenumber: 4375
    functionLinenumberEnd: 4402
    functionName: TPM_GetCapability_CapAuthEncrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapAuthEncrypt(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t\t
      \  TPM_ALGORITHM_ID algorithmID)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4421,1
    - Dst: TPM_SelectSize_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:4422,1
    - Dst: TPM_SelectSize_Load
      Src: /src/libtpms/src/tpm12/tpm_process.c:4427,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4431,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4442,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_process.c:4443,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - capabilityResponse
    - subCap
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4446
      start: 4412
    functionDepth: 3
    functionLinenumber: 4412
    functionLinenumberEnd: 4446
    functionName: TPM_GetCapability_CapSelectSize
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append
    - TPM_SelectSize_Load
    - printf
    - TPM_SelectSize_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapSelectSize(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t\t
      \ TPM_SIZED_BUFFER *subCap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4465,1
    - Dst: TPM_DaInfoLimited_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:4466,1
    - Dst: TPM_DaInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:4467,1
    - Dst: TPM_DaInfoLimited_Set
      Src: /src/libtpms/src/tpm12/tpm_process.c:4473,1
    - Dst: TPM_DaInfoLimited_Store
      Src: /src/libtpms/src/tpm12/tpm_process.c:4474,1
    - Dst: TPM_DaInfo_Set
      Src: /src/libtpms/src/tpm12/tpm_process.c:4481,1
    - Dst: TPM_DaInfo_Store
      Src: /src/libtpms/src/tpm12/tpm_process.c:4482,1
    - Dst: TPM_DaInfoLimited_Delete
      Src: /src/libtpms/src/tpm12/tpm_process.c:4484,1
    - Dst: TPM_DaInfo_Delete
      Src: /src/libtpms/src/tpm12/tpm_process.c:4485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - capabilityResponse
    - subCap
    - tpm_state
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_SIZED_BUFFER*
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4487
      start: 4457
    functionDepth: 3
    functionLinenumber: 4457
    functionLinenumberEnd: 4487
    functionName: TPM_GetCapability_CapDaLogic
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_DaInfoLimited_Set
    - TPM_DaInfo_Store
    - TPM_DaInfoLimited_Delete
    - TPM_DaInfoLimited_Init
    - TPM_DaInfoLimited_Store
    - TPM_DaInfo_Delete
    - printf
    - TPM_DaInfo_Init
    - TPM_DaInfo_Set
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapDaLogic(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t
      \      TPM_SIZED_BUFFER *subCap,\n\t\t\t\t\t       tpm_state_t *tpm_state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4502,1
    - Dst: TPM_CapVersionInfo_Set
      Src: /src/libtpms/src/tpm12/tpm_process.c:4503,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4504,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4505,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4506,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4508,1
    - Dst: TPM_CapVersionInfo_Store
      Src: /src/libtpms/src/tpm12/tpm_process.c:4513,1
    - Dst: TPM_CapVersionInfo_Delete
      Src: /src/libtpms/src/tpm12/tpm_process.c:4514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - capabilityResponse
    - tpm_permanent_data
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_PERMANENT_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4516
      start: 4496
    functionDepth: 5
    functionLinenumber: 4496
    functionLinenumberEnd: 4516
    functionName: TPM_GetCapability_CapVersionVal
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_CapVersionInfo_Delete
    - printf
    - TPM_CapVersionInfo_Store
    - TPM_CapVersionInfo_Set
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_GetCapability_CapVersionVal(TPM_STORE_BUFFER *capabilityResponse,\n\t\t\t\t\t\t
      \ TPM_PERMANENT_DATA *tpm_permanent_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4531,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4533,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4536,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4539,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - capabilityResponse
    argTypes:
    - TPM_STORE_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4545
      start: 4527
    functionDepth: 4
    functionLinenumber: 4527
    functionLinenumberEnd: 4545
    functionName: TPM_GetCapability_CapPropTisTimeout
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_GetCapability_CapPropTisTimeout(TPM_STORE_BUFFER *capabilityResponse)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4558,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4560,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4563,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4566,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - capabilityResponse
    argTypes:
    - TPM_STORE_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4569
      start: 4554
    functionDepth: 4
    functionLinenumber: 4554
    functionLinenumberEnd: 4569
    functionName: TPM_GetCapability_CapPropDuration
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_GetCapability_CapPropDuration(TPM_STORE_BUFFER *capabilityResponse)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4639,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_process.c:4649,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_process.c:4661,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_process.c:4665,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_process.c:4669,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4678,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_process.c:4692,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_process.c:4704,1
    - Dst: TPM_PermanentFlags_StoreBitmap
      Src: /src/libtpms/src/tpm12/tpm_process.c:4717,1
    - Dst: TPM_StclearFlags_StoreBitmap
      Src: /src/libtpms/src/tpm12/tpm_process.c:4724,1
    - Dst: TPM_Version_Set
      Src: /src/libtpms/src/tpm12/tpm_process.c:4729,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4737,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_process.c:4739,1
    - Dst: TPM_Version_Store
      Src: /src/libtpms/src/tpm12/tpm_process.c:4747,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4751,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4755,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_process.c:4761,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_process.c:4772,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_process.c:4781,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_process.c:4788,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_process.c:4795,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 71
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4801
      start: 4601
    functionDepth: 5
    functionLinenumber: 4601
    functionLinenumberEnd: 4801
    functionName: TPM_Process_GetCapabilityOwner
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 0
    functionsReached:
    - TPM_AuthParams_Set
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_CheckRequestTag1
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthParams_Get
    - TPM_CheckState
    - printf
    - TPM_Authdata_Check
    - TPM_Version_Set
    - TPM_StclearFlags_StoreBitmap
    - TPM_Version_Store
    - TPM_PermanentFlags_StoreBitmap
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    - TPM_AuthSessions_GetData
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_GetCapabilityOwner(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \ TPM_STORE_BUFFER *response,\n\t\t\t\t\t  TPM_TAG tag,\n\t\t\t\t\t  uint32_t
      paramSize,\n\t\t\t\t\t  TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t  unsigned char
      *command,\n\t\t\t\t\t  TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4869,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:4870,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:4871,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:4872,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:4873,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4879,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4885,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_process.c:4886,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_process.c:4890,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_process.c:4894,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_process.c:4900,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_process.c:4912,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_process.c:4916,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_process.c:4920,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4929,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_process.c:4943,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4951,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_process.c:4957,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_process.c:4961,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_process.c:4974,1
    - Dst: TPM_GetSubCapInt
      Src: /src/libtpms/src/tpm12/tpm_process.c:4987,1
    - Dst: TPM_GetCapabilityCommon
      Src: /src/libtpms/src/tpm12/tpm_process.c:4992,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_process.c:4997,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:4998,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_process.c:4999,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_process.c:5000,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_process.c:5002,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5014,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5023,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_process.c:5029,1
    - Dst: TPM_RSASignToSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_process.c:5030,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5040,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_process.c:5042,1
    - Dst: TPM_Version_Set
      Src: /src/libtpms/src/tpm12/tpm_process.c:5050,1
    - Dst: TPM_Version_Store
      Src: /src/libtpms/src/tpm12/tpm_process.c:5051,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_process.c:5055,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_process.c:5059,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_process.c:5063,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_process.c:5069,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_process.c:5080,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_process.c:5089,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_process.c:5096,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_process.c:5103,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_process.c:5108,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_process.c:5109,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_process.c:5110,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_process.c:5111,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 128
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5113
      start: 4816
    functionDepth: 5
    functionLinenumber: 4816
    functionLinenumberEnd: 5113
    functionName: TPM_Process_GetCapabilitySigned
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Get
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_SizedBuffer_Store
    - TPM_Version_Set
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_Sbuffer_Append
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_SHA1
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_GetSubCapInt
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_SizedBuffer_Init
    - TPM_GetCapabilityCommon
    - TPM_SizedBuffer_Delete
    - TPM_PrintFour
    - printf
    - TPM_CheckRequestTag10
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_RSASignToSizedBuffer
    - TPM_Sbuffer_Delete
    - TPM_Nonce_Load
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_Version_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_GetCapabilitySigned(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \  TPM_STORE_BUFFER *response,\n\t\t\t\t\t   TPM_TAG tag,\n\t\t\t\t\t   uint32_t
      paramSize,\n\t\t\t\t\t   TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t   unsigned char
      *command,\n\t\t\t\t\t   TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5161,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:5162,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_process.c:5163,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_process.c:5171,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5175,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_process.c:5176,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_process.c:5180,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_process.c:5186,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_process.c:5198,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_process.c:5203,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_process.c:5208,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5217,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_process.c:5232,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_process.c:5244,1
    - Dst: TPM_Global_GetPhysicalPresence
      Src: /src/libtpms/src/tpm12/tpm_process.c:5254,1
    - Dst: TPM_GetSubCapInt
      Src: /src/libtpms/src/tpm12/tpm_process.c:5265,1
    - Dst: TPM_SetCapabilityCommon
      Src: /src/libtpms/src/tpm12/tpm_process.c:5266,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5275,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_process.c:5277,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_process.c:5289,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_process.c:5300,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_process.c:5309,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_process.c:5316,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_process.c:5323,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_process.c:5328,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_process.c:5329,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 77
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5331
      start: 5120
    functionDepth: 5
    functionLinenumber: 5120
    functionLinenumberEnd: 5331
    functionName: TPM_Process_SetCapability
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_GetSubCapInt
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_SizedBuffer_Init
    - TPM_SizedBuffer_Delete
    - printf
    - TPM_CheckRequestTag10
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Global_GetPhysicalPresence
    - TPM_SetCapabilityCommon
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_SetCapability(tpm_state_t *tpm_state,\n\t\t\t\t
      \    TPM_STORE_BUFFER *response,\n\t\t\t\t     TPM_TAG tag,\n\t\t\t\t     uint32_t
      paramSize,\n\t\t\t\t     TPM_COMMAND_CODE ordinal,\n\t\t\t\t     unsigned char
      *command,\n\t\t\t\t     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5352,1
    - Dst: TPM_SizedBuffer_GetBool
      Src: /src/libtpms/src/tpm12/tpm_process.c:5359,1
    - Dst: TPM_SizedBuffer_GetUint32
      Src: /src/libtpms/src/tpm12/tpm_process.c:5363,1
    - Dst: TPM_SetCapability_CapPermFlags
      Src: /src/libtpms/src/tpm12/tpm_process.c:5369,1
    - Dst: TPM_SetCapability_CapPermData
      Src: /src/libtpms/src/tpm12/tpm_process.c:5373,1
    - Dst: TPM_SetCapability_CapStclearFlags
      Src: /src/libtpms/src/tpm12/tpm_process.c:5377,1
    - Dst: TPM_SetCapability_CapStclearData
      Src: /src/libtpms/src/tpm12/tpm_process.c:5381,1
    - Dst: TPM_SetCapability_CapStanyFlags
      Src: /src/libtpms/src/tpm12/tpm_process.c:5385,1
    - Dst: TPM_SetCapability_CapStanyData
      Src: /src/libtpms/src/tpm12/tpm_process.c:5389,1
    - Dst: TPM_SetCapability_CapVendor
      Src: /src/libtpms/src/tpm12/tpm_process.c:5393,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5397,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 8
    argNames:
    - tpm_state
    - ownerAuthorized
    - presenceAuthorized
    - capArea
    - subCap16
    - subCap32
    - subCap
    - setValue
    argTypes:
    - tpm_state_t*
    - TPM_BOOL
    - TPM_BOOL
    - TPM_CAPABILITY_AREA
    - uint16_t
    - uint32_t
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5403
      start: 5339
    functionDepth: 2
    functionLinenumber: 5339
    functionLinenumberEnd: 5403
    functionName: TPM_SetCapabilityCommon
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_SetCapability_CapStclearData
    - TPM_SetCapability_CapPermData
    - TPM_SetCapability_CapStanyFlags
    - TPM_SizedBuffer_GetBool
    - printf
    - TPM_SizedBuffer_GetUint32
    - TPM_SetCapability_CapVendor
    - TPM_SetCapability_CapStanyData
    - TPM_SetCapability_CapPermFlags
    - TPM_SetCapability_CapStclearFlags
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SetCapabilityCommon(tpm_state_t *tpm_state,\n\t\t\t\t
      \  TPM_BOOL ownerAuthorized,\n\t\t\t\t   TPM_BOOL presenceAuthorized,\n\t\t\t\t
      \  TPM_CAPABILITY_AREA capArea, \n\t\t\t\t   uint16_t subCap16, \n\t\t\t\t   uint32_t
      subCap32,\n\t\t\t\t   TPM_SIZED_BUFFER *subCap,\n\t\t\t\t   TPM_SIZED_BUFFER
      *setValue)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - altered
    - flag
    - value
    argTypes:
    - TPM_BOOL*
    - TPM_BOOL*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5422
      start: 5411
    functionDepth: 0
    functionLinenumber: 5411
    functionLinenumberEnd: 5422
    functionName: TPM_SetCapability_Flag
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TPM_SetCapability_Flag(TPM_BOOL *altered,\n\t\t\t    TPM_BOOL
      *flag,\n\t\t\t    TPM_BOOL value)"
  - BBCount: 80
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5438,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5442,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5450,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_process.c:5455,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5461,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5468,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5474,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5480,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5486,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_process.c:5491,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5497,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5504,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5510,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_process.c:5515,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5521,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5527,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5533,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5539,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_process.c:5544,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5549,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5554,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5561,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5567,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5573,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5579,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_process.c:5584,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5590,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5598,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5604,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5610,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5616,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_process.c:5621,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5627,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5634,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5640,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5646,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_process.c:5651,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5657,1
    - Dst: TPM_Locality_Check
      Src: /src/libtpms/src/tpm12/tpm_process.c:5663,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5668,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_process.c:5673,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5683,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5686,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_process.c:5691,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5709,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_process.c:5714,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 220
    argCount: 5
    argNames:
    - tpm_state
    - ownerAuthorized
    - presenceAuthorized
    - subCap32
    - valueBool
    argTypes:
    - tpm_state_t*
    - TPM_BOOL
    - TPM_BOOL
    - uint32_t
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5718
      start: 5429
    functionDepth: 2
    functionLinenumber: 5429
    functionLinenumberEnd: 5718
    functionName: TPM_SetCapability_CapPermFlags
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_SetCapability_Flag
    - printf
    - TPM_Locality_Check
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SetCapability_CapPermFlags(tpm_state_t *tpm_state,\n\t\t\t\t\t\t
      TPM_BOOL ownerAuthorized,\n\t\t\t\t\t\t TPM_BOOL presenceAuthorized,\n\t\t\t\t\t\t
      uint32_t subCap32,\n\t\t\t\t\t\t TPM_BOOL valueBool)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5734,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5739,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5744,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5750,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5756,1
    - Dst: TPM_PermanentData_InitDaa
      Src: /src/libtpms/src/tpm12/tpm_process.c:5770,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5796,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_process.c:5801,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 65
    argCount: 5
    argNames:
    - tpm_state
    - ownerAuthorized
    - presenceAuthorized
    - subCap32
    - valueUint32
    argTypes:
    - tpm_state_t*
    - TPM_BOOL
    - TPM_BOOL
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5805
      start: 5725
    functionDepth: 1
    functionLinenumber: 5725
    functionLinenumberEnd: 5805
    functionName: TPM_SetCapability_CapPermData
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - TPM_PermanentAll_NVStore
    - printf
    - TPM_PermanentData_InitDaa
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SetCapability_CapPermData(tpm_state_t *tpm_state,\n\t\t\t\t\t\tTPM_BOOL
      ownerAuthorized,\n\t\t\t\t\t\tTPM_BOOL presenceAuthorized,\n\t\t\t\t\t\tuint32_t
      subCap32,\n\t\t\t\t\t\tuint32_t valueUint32)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5820,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5826,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5831,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5837,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5844,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5857,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 5
    argNames:
    - tpm_state
    - ownerAuthorized
    - presenceAuthorized
    - subCap32
    - valueBool
    argTypes:
    - tpm_state_t*
    - TPM_BOOL
    - TPM_BOOL
    - uint32_t
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5863
      start: 5812
    functionDepth: 1
    functionLinenumber: 5812
    functionLinenumberEnd: 5863
    functionName: TPM_SetCapability_CapStclearFlags
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SetCapability_CapStclearFlags(tpm_state_t *tpm_state,\n\t\t\t\t\t\t
      \   TPM_BOOL ownerAuthorized,\n\t\t\t\t\t\t    TPM_BOOL presenceAuthorized,\n\t\t\t\t\t\t
      \   uint32_t subCap32,\n\t\t\t\t\t\t    TPM_BOOL valueBool)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5883,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5889,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5898,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5908,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5920,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - tpm_state
    - ownerAuthorized
    - presenceAuthorized
    - subCap32
    - valueUint32
    argTypes:
    - tpm_state_t*
    - TPM_BOOL
    - TPM_BOOL
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5926
      start: 5870
    functionDepth: 1
    functionLinenumber: 5870
    functionLinenumberEnd: 5926
    functionName: TPM_SetCapability_CapStclearData
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SetCapability_CapStclearData(tpm_state_t *tpm_state,\n\t\t\t\t\t\t
      \  TPM_BOOL ownerAuthorized,\n\t\t\t\t\t\t   TPM_BOOL presenceAuthorized,\n\t\t\t\t\t\t
      \  uint32_t subCap32,\n\t\t\t\t\t\t   uint32_t valueUint32)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5941,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5947,1
    - Dst: TPM_Locality_Check
      Src: /src/libtpms/src/tpm12/tpm_process.c:5951,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5956,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5962,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5969,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:5981,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 5
    argNames:
    - tpm_state
    - ownerAuthorized
    - presenceAuthorized
    - subCap32
    - valueBool
    argTypes:
    - tpm_state_t*
    - TPM_BOOL
    - TPM_BOOL
    - uint32_t
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5987
      start: 5933
    functionDepth: 2
    functionLinenumber: 5933
    functionLinenumberEnd: 5987
    functionName: TPM_SetCapability_CapStanyFlags
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Locality_Check
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SetCapability_CapStanyFlags(tpm_state_t *tpm_state,\n\t\t\t\t\t\t
      \ TPM_BOOL ownerAuthorized,\n\t\t\t\t\t\t  TPM_BOOL presenceAuthorized,\n\t\t\t\t\t\t
      \ uint32_t subCap32,\n\t\t\t\t\t\t  TPM_BOOL valueBool)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:6002,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:6016,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 5
    argNames:
    - tpm_state
    - ownerAuthorized
    - presenceAuthorized
    - subCap32
    - setValue
    argTypes:
    - tpm_state_t*
    - TPM_BOOL
    - TPM_BOOL
    - uint32_t
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6022
      start: 5994
    functionDepth: 1
    functionLinenumber: 5994
    functionLinenumberEnd: 6022
    functionName: TPM_SetCapability_CapStanyData
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SetCapability_CapStanyData(tpm_state_t *tpm_state,\n\t\t\t\t\t\t
      TPM_BOOL ownerAuthorized,\n\t\t\t\t\t\t TPM_BOOL presenceAuthorized,\n\t\t\t\t\t\t
      uint32_t subCap32,\n\t\t\t\t\t\t TPM_SIZED_BUFFER *setValue)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:6035,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_process.c:6043,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - tpm_state
    - ownerAuthorized
    - presenceAuthorized
    - subCap32
    - setValue
    argTypes:
    - tpm_state_t*
    - TPM_BOOL
    - TPM_BOOL
    - uint32_t
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6051
      start: 6027
    functionDepth: 1
    functionLinenumber: 6027
    functionLinenumberEnd: 6051
    functionName: TPM_SetCapability_CapVendor
    functionSourceFile: /src/libtpms/src/tpm12/tpm_process.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SetCapability_CapVendor(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \     TPM_BOOL ownerAuthorized,\n\t\t\t\t\t      TPM_BOOL presenceAuthorized,\n\t\t\t\t\t
      \     uint32_t subCap32,\n\t\t\t\t\t      TPM_SIZED_BUFFER *setValue)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:70,1
    - Dst: TPM_PCRInfoShort_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:72,1
    - Dst: TPM_Delegations_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tpm_delegate_public
    argTypes:
    - TPM_DELEGATE_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: TPM_DelegatePublic_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Delegations_Init
    - TPM_PCRInfoShort_Init
    linkageType: ''
    returnType: void
    signature: void TPM_DelegatePublic_Init(TPM_DELEGATE_PUBLIC *tpm_delegate_public)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:94,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:97,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:101,1
    - Dst: TPM_PCRInfoShort_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:105,1
    - Dst: TPM_Delegations_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:109,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:113,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:117,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - tpm_delegate_public
    - stream
    - stream_size
    argTypes:
    - TPM_DELEGATE_PUBLIC*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 120
    functionName: TPM_DelegatePublic_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_Delegations_Load
    - TPM_CheckTag
    - printf
    - TPM_Load32
    - TPM_Load8
    - TPM_PCRInfoShort_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegatePublic_Load(TPM_DELEGATE_PUBLIC *tpm_delegate_public,\n\t\t\t\t
      \  unsigned char **stream,\n\t\t\t\t   uint32_t *stream_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:133,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:136,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:140,1
    - Dst: TPM_PCRInfoShort_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:145,1
    - Dst: TPM_Delegations_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:149,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:153,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - sbuffer
    - tpm_delegate_public
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DELEGATE_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 160
    functionName: TPM_DelegatePublic_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append16
    - printf
    - TPM_PCRInfoShort_Store
    - TPM_Sbuffer_Append
    - TPM_Delegations_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegatePublic_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \   const TPM_DELEGATE_PUBLIC *tpm_delegate_public)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:173,1
    - Dst: TPM_PCRInfoShort_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:175,1
    - Dst: TPM_Delegations_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:176,1
    - Dst: TPM_DelegatePublic_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tpm_delegate_public
    argTypes:
    - TPM_DELEGATE_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 180
    functionName: TPM_DelegatePublic_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_DelegatePublic_Init
    - TPM_PCRInfoShort_Delete
    - printf
    - TPM_Delegations_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_DelegatePublic_Delete(TPM_DELEGATE_PUBLIC *tpm_delegate_public)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:191,1
    - Dst: TPM_PCRInfoShort_Copy
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:196,1
    - Dst: TPM_Delegations_Copy
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - TPM_DELEGATE_PUBLIC*
    - TPM_DELEGATE_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 207
    functionName: TPM_DelegatePublic_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_Delegations_Copy
    - printf
    - TPM_PCRInfoShort_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegatePublic_Copy(TPM_DELEGATE_PUBLIC *dest,\n\t\t\t\t
      \  TPM_DELEGATE_PUBLIC *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:222,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tpm_delegate_sensitive
    argTypes:
    - TPM_DELEGATE_SENSITIVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: TPM_DelegateSensitive_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_Secret_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_DelegateSensitive_Init(TPM_DELEGATE_SENSITIVE *tpm_delegate_sensitive)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:242,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:245,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tpm_delegate_sensitive
    - stream
    - stream_size
    argTypes:
    - TPM_DELEGATE_SENSITIVE*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 252
    functionName: TPM_DelegateSensitive_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_Secret_Load
    - printf
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegateSensitive_Load(TPM_DELEGATE_SENSITIVE *tpm_delegate_sensitive,\n\t\t\t\t
      \     unsigned char **stream,\n\t\t\t\t      uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:265,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:267,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sbuffer
    - tpm_delegate_sensitive
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DELEGATE_SENSITIVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 260
    functionDepth: 4
    functionLinenumber: 260
    functionLinenumberEnd: 273
    functionName: TPM_DelegateSensitive_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Sbuffer_Append16
    - TPM_Secret_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegateSensitive_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \      const TPM_DELEGATE_SENSITIVE *tpm_delegate_sensitive)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:286,1
    - Dst: TPM_DelegateSensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_delegate_sensitive
    argTypes:
    - TPM_DELEGATE_SENSITIVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: TPM_DelegateSensitive_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_DelegateSensitive_Init
    linkageType: ''
    returnType: void
    signature: void TPM_DelegateSensitive_Delete(TPM_DELEGATE_SENSITIVE *tpm_delegate_sensitive)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:307,1
    - Dst: TPM_SymmetricKeyData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:310,1
    - Dst: TPM_DelegateSensitive_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:319,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - tpm_delegate_sensitive
    - sensitiveArea
    - delegateKey
    argTypes:
    - TPM_DELEGATE_SENSITIVE*
    - TPM_SIZED_BUFFER*
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 297
    functionDepth: 4
    functionLinenumber: 297
    functionLinenumberEnd: 323
    functionName: TPM_DelegateSensitive_DecryptEncData
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_DelegateSensitive_Load
    - TPM_SymmetricKeyData_Decrypt
    - printf
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegateSensitive_DecryptEncData(TPM_DELEGATE_SENSITIVE
      *tpm_delegate_sensitive,\n\t\t\t\t\t\tTPM_SIZED_BUFFER *sensitiveArea,\n\t\t\t\t\t\tTPM_SYMMETRIC_KEY_TOKEN
      delegateKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tpm_delegations
    argTypes:
    - TPM_DELEGATIONS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 343
    functionName: TPM_Delegations_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_Delegations_Init(TPM_DELEGATIONS *tpm_delegations)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:360,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:363,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:367,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:371,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:375,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:381,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:385,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:391,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:395,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:400,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - tpm_delegations
    - stream
    - stream_size
    argTypes:
    - TPM_DELEGATIONS*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 406
    functionName: TPM_Delegations_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Load32
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Delegations_Load(TPM_DELEGATIONS *tpm_delegations,\n\t\t\t\tunsigned
      char **stream,\n\t\t\t\tuint32_t *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:419,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:422,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:426,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:430,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_delegations
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DELEGATIONS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 414
    functionDepth: 4
    functionLinenumber: 414
    functionLinenumberEnd: 437
    functionName: TPM_Delegations_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Delegations_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      const TPM_DELEGATIONS *tpm_delegations)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:450,1
    - Dst: TPM_Delegations_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_delegations
    argTypes:
    - TPM_DELEGATIONS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 455
    functionName: TPM_Delegations_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Delegations_Init
    linkageType: ''
    returnType: void
    signature: void TPM_Delegations_Delete(TPM_DELEGATIONS *tpm_delegations)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - TPM_DELEGATIONS*
    - TPM_DELEGATIONS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 467
    functionName: TPM_Delegations_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TPM_Delegations_Copy(TPM_DELEGATIONS *dest,\n\t\t\t  TPM_DELEGATIONS
      *src)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:480,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:484,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:493,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - newDelegations
    - currentDelegations
    argTypes:
    - TPM_DELEGATIONS*
    - TPM_DELEGATIONS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 500
    functionName: TPM_Delegations_CheckPermissionDelegation
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Delegations_CheckPermissionDelegation(TPM_DELEGATIONS
      *newDelegations,\n\t\t\t\t\t\t     TPM_DELEGATIONS *currentDelegations)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:518,1
    - Dst: TPM_Delegations_CheckKeyPermission
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:522,1
    - Dst: TPM_Delegations_CheckOwnerPermission
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:525,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:528,1
    - Dst: TPM_PCRInfoShort_CheckDigest
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:537,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - tpm_state
    - delegatePublic
    - entityType
    - ordinal
    argTypes:
    - tpm_state_t*
    - TPM_DELEGATE_PUBLIC*
    - TPM_ENT_TYPE
    - TPM_COMMAND_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 511
    functionDepth: 3
    functionLinenumber: 511
    functionLinenumberEnd: 542
    functionName: TPM_Delegations_CheckPermission
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_Delegations_CheckKeyPermission
    - TPM_Delegations_CheckOwnerPermission
    - printf
    - TPM_PCRInfoShort_CheckDigest
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Delegations_CheckPermission(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \  TPM_DELEGATE_PUBLIC *delegatePublic,\n\t\t\t\t\t   TPM_ENT_TYPE entityType,\t\t/*
      required */\n\t\t\t\t\t   TPM_COMMAND_CODE ordinal)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:555,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:559,1
    - Dst: TPM_OrdinalTable_GetOwnerPermission
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:567,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:573,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:578,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:585,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:591,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - tpm_delegations
    - ordinal
    argTypes:
    - TPM_DELEGATIONS*
    - TPM_COMMAND_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 597
    functionName: TPM_Delegations_CheckOwnerPermission
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_OrdinalTable_GetOwnerPermission
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Delegations_CheckOwnerPermission(TPM_DELEGATIONS *tpm_delegations,\n\t\t\t\t\t\tTPM_COMMAND_CODE
      ordinal)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:610,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:614,1
    - Dst: TPM_OrdinalTable_GetKeyPermission
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:622,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:628,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:633,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:640,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:646,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - tpm_delegations
    - ordinal
    argTypes:
    - TPM_DELEGATIONS*
    - TPM_COMMAND_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 652
    functionName: TPM_Delegations_CheckKeyPermission
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 1
    functionsReached:
    - TPM_OrdinalTable_GetKeyPermission
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Delegations_CheckKeyPermission(TPM_DELEGATIONS *tpm_delegations,\n\t\t\t\t\t
      \     TPM_COMMAND_CODE ordinal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:667,1
    - Dst: TPM_DelegatePublic_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:668,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:669,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:670,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tpm_delegate_owner_blob
    argTypes:
    - TPM_DELEGATE_OWNER_BLOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 665
    functionDepth: 3
    functionLinenumber: 665
    functionLinenumberEnd: 673
    functionName: TPM_DelegateOwnerBlob_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_DelegatePublic_Init
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_DelegateOwnerBlob_Init(TPM_DELEGATE_OWNER_BLOB *tpm_delegate_owner_blob)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:691,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:694,1
    - Dst: TPM_DelegatePublic_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:698,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:703,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:710,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:714,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:718,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - tpm_delegate_owner_blob
    - stream
    - stream_size
    argTypes:
    - TPM_DELEGATE_OWNER_BLOB*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 685
    functionDepth: 4
    functionLinenumber: 685
    functionLinenumberEnd: 721
    functionName: TPM_DelegateOwnerBlob_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Load
    - TPM_CheckTag
    - TPM_DelegatePublic_Load
    - printf
    - TPM_SizedBuffer_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegateOwnerBlob_Load(TPM_DELEGATE_OWNER_BLOB *tpm_delegate_owner_blob,\n\t\t\t\t
      \     unsigned char **stream,\n\t\t\t\t      uint32_t *stream_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:734,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:737,1
    - Dst: TPM_DelegatePublic_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:741,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:745,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:749,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:753,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - sbuffer
    - tpm_delegate_owner_blob
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DELEGATE_OWNER_BLOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 729
    functionDepth: 5
    functionLinenumber: 729
    functionLinenumberEnd: 756
    functionName: TPM_DelegateOwnerBlob_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_DelegatePublic_Store
    - TPM_Sbuffer_Append16
    - TPM_SizedBuffer_Store
    - printf
    - TPM_Digest_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegateOwnerBlob_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \      const TPM_DELEGATE_OWNER_BLOB *tpm_delegate_owner_blob)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:769,1
    - Dst: TPM_DelegatePublic_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:771,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:772,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:773,1
    - Dst: TPM_DelegateOwnerBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tpm_delegate_owner_blob
    argTypes:
    - TPM_DELEGATE_OWNER_BLOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 767
    functionDepth: 4
    functionLinenumber: 767
    functionLinenumberEnd: 777
    functionName: TPM_DelegateOwnerBlob_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Delete
    - printf
    - TPM_DelegateOwnerBlob_Init
    - TPM_DelegatePublic_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_DelegateOwnerBlob_Delete(TPM_DELEGATE_OWNER_BLOB *tpm_delegate_owner_blob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:792,1
    - Dst: TPM_DelegatePublic_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:793,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:794,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:795,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:796,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tpm_delegate_key_blob
    argTypes:
    - TPM_DELEGATE_KEY_BLOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 790
    functionDepth: 3
    functionLinenumber: 790
    functionLinenumberEnd: 799
    functionName: TPM_DelegateKeyBlob_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_DelegatePublic_Init
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_DelegateKeyBlob_Init(TPM_DELEGATE_KEY_BLOB *tpm_delegate_key_blob)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:817,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:820,1
    - Dst: TPM_DelegatePublic_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:824,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:829,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:836,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:840,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:844,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:848,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - tpm_delegate_key_blob
    - stream
    - stream_size
    argTypes:
    - TPM_DELEGATE_KEY_BLOB*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 811
    functionDepth: 4
    functionLinenumber: 811
    functionLinenumberEnd: 851
    functionName: TPM_DelegateKeyBlob_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Load
    - TPM_CheckTag
    - TPM_DelegatePublic_Load
    - printf
    - TPM_SizedBuffer_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegateKeyBlob_Load(TPM_DELEGATE_KEY_BLOB *tpm_delegate_key_blob,\n\t\t\t\t
      \   unsigned char **stream,\n\t\t\t\t    uint32_t *stream_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:864,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:867,1
    - Dst: TPM_DelegatePublic_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:871,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:875,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:879,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:883,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:887,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - sbuffer
    - tpm_delegate_key_blob
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DELEGATE_KEY_BLOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 859
    functionDepth: 5
    functionLinenumber: 859
    functionLinenumberEnd: 890
    functionName: TPM_DelegateKeyBlob_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_DelegatePublic_Store
    - TPM_Sbuffer_Append16
    - TPM_SizedBuffer_Store
    - printf
    - TPM_Digest_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegateKeyBlob_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \    const TPM_DELEGATE_KEY_BLOB *tpm_delegate_key_blob)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:903,1
    - Dst: TPM_DelegatePublic_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:905,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:906,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:907,1
    - Dst: TPM_DelegateKeyBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - tpm_delegate_key_blob
    argTypes:
    - TPM_DELEGATE_KEY_BLOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 901
    functionDepth: 4
    functionLinenumber: 901
    functionLinenumberEnd: 911
    functionName: TPM_DelegateKeyBlob_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Delete
    - TPM_DelegateKeyBlob_Init
    - printf
    - TPM_DelegatePublic_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_DelegateKeyBlob_Delete(TPM_DELEGATE_KEY_BLOB *tpm_delegate_key_blob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:928,1
    - Dst: TPM_FamilyTableEntry_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_family_table
    argTypes:
    - TPM_FAMILY_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 924
    functionDepth: 1
    functionLinenumber: 924
    functionLinenumberEnd: 933
    functionName: TPM_FamilyTable_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_FamilyTableEntry_Init
    linkageType: ''
    returnType: void
    signature: void TPM_FamilyTable_Init(TPM_FAMILY_TABLE *tpm_family_table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:952,1
    - Dst: TPM_FamilyTableEntry_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - tpm_family_table
    - stream
    - stream_size
    argTypes:
    - TPM_FAMILY_TABLE*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 959
    functionName: TPM_FamilyTable_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_FamilyTableEntry_Load
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_FamilyTable_Load(TPM_FAMILY_TABLE *tpm_family_table,\n\t\t\t\tunsigned
      char **stream,\n\t\t\t\tuint32_t *stream_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:976,1
    - Dst: TPM_FamilyTableEntry_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - sbuffer
    - tpm_family_table
    - store_tag
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_FAMILY_TABLE*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 982
    functionName: TPM_FamilyTable_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_FamilyTableEntry_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_FamilyTable_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      const TPM_FAMILY_TABLE *tpm_family_table,\n\t\t\t\t TPM_BOOL store_tag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:997,1
    - Dst: TPM_FamilyTableEntry_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1000,1
    - Dst: TPM_FamilyTable_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1002,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tpm_family_table
    argTypes:
    - TPM_FAMILY_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 993
    functionDepth: 2
    functionLinenumber: 993
    functionLinenumberEnd: 1005
    functionName: TPM_FamilyTable_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_FamilyTableEntry_Delete
    - printf
    - TPM_FamilyTable_Init
    linkageType: ''
    returnType: void
    signature: void TPM_FamilyTable_Delete(TPM_FAMILY_TABLE *tpm_family_table)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1023,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1032,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - tpm_family_table_entry
    - tpm_family_table
    - familyID
    argTypes:
    - TPM_FAMILY_TABLE_ENTRY**
    - TPM_FAMILY_TABLE*
    - TPM_FAMILY_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1015
    functionDepth: 1
    functionLinenumber: 1015
    functionLinenumberEnd: 1036
    functionName: TPM_FamilyTable_GetEntry
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_FamilyTable_GetEntry(TPM_FAMILY_TABLE_ENTRY **tpm_family_table_entry,
      /* output */\n\t\t\t\t    TPM_FAMILY_TABLE *tpm_family_table,\n\t\t\t\t    TPM_FAMILY_ID
      familyID)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1055,1
    - Dst: TPM_FamilyTable_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1057,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1063,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tpm_family_table_entry
    - tpm_family_table
    - familyID
    argTypes:
    - TPM_FAMILY_TABLE_ENTRY**
    - TPM_FAMILY_TABLE*
    - TPM_FAMILY_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1049
    functionDepth: 2
    functionLinenumber: 1049
    functionLinenumberEnd: 1068
    functionName: TPM_FamilyTable_GetEnabledEntry
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_FamilyTable_GetEntry
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_FamilyTable_GetEnabledEntry(TPM_FAMILY_TABLE_ENTRY
      **tpm_family_table_entry,\n\t\t\t\t\t   TPM_FAMILY_TABLE *tpm_family_table,\n\t\t\t\t\t
      \  TPM_FAMILY_ID familyID)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1083,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1087,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1093,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - tpm_family_table_entry
    - tpm_family_table
    argTypes:
    - TPM_FAMILY_TABLE_ENTRY**
    - TPM_FAMILY_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1097
    functionName: TPM_FamilyTable_IsSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_FamilyTable_IsSpace(TPM_FAMILY_TABLE_ENTRY **tpm_family_table_entry,
      /* output */\n\t\t\t\t   TPM_FAMILY_TABLE *tpm_family_table)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1114,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1119,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1120,1
    - Dst: TPM_FamilyTableEntry_StorePublic
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - sbuffer
    - tpm_family_table
    - store_tag
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_FAMILY_TABLE*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1127
    functionName: TPM_FamilyTable_StoreValid
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_FamilyTableEntry_StorePublic
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_FamilyTable_StoreValid(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \     const TPM_FAMILY_TABLE *tpm_family_table,\n\t\t\t\t      TPM_BOOL store_tag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tpm_family_table_entry
    argTypes:
    - TPM_FAMILY_TABLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1149
    functionName: TPM_FamilyTableEntry_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_FamilyTableEntry_Init(TPM_FAMILY_TABLE_ENTRY *tpm_family_table_entry)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1167,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1172,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1176,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1180,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1184,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1188,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1191,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - tpm_family_table_entry
    - stream
    - stream_size
    argTypes:
    - TPM_FAMILY_TABLE_ENTRY*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1161
    functionDepth: 2
    functionLinenumber: 1161
    functionLinenumberEnd: 1197
    functionName: TPM_FamilyTableEntry_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 1
    functionsReached:
    - TPM_LoadBool
    - printf
    - TPM_Load32
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_FamilyTableEntry_Load(TPM_FAMILY_TABLE_ENTRY *tpm_family_table_entry,\n\t\t\t\t
      \    unsigned char **stream,\n\t\t\t\t     uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1213,1
    - Dst: TPM_FamilyTableEntry_StorePublic
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1216,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - sbuffer
    - tpm_family_table_entry
    - store_tag
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_FAMILY_TABLE_ENTRY*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1207
    functionDepth: 3
    functionLinenumber: 1207
    functionLinenumberEnd: 1224
    functionName: TPM_FamilyTableEntry_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 1
    functionsReached:
    - TPM_FamilyTableEntry_StorePublic
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_FamilyTableEntry_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \     const TPM_FAMILY_TABLE_ENTRY *tpm_family_table_entry,\n\t\t\t\t      TPM_BOOL
      store_tag)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1240,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1243,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1247,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1252,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1256,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - sbuffer
    - tpm_family_table_entry
    - store_tag
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_FAMILY_TABLE_ENTRY*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1234
    functionDepth: 4
    functionLinenumber: 1234
    functionLinenumberEnd: 1263
    functionName: TPM_FamilyTableEntry_StorePublic
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 2
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_FamilyTableEntry_StorePublic(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t\t
      \   const TPM_FAMILY_TABLE_ENTRY *tpm_family_table_entry,\n\t\t\t\t\t    TPM_BOOL
      store_tag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1276,1
    - Dst: TPM_FamilyTableEntry_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_family_table_entry
    argTypes:
    - TPM_FAMILY_TABLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1281
    functionName: TPM_FamilyTableEntry_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_FamilyTableEntry_Init
    linkageType: ''
    returnType: void
    signature: void TPM_FamilyTableEntry_Delete(TPM_FAMILY_TABLE_ENTRY *tpm_family_table_entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1298,1
    - Dst: TPM_DelegateTableRow_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_delegate_table
    argTypes:
    - TPM_DELEGATE_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1303
    functionName: TPM_DelegateTable_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_DelegateTableRow_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_DelegateTable_Init(TPM_DELEGATE_TABLE *tpm_delegate_table)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1322,1
    - Dst: TPM_DelegateTableRow_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - tpm_delegate_table
    - stream
    - stream_size
    argTypes:
    - TPM_DELEGATE_TABLE*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1315
    functionDepth: 1
    functionLinenumber: 1315
    functionLinenumberEnd: 1329
    functionName: TPM_DelegateTable_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_DelegateTableRow_Load
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegateTable_Load(TPM_DELEGATE_TABLE *tpm_delegate_table,\n\t\t\t\t
      \ unsigned char **stream,\n\t\t\t\t  uint32_t *stream_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1343,1
    - Dst: TPM_DelegateTableRow_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sbuffer
    - tpm_delegate_table
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DELEGATE_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1348
    functionName: TPM_DelegateTable_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_DelegateTableRow_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegateTable_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \  const TPM_DELEGATE_TABLE *tpm_delegate_table)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1363,1
    - Dst: TPM_DelegateTableRow_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1366,1
    - Dst: TPM_DelegateTable_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tpm_delegate_table
    argTypes:
    - TPM_DELEGATE_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1359
    functionDepth: 2
    functionLinenumber: 1359
    functionLinenumberEnd: 1371
    functionName: TPM_DelegateTable_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_DelegateTableRow_Delete
    - TPM_DelegateTable_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_DelegateTable_Delete(TPM_DELEGATE_TABLE *tpm_delegate_table)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1386,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1391,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1392,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1395,1
    - Dst: TPM_DelegatePublic_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1399,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_delegate_table
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DELEGATE_TABLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1380
    functionDepth: 5
    functionLinenumber: 1380
    functionLinenumberEnd: 1404
    functionName: TPM_DelegateTable_StoreValid
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    - TPM_DelegatePublic_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegateTable_StoreValid(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t\tconst
      TPM_DELEGATE_TABLE *tpm_delegate_table)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1417,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - delegateTableRow
    - tpm_delegate_table
    - rowIndex
    argTypes:
    - TPM_DELEGATE_TABLE_ROW**
    - TPM_DELEGATE_TABLE*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1411
    functionDepth: 1
    functionLinenumber: 1411
    functionLinenumberEnd: 1428
    functionName: TPM_DelegateTable_GetRow
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegateTable_GetRow(TPM_DELEGATE_TABLE_ROW **delegateTableRow,\n\t\t\t\t
      \   TPM_DELEGATE_TABLE *tpm_delegate_table,\n\t\t\t\t    uint32_t rowIndex)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_DelegateTable_GetRow
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1443,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - delegateTableRow
    - tpm_delegate_table
    - rowIndex
    argTypes:
    - TPM_DELEGATE_TABLE_ROW**
    - TPM_DELEGATE_TABLE*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1436
    functionDepth: 2
    functionLinenumber: 1436
    functionLinenumberEnd: 1455
    functionName: TPM_DelegateTable_GetValidRow
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_DelegateTable_GetRow
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegateTable_GetValidRow(TPM_DELEGATE_TABLE_ROW **delegateTableRow,\n\t\t\t\t\t
      TPM_DELEGATE_TABLE *tpm_delegate_table,\n\t\t\t\t\t uint32_t rowIndex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1470,1
    - Dst: TPM_DelegatePublic_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1471,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tpm_delegate_table_row
    argTypes:
    - TPM_DELEGATE_TABLE_ROW*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1468
    functionDepth: 3
    functionLinenumber: 1468
    functionLinenumberEnd: 1475
    functionName: TPM_DelegateTableRow_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 1
    functionsReached:
    - TPM_Secret_Init
    - TPM_DelegatePublic_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_DelegateTableRow_Init(TPM_DELEGATE_TABLE_ROW *tpm_delegate_table_row)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1493,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1496,1
    - Dst: TPM_DelegatePublic_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1500,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1504,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1508,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - tpm_delegate_table_row
    - stream
    - stream_size
    argTypes:
    - TPM_DELEGATE_TABLE_ROW*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1487
    functionDepth: 4
    functionLinenumber: 1487
    functionLinenumberEnd: 1511
    functionName: TPM_DelegateTableRow_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 1
    functionsReached:
    - TPM_Secret_Load
    - TPM_CheckTag
    - TPM_LoadBool
    - TPM_DelegatePublic_Load
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegateTableRow_Load(TPM_DELEGATE_TABLE_ROW *tpm_delegate_table_row,\n\t\t\t\t
      \    unsigned char **stream,\n\t\t\t\t     uint32_t *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1524,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1527,1
    - Dst: TPM_DelegatePublic_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1531,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1535,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_delegate_table_row
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DELEGATE_TABLE_ROW*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1519
    functionDepth: 5
    functionLinenumber: 1519
    functionLinenumberEnd: 1542
    functionName: TPM_DelegateTableRow_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 1
    functionsReached:
    - TPM_DelegatePublic_Store
    - TPM_Sbuffer_Append16
    - TPM_Secret_Store
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DelegateTableRow_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \     const TPM_DELEGATE_TABLE_ROW *tpm_delegate_table_row)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1555,1
    - Dst: TPM_DelegatePublic_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1557,1
    - Dst: TPM_DelegateTableRow_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_delegate_table_row
    argTypes:
    - TPM_DELEGATE_TABLE_ROW*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1553
    functionDepth: 4
    functionLinenumber: 1553
    functionLinenumberEnd: 1561
    functionName: TPM_DelegateTableRow_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 1
    functionsReached:
    - TPM_DelegateTableRow_Init
    - printf
    - TPM_DelegatePublic_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_DelegateTableRow_Delete(TPM_DELEGATE_TABLE_ROW *tpm_delegate_table_row)
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1645,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1646,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1647,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1655,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1659,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1660,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1664,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1665,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1671,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1683,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1687,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1691,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1700,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1717,1
    - Dst: TPM_FamilyTable_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1719,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1727,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1740,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1741,1
    - Dst: TPM_AuthSessionData_GetDelegatePublic
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1761,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1768,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1780,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1788,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1800,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1813,1
    - Dst: TPM_AuthSessions_TerminatexSAP
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1817,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1827,1
    - Dst: TPM_FamilyTable_IsSpace
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1831,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1838,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1863,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1865,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1879,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1883,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1889,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1897,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1909,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1913,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1919,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1927,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1939,1
    - Dst: TPM_FamilyTableEntry_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1943,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1956,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1964,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1969,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1977,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1979,1
    - Dst: TPM_Sbuffer_AppendAsSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1987,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:1993,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2004,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2013,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2020,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2027,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2032,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2033,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 208
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 1598
    functionDepth: 5
    functionLinenumber: 1598
    functionLinenumberEnd: 2035
    functionName: TPM_Process_DelegateManage
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_FamilyTable_GetEntry
    - TPM_Secret_Copy
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_Sbuffer_AppendAsSizedBuffer
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_AuthSessionData_GetDelegatePublic
    - TPM_GetOutParamDigest
    - TPM_SizedBuffer_Init
    - TPM_AuthSessions_TerminatexSAP
    - TPM_SizedBuffer_Delete
    - TPM_FamilyTableEntry_Delete
    - printf
    - TPM_CheckRequestTag10
    - TPM_FamilyTable_IsSpace
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Sbuffer_Delete
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_DelegateManage(tpm_state_t *tpm_state,\n\t\t\t\t
      \     TPM_STORE_BUFFER *response,\n\t\t\t\t      TPM_TAG tag,\n\t\t\t\t      uint32_t
      paramSize,\n\t\t\t\t      TPM_COMMAND_CODE ordinal,\n\t\t\t\t      unsigned
      char *command,\n\t\t\t\t      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2108,1
    - Dst: TPM_DelegatePublic_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2109,1
    - Dst: TPM_DelegateSensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2110,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2111,1
    - Dst: TPM_DelegateKeyBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2112,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2113,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2119,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2125,1
    - Dst: TPM_DelegatePublic_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2126,1
    - Dst: TPM_Authdata_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2130,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2136,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2148,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2152,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2156,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2165,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2180,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2187,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2191,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2204,1
    - Dst: TPM_FamilyTable_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2216,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2223,1
    - Dst: TPM_AuthSessionData_GetDelegatePublic
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2226,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2233,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2243,1
    - Dst: TPM_Delegations_CheckPermissionDelegation
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2252,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2259,1
    - Dst: TPM_AuthSessionData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2270,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2280,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2281,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2290,1
    - Dst: TPM_DelegateSensitive_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2295,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2299,1
    - Dst: TPM_SymmetricKeyData_EncryptSbuffer
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2301,1
    - Dst: TPM_DelegatePublic_Copy
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2312,1
    - Dst: TPM_HMAC_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2329,1
    - Dst: TPM_DelegateKeyBlob_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2341,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2348,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2350,1
    - Dst: TPM_Sbuffer_AppendAsSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2358,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2364,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2375,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2384,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2391,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2398,1
    - Dst: TPM_DelegatePublic_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2403,1
    - Dst: TPM_DelegateSensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2404,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2405,1
    - Dst: TPM_DelegateKeyBlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2406,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2407,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 140
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2409
      start: 2057
    functionDepth: 6
    functionLinenumber: 2057
    functionLinenumberEnd: 2409
    functionName: TPM_Process_DelegateCreateKeyDelegation
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_DelegatePublic_Init
    - TPM_CheckRequestTag1
    - TPM_FamilyTable_GetEntry
    - TPM_DelegateKeyBlob_Delete
    - TPM_DelegatePublic_Copy
    - TPM_DelegatePublic_Delete
    - TPM_Secret_Copy
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthSessionData_Decrypt
    - TPM_DelegateKeyBlob_Store
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_Sbuffer_AppendAsSizedBuffer
    - TPM_GetInParamDigest
    - TPM_DelegateSensitive_Delete
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_DelegateKeyBlob_Init
    - TPM_Authdata_Check
    - TPM_DelegatePublic_Load
    - TPM_AuthSessionData_GetDelegatePublic
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_Authdata_Load
    - TPM_PrintFour
    - printf
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_SymmetricKeyData_EncryptSbuffer
    - TPM_Sbuffer_Delete
    - TPM_AuthParams_Get
    - TPM_HMAC_GenerateStructure
    - TPM_CheckState
    - TPM_DelegateSensitive_Store
    - TPM_Load32
    - TPM_DelegateSensitive_Init
    - TPM_Delegations_CheckPermissionDelegation
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_DelegateCreateKeyDelegation(tpm_state_t *tpm_state,\n\t\t\t\t\t\t
      \  TPM_STORE_BUFFER *response,\n\t\t\t\t\t\t   TPM_TAG tag,\n\t\t\t\t\t\t   uint32_t
      paramSize,\n\t\t\t\t\t\t   TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t\t   unsigned
      char *command,\n\t\t\t\t\t\t   TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2483,1
    - Dst: TPM_DelegatePublic_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2484,1
    - Dst: TPM_DelegateSensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2485,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2486,1
    - Dst: TPM_DelegateOwnerBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2487,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2488,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2496,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2500,1
    - Dst: TPM_DelegatePublic_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2501,1
    - Dst: TPM_Authdata_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2505,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2511,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2523,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2527,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2531,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2540,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2555,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2568,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2569,1
    - Dst: TPM_FamilyTable_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2582,1
    - Dst: TPM_AuthSessionData_GetDelegatePublic
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2591,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2598,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2607,1
    - Dst: TPM_Delegations_CheckPermissionDelegation
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2616,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2623,1
    - Dst: TPM_AuthSessionData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2634,1
    - Dst: TPM_AuthSessions_TerminatexSAP
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2653,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2659,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2663,1
    - Dst: TPM_DelegateSensitive_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2669,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2673,1
    - Dst: TPM_SymmetricKeyData_EncryptSbuffer
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2675,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2684,1
    - Dst: TPM_DelegatePublic_Copy
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2685,1
    - Dst: TPM_HMAC_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2702,1
    - Dst: TPM_DelegateOwnerBlob_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2714,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2717,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2725,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2727,1
    - Dst: TPM_Sbuffer_AppendAsSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2735,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2741,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2752,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2761,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2768,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2775,1
    - Dst: TPM_DelegatePublic_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2780,1
    - Dst: TPM_DelegateSensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2781,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2782,1
    - Dst: TPM_DelegateOwnerBlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2783,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2784,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 141
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2786
      start: 2434
    functionDepth: 6
    functionLinenumber: 2434
    functionLinenumberEnd: 2786
    functionName: TPM_Process_DelegateCreateOwnerDelegation
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_DelegatePublic_Init
    - TPM_CheckRequestTag1
    - TPM_FamilyTable_GetEntry
    - TPM_DelegateOwnerBlob_Delete
    - TPM_DelegatePublic_Copy
    - TPM_DelegatePublic_Delete
    - TPM_Secret_Copy
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthSessionData_Decrypt
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_Sbuffer_AppendAsSizedBuffer
    - TPM_GetInParamDigest
    - TPM_DelegateOwnerBlob_Store
    - TPM_DelegateSensitive_Delete
    - TPM_LoadBool
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_DelegatePublic_Load
    - TPM_AuthSessionData_GetDelegatePublic
    - TPM_GetOutParamDigest
    - TPM_Authdata_Load
    - TPM_AuthSessions_TerminatexSAP
    - printf
    - TPM_DelegateOwnerBlob_Init
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_SymmetricKeyData_EncryptSbuffer
    - TPM_Sbuffer_Delete
    - TPM_AuthParams_Get
    - TPM_HMAC_GenerateStructure
    - TPM_CheckState
    - TPM_DelegateSensitive_Store
    - TPM_DelegateSensitive_Init
    - TPM_Delegations_CheckPermissionDelegation
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_DelegateCreateOwnerDelegation(tpm_state_t *tpm_state,\n\t\t\t\t\t\t
      \    TPM_STORE_BUFFER *response,\n\t\t\t\t\t\t     TPM_TAG tag,\n\t\t\t\t\t\t
      \    uint32_t paramSize,\n\t\t\t\t\t\t     TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t\t
      \    unsigned char *command,\n\t\t\t\t\t\t     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2858,1
    - Dst: TPM_DelegateOwnerBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2859,1
    - Dst: TPM_DelegateSensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2860,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2868,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2872,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2873,1
    - Dst: TPM_DelegateOwnerBlob_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2877,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2883,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2895,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2899,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2903,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2912,1
    - Dst: TPM_FamilyTable_GetEnabledEntry
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2931,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2941,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2948,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2961,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2962,1
    - Dst: TPM_AuthSessionData_GetDelegatePublic
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2979,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2984,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:2997,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3009,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3026,1
    - Dst: TPM_HMAC_CheckStructure
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3031,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3042,1
    - Dst: TPM_DelegateSensitive_DecryptEncData
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3044,1
    - Dst: TPM_DelegateSensitive_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3053,1
    - Dst: TPM_DelegateTable_GetRow
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3061,1
    - Dst: TPM_AuthSessions_TerminatexSAP
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3070,1
    - Dst: TPM_DelegatePublic_Copy
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3078,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3085,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3099,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3104,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3112,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3114,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3126,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3137,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3146,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3153,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3160,1
    - Dst: TPM_DelegateOwnerBlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3165,1
    - Dst: TPM_DelegateSensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3166,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 153
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3168
      start: 2806
    functionDepth: 5
    functionLinenumber: 2806
    functionLinenumberEnd: 3168
    functionName: TPM_Process_DelegateLoadOwnerDelegation
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_DelegateSensitive_Load
    - TPM_DelegateOwnerBlob_Delete
    - TPM_DelegatePublic_Copy
    - TPM_Secret_Copy
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_HMAC_CheckStructure
    - TPM_AuthSessions_TerminateHandle
    - TPM_DelegateTable_GetRow
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_DelegateSensitive_Delete
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_DelegateOwnerBlob_Load
    - TPM_AuthSessionData_GetDelegatePublic
    - TPM_GetOutParamDigest
    - TPM_DelegateSensitive_DecryptEncData
    - TPM_AuthSessions_TerminatexSAP
    - printf
    - TPM_CheckRequestTag10
    - TPM_DelegateOwnerBlob_Init
    - TPM_FamilyTable_GetEnabledEntry
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_DelegateSensitive_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_DelegateLoadOwnerDelegation(tpm_state_t *tpm_state,\n\t\t\t\t\t\t
      \  TPM_STORE_BUFFER *response,\n\t\t\t\t\t\t   TPM_TAG tag,\n\t\t\t\t\t\t   uint32_t
      paramSize,\n\t\t\t\t\t\t   TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t\t   unsigned
      char *command,\n\t\t\t\t\t\t   TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3209,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3210,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3211,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3221,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3233,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3237,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3241,1
    - Dst: TPM_FamilyTable_StoreValid
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3254,1
    - Dst: TPM_DelegateTable_StoreValid
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3265,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3271,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3273,1
    - Dst: TPM_Sbuffer_AppendAsSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3281,1
    - Dst: TPM_Sbuffer_AppendAsSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3285,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3291,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3302,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3309,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3314,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3315,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3317
      start: 3180
    functionDepth: 6
    functionLinenumber: 3180
    functionLinenumberEnd: 3317
    functionName: TPM_Process_DelegateReadTable
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Sbuffer_Delete
    - TPM_CheckState
    - printf
    - TPM_FamilyTable_StoreValid
    - TPM_DelegateTable_StoreValid
    - TPM_GetOutParamDigest
    - TPM_Sbuffer_Init
    - TPM_Sbuffer_AppendAsSizedBuffer
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_DelegateReadTable(tpm_state_t *tpm_state,\n\t\t\t\t\t
      TPM_STORE_BUFFER *response,\n\t\t\t\t\t TPM_TAG tag,\n\t\t\t\t\t uint32_t paramSize,\n\t\t\t\t\t
      TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t unsigned char *command,\n\t\t\t\t\t TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3376,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3377,1
    - Dst: TPM_DelegateOwnerBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3378,1
    - Dst: TPM_DelegateKeyBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3379,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3380,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3388,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3394,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3406,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3410,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3414,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3423,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3438,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3450,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3468,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3472,1
    - Dst: TPM_DelegateTable_GetValidRow
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3484,1
    - Dst: TPM_DelegateOwnerBlob_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3493,1
    - Dst: TPM_DelegateKeyBlob_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3498,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3503,1
    - Dst: TPM_HMAC_CheckStructure
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3518,1
    - Dst: TPM_HMAC_CheckStructure
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3526,1
    - Dst: TPM_FamilyTable_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3540,1
    - Dst: TPM_AuthSessionData_GetDelegatePublic
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3547,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3555,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3566,1
    - Dst: TPM_HMAC_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3600,1
    - Dst: TPM_HMAC_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3607,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3617,1
    - Dst: TPM_DelegateOwnerBlob_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3626,1
    - Dst: TPM_DelegateKeyBlob_Store
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3630,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3642,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3644,1
    - Dst: TPM_Sbuffer_AppendAsSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3652,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3658,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3669,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3678,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3685,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3692,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3697,1
    - Dst: TPM_DelegateOwnerBlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3698,1
    - Dst: TPM_DelegateKeyBlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3699,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3700,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 168
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3702
      start: 3326
    functionDepth: 6
    functionLinenumber: 3326
    functionLinenumberEnd: 3702
    functionName: TPM_Process_DelegateUpdateVerification
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_FamilyTable_GetEntry
    - TPM_CheckRequestTag1
    - TPM_DelegateOwnerBlob_Delete
    - TPM_DelegateKeyBlob_Delete
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_HMAC_CheckStructure
    - TPM_AuthSessions_TerminateHandle
    - TPM_DelegateTable_GetValidRow
    - TPM_DelegateKeyBlob_Store
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_Sbuffer_AppendAsSizedBuffer
    - TPM_GetInParamDigest
    - TPM_DelegateOwnerBlob_Store
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_DelegateKeyBlob_Init
    - TPM_Authdata_Check
    - TPM_DelegateOwnerBlob_Load
    - TPM_AuthSessionData_GetDelegatePublic
    - TPM_GetOutParamDigest
    - TPM_DelegateKeyBlob_Load
    - TPM_Load16
    - TPM_SizedBuffer_Init
    - TPM_SizedBuffer_Delete
    - printf
    - TPM_DelegateOwnerBlob_Init
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Sbuffer_Delete
    - TPM_AuthParams_Get
    - TPM_HMAC_GenerateStructure
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_DelegateUpdateVerification(tpm_state_t *tpm_state,\n\t\t\t\t\t\t
      \ TPM_STORE_BUFFER *response,\n\t\t\t\t\t\t  TPM_TAG tag,\n\t\t\t\t\t\t  uint32_t
      paramSize,\n\t\t\t\t\t\t  TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t\t  unsigned
      char *command,\n\t\t\t\t\t\t  TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3745,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3746,1
    - Dst: TPM_DelegateOwnerBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3747,1
    - Dst: TPM_DelegateKeyBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3748,1
    - Dst: TPM_DelegateSensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3749,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3757,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3763,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3775,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3779,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3783,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3796,1
    - Dst: TPM_DelegateOwnerBlob_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3807,1
    - Dst: TPM_DelegateKeyBlob_Load
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3819,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3828,1
    - Dst: TPM_FamilyTable_GetEnabledEntry
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3838,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3846,1
    - Dst: TPM_HMAC_CheckStructure
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3859,1
    - Dst: TPM_HMAC_CheckStructure
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3867,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3878,1
    - Dst: TPM_DelegateSensitive_DecryptEncData
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3881,1
    - Dst: TPM_DelegateSensitive_DecryptEncData
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3887,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3902,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3904,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3916,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3927,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3934,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3939,1
    - Dst: TPM_DelegateOwnerBlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3940,1
    - Dst: TPM_DelegateKeyBlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3941,1
    - Dst: TPM_DelegateSensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_delegate.c:3942,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 105
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3944
      start: 3710
    functionDepth: 5
    functionLinenumber: 3710
    functionLinenumberEnd: 3944
    functionName: TPM_Process_DelegateVerifyDelegation
    functionSourceFile: /src/libtpms/src/tpm12/tpm_delegate.c
    functionUses: 0
    functionsReached:
    - TPM_DelegateOwnerBlob_Delete
    - TPM_DelegateKeyBlob_Delete
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_HMAC_CheckStructure
    - TPM_GetInParamDigest
    - TPM_DelegateSensitive_Delete
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_DelegateKeyBlob_Init
    - TPM_DelegateOwnerBlob_Load
    - TPM_GetOutParamDigest
    - TPM_DelegateSensitive_DecryptEncData
    - TPM_DelegateKeyBlob_Load
    - TPM_Load16
    - TPM_SizedBuffer_Init
    - TPM_SizedBuffer_Delete
    - TPM_CheckRequestTag0
    - printf
    - TPM_DelegateOwnerBlob_Init
    - TPM_FamilyTable_GetEnabledEntry
    - TPM_ProcessAudit
    - TPM_CheckState
    - TPM_SizedBuffer_Load
    - TPM_DelegateSensitive_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_DelegateVerifyDelegation(tpm_state_t *tpm_state,\n\t\t\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\t\t\tTPM_TAG tag,\n\t\t\t\t\t\tuint32_t paramSize,\n\t\t\t\t\t\tTPM_COMMAND_CODE
      ordinal,\n\t\t\t\t\t\tunsigned char *command,\n\t\t\t\t\t\tTPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:70,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:71,1
    - Dst: TPM_CounterValue_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpm_audit_event_in
    argTypes:
    - TPM_AUDIT_EVENT_IN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: TPM_AuditEventIn_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_audit.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Digest_Init
    - TPM_CounterValue_Init
    linkageType: ''
    returnType: void
    signature: void TPM_AuditEventIn_Init(TPM_AUDIT_EVENT_IN *tpm_audit_event_in)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:87,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_audit.c:90,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_audit.c:94,1
    - Dst: TPM_CounterValue_StorePublic
      Src: /src/libtpms/src/tpm12/tpm_audit.c:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - tpm_audit_event_in
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_AUDIT_EVENT_IN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 82
    functionDepth: 4
    functionLinenumber: 82
    functionLinenumberEnd: 101
    functionName: TPM_AuditEventIn_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_audit.c
    functionUses: 0
    functionsReached:
    - TPM_CounterValue_StorePublic
    - TPM_Digest_Store
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuditEventIn_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \ const TPM_AUDIT_EVENT_IN *tpm_audit_event_in)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:114,1
    - Dst: TPM_AuditEventIn_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_audit_event_in
    argTypes:
    - TPM_AUDIT_EVENT_IN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: TPM_AuditEventIn_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_audit.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_AuditEventIn_Init
    linkageType: ''
    returnType: void
    signature: void TPM_AuditEventIn_Delete(TPM_AUDIT_EVENT_IN *tpm_audit_event_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:134,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:135,1
    - Dst: TPM_CounterValue_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpm_audit_event_out
    argTypes:
    - TPM_AUDIT_EVENT_OUT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: TPM_AuditEventOut_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_audit.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Digest_Init
    - TPM_CounterValue_Init
    linkageType: ''
    returnType: void
    signature: void TPM_AuditEventOut_Init(TPM_AUDIT_EVENT_OUT *tpm_audit_event_out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:151,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_audit.c:154,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_audit.c:158,1
    - Dst: TPM_CounterValue_StorePublic
      Src: /src/libtpms/src/tpm12/tpm_audit.c:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - tpm_audit_event_out
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_AUDIT_EVENT_OUT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 165
    functionName: TPM_AuditEventOut_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_audit.c
    functionUses: 0
    functionsReached:
    - TPM_CounterValue_StorePublic
    - TPM_Digest_Store
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuditEventOut_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \ const TPM_AUDIT_EVENT_OUT *tpm_audit_event_out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:178,1
    - Dst: TPM_AuditEventOut_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_audit_event_out
    argTypes:
    - TPM_AUDIT_EVENT_OUT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 183
    functionName: TPM_AuditEventOut_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_audit.c
    functionUses: 0
    functionsReached:
    - TPM_AuditEventOut_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_AuditEventOut_Delete(TPM_AUDIT_EVENT_OUT *tpm_audit_event_out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:204,1
    - Dst: TPM_OrdinalTable_GetAuditDefault
      Src: /src/libtpms/src/tpm12/tpm_audit.c:208,1
    - Dst: TPM_OrdinalAuditStatus_SetAuditStatus
      Src: /src/libtpms/src/tpm12/tpm_audit.c:210,1
    - Dst: TPM_OrdinalTable_GetAuditDefault
      Src: /src/libtpms/src/tpm12/tpm_audit.c:214,1
    - Dst: TPM_OrdinalAuditStatus_SetAuditStatus
      Src: /src/libtpms/src/tpm12/tpm_audit.c:215,1
    - Dst: TPM_OrdinalTable_GetAuditDefault
      Src: /src/libtpms/src/tpm12/tpm_audit.c:219,1
    - Dst: TPM_OrdinalAuditStatus_SetAuditStatus
      Src: /src/libtpms/src/tpm12/tpm_audit.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - tpm_permanent_data
    argTypes:
    - TPM_PERMANENT_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 224
    functionName: TPM_OrdinalAuditStatus_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_audit.c
    functionUses: 0
    functionsReached:
    - TPM_OrdinalAuditStatus_SetAuditStatus
    - TPM_OrdinalTable_GetAuditDefault
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_OrdinalAuditStatus_Init(TPM_PERMANENT_DATA *tpm_permanent_data)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:238,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:239,1
    - Dst: TPM_OrdinalAuditStatus_GetAuditStatus
      Src: /src/libtpms/src/tpm12/tpm_audit.c:244,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_audit.c:248,1
    - Dst: TPM_OrdinalAuditStatus_GetAuditStatus
      Src: /src/libtpms/src/tpm12/tpm_audit.c:254,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_audit.c:259,1
    - Dst: TPM_OrdinalAuditStatus_GetAuditStatus
      Src: /src/libtpms/src/tpm12/tpm_audit.c:262,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_audit.c:268,1
    - Dst: TPM_SizedBuffer_SetFromStore
      Src: /src/libtpms/src/tpm12/tpm_audit.c:273,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_audit.c:275,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - ordinalList
    - tpm_permanent_data
    - startOrdinal
    argTypes:
    - TPM_SIZED_BUFFER*
    - TPM_PERMANENT_DATA*
    - TPM_COMMAND_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 277
    functionName: TPM_OrdinalAuditStatus_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_audit.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Delete
    - TPM_OrdinalAuditStatus_GetAuditStatus
    - printf
    - TPM_SizedBuffer_SetFromStore
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_OrdinalAuditStatus_Store(TPM_SIZED_BUFFER *ordinalList,\n\t\t\t\t\tTPM_PERMANENT_DATA
      *tpm_permanent_data,\n\t\t\t\t\tTPM_COMMAND_CODE startOrdinal)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:307,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:314,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - auditStatus
    - ordinal
    - tpm_permanent_data
    argTypes:
    - TPM_BOOL*
    - TPM_COMMAND_CODE
    - TPM_PERMANENT_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 318
    functionName: TPM_OrdinalAuditStatus_GetAuditStatus
    functionSourceFile: /src/libtpms/src/tpm12/tpm_audit.c
    functionUses: 3
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_OrdinalAuditStatus_GetAuditStatus(TPM_BOOL *auditStatus,\n\t\t\t\t\t\t
      TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t\t TPM_PERMANENT_DATA *tpm_permanent_data)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:344,1
    - Dst: TPM_OrdinalTable_GetAuditable
      Src: /src/libtpms/src/tpm12/tpm_audit.c:349,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:352,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:412,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 4
    argNames:
    - altered
    - tpm_permanent_data
    - auditStatus
    - ordinal
    argTypes:
    - TPM_BOOL*
    - TPM_PERMANENT_DATA*
    - TPM_BOOL
    - TPM_COMMAND_CODE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 418
    functionName: TPM_OrdinalAuditStatus_SetAuditStatus
    functionSourceFile: /src/libtpms/src/tpm12/tpm_audit.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_OrdinalTable_GetAuditable
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_OrdinalAuditStatus_SetAuditStatus(TPM_BOOL *altered,\n\t\t\t\t\t\t
      TPM_PERMANENT_DATA *tpm_permanent_data,\n\t\t\t\t\t\t TPM_BOOL auditStatus,\n\t\t\t\t\t\t
      TPM_COMMAND_CODE ordinal)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:438,1
    - Dst: TPM_AuditEventIn_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:439,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:440,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_audit.c:448,1
    - Dst: TPM_CounterValue_CopyPublic
      Src: /src/libtpms/src/tpm12/tpm_audit.c:450,1
    - Dst: TPM_AuditEventIn_Store
      Src: /src/libtpms/src/tpm12/tpm_audit.c:453,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_audit.c:458,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_audit.c:460,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_audit.c:462,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_audit.c:463,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_audit.c:467,1
    - Dst: TPM_AuditEventIn_Delete
      Src: /src/libtpms/src/tpm12/tpm_audit.c:470,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_audit.c:471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - tpm_state
    - inParamDigest
    argTypes:
    - tpm_state_t*
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 429
    functionDepth: 5
    functionLinenumber: 429
    functionLinenumberEnd: 473
    functionName: TPM_AuditDigest_ExtendIn
    functionSourceFile: /src/libtpms/src/tpm12/tpm_audit.c
    functionUses: 1
    functionsReached:
    - TPM_SHA1
    - TPM_AuditEventIn_Init
    - TPM_Sbuffer_Get
    - TPM_AuditEventIn_Delete
    - TPM_CounterValue_CopyPublic
    - TPM_PrintFour
    - TPM_Sbuffer_Delete
    - printf
    - TPM_Digest_Copy
    - TPM_PrintAll
    - TPM_AuditEventIn_Store
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuditDigest_ExtendIn(tpm_state_t *tpm_state,\n\t\t\t\t
      \   TPM_DIGEST inParamDigest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:489,1
    - Dst: TPM_AuditEventOut_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:490,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:491,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_audit.c:499,1
    - Dst: TPM_CounterValue_CopyPublic
      Src: /src/libtpms/src/tpm12/tpm_audit.c:501,1
    - Dst: TPM_AuditEventOut_Store
      Src: /src/libtpms/src/tpm12/tpm_audit.c:504,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_audit.c:508,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_audit.c:510,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_audit.c:512,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_audit.c:513,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_audit.c:517,1
    - Dst: TPM_AuditEventOut_Delete
      Src: /src/libtpms/src/tpm12/tpm_audit.c:520,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_audit.c:521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - tpm_state
    - outParamDigest
    argTypes:
    - tpm_state_t*
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 480
    functionDepth: 5
    functionLinenumber: 480
    functionLinenumberEnd: 523
    functionName: TPM_AuditDigest_ExtendOut
    functionSourceFile: /src/libtpms/src/tpm12/tpm_audit.c
    functionUses: 1
    functionsReached:
    - TPM_AuditEventOut_Init
    - TPM_SHA1
    - TPM_Sbuffer_Get
    - TPM_AuditEventOut_Delete
    - TPM_CounterValue_CopyPublic
    - TPM_PrintFour
    - TPM_Sbuffer_Delete
    - TPM_AuditEventOut_Store
    - printf
    - TPM_Digest_Copy
    - TPM_PrintAll
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuditDigest_ExtendOut(tpm_state_t *tpm_state,\n\t\t\t\t
      \    TPM_DIGEST outParamDigest)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:575,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:576,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_audit.c:584,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:587,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_audit.c:593,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_audit.c:605,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_audit.c:609,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:613,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_audit.c:623,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:626,1
    - Dst: TPM_OrdinalAuditStatus_Store
      Src: /src/libtpms/src/tpm12/tpm_audit.c:633,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:638,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:647,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_audit.c:649,1
    - Dst: TPM_CounterValue_StorePublic
      Src: /src/libtpms/src/tpm12/tpm_audit.c:658,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_audit.c:664,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_audit.c:668,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_audit.c:672,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_audit.c:678,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_audit.c:689,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_audit.c:696,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_audit.c:701,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 545
    functionDepth: 5
    functionLinenumber: 545
    functionLinenumberEnd: 703
    functionName: TPM_Process_GetAuditDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_audit.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_GetInParamDigest
    - TPM_CounterValue_StorePublic
    - TPM_SizedBuffer_Delete
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_SizedBuffer_Store
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_Digest_Copy
    - TPM_GetOutParamDigest
    - TPM_OrdinalAuditStatus_Store
    - TPM_Digest_Store
    - TPM_Sbuffer_Append
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_GetAuditDigest(tpm_state_t *tpm_state,\n\t\t\t\t
      \     TPM_STORE_BUFFER *response,\n\t\t\t\t      TPM_TAG tag,\n\t\t\t\t      uint32_t
      paramSize,\n\t\t\t\t      TPM_COMMAND_CODE ordinal,\n\t\t\t\t      unsigned
      char *command,\n\t\t\t\t      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:772,1
    - Dst: TPM_SignInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:773,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:774,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:775,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:776,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_audit.c:782,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:788,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_audit.c:789,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_audit.c:793,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_audit.c:799,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_audit.c:811,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_audit.c:815,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_audit.c:819,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:828,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_audit.c:843,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:850,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_audit.c:856,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_audit.c:860,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_audit.c:873,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:888,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:899,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_audit.c:908,1
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_audit.c:910,1
    - Dst: TPM_OrdinalAuditStatus_Store
      Src: /src/libtpms/src/tpm12/tpm_audit.c:913,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_audit.c:919,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_audit.c:929,1
    - Dst: TPM_CounterValue_StorePublic
      Src: /src/libtpms/src/tpm12/tpm_audit.c:934,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_audit.c:938,1
    - Dst: TPM_SizedBuffer_SetFromStore
      Src: /src/libtpms/src/tpm12/tpm_audit.c:943,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_audit.c:948,1
    - Dst: TPM_RSASignToSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_audit.c:952,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_audit.c:958,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_audit.c:960,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_audit.c:970,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:975,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:985,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_audit.c:987,1
    - Dst: TPM_CounterValue_StorePublic
      Src: /src/libtpms/src/tpm12/tpm_audit.c:995,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1001,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1005,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1009,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1015,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1026,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1035,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1042,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1049,1
    - Dst: TPM_SignInfo_Delete
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1054,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1055,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1056,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1057,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 145
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 725
    functionDepth: 5
    functionLinenumber: 725
    functionLinenumberEnd: 1059
    functionName: TPM_Process_GetAuditDigestSigned
    functionSourceFile: /src/libtpms/src/tpm12/tpm_audit.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_SizedBuffer_Store
    - TPM_SizedBuffer_SetFromStore
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_Sbuffer_Append
    - TPM_GetInParamDigest
    - TPM_SHA1
    - TPM_CounterValue_StorePublic
    - TPM_LoadBool
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_Nonce_Copy
    - TPM_SignInfo_Delete
    - TPM_SizedBuffer_Init
    - memcpy
    - TPM_SizedBuffer_Delete
    - TPM_PrintFour
    - printf
    - TPM_Digest_Init
    - TPM_CheckRequestTag10
    - TPM_Digest_Store
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Digest_Load
    - TPM_KeyHandleEntries_GetKey
    - TPM_RSASignToSizedBuffer
    - TPM_Sbuffer_Delete
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_OrdinalAuditStatus_Store
    - TPM_SignInfo_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_GetAuditDigestSigned(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \   TPM_STORE_BUFFER *response,\n\t\t\t\t\t    TPM_TAG tag,\n\t\t\t\t\t    uint32_t
      paramSize,\n\t\t\t\t\t    TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t    unsigned
      char *command,\n\t\t\t\t\t    TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1105,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1113,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1117,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1120,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1127,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1139,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1143,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1147,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1156,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1170,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1183,1
    - Dst: TPM_OrdinalAuditStatus_SetAuditStatus
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1199,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1208,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1220,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1222,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1234,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1245,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1254,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1261,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_audit.c:1268,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1067
    functionDepth: 5
    functionLinenumber: 1067
    functionLinenumberEnd: 1271
    functionName: TPM_Process_SetOrdinalAuditStatus
    functionSourceFile: /src/libtpms/src/tpm12/tpm_audit.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_AuthParams_Set
    - TPM_GetInParamDigest
    - TPM_CheckRequestTag1
    - TPM_LoadBool
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthParams_Get
    - TPM_OrdinalAuditStatus_SetAuditStatus
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    - TPM_AuthSessions_GetData
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_SetOrdinalAuditStatus(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \    TPM_STORE_BUFFER *response,\n\t\t\t\t\t     TPM_TAG tag,\n\t\t\t\t\t     uint32_t
      paramSize,\n\t\t\t\t\t     TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t     unsigned
      char *command,\n\t\t\t\t\t     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 67
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:141,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_owner.c:145,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_owner.c:146,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_owner.c:147,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_owner.c:148,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_owner.c:149,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_owner.c:150,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_owner.c:158,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:162,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_owner.c:163,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_owner.c:167,1
    - Dst: TPM_Key_Load
      Src: /src/libtpms/src/tpm12/tpm_owner.c:171,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_owner.c:177,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_owner.c:189,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_owner.c:195,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_owner.c:199,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:208,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:222,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:224,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:231,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:238,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_owner.c:244,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:258,1
    - Dst: TPM_RSAPrivateDecryptH
      Src: /src/libtpms/src/tpm12/tpm_owner.c:266,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:276,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_owner.c:284,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_owner.c:285,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:299,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:301,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:309,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:317,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:326,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:335,1
    - Dst: TPM_KeyParms_GetRSAKeyParms
      Src: /src/libtpms/src/tpm12/tpm_owner.c:343,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:347,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:357,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:368,1
    - Dst: TPM_Key_CheckStruct
      Src: /src/libtpms/src/tpm12/tpm_owner.c:376,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:381,1
    - Dst: TPM_PCRInfo_Trace
      Src: /src/libtpms/src/tpm12/tpm_owner.c:384,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:389,1
    - Dst: TPM_PCRInfo_Trace
      Src: /src/libtpms/src/tpm12/tpm_owner.c:394,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:399,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:402,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_owner.c:406,1
    - Dst: TPM_Key_GenerateRSA
      Src: /src/libtpms/src/tpm12/tpm_owner.c:407,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:423,1
    - Dst: TPM_Secret_Generate
      Src: /src/libtpms/src/tpm12/tpm_owner.c:424,1
    - Dst: TPM_RSAPrivateDecryptH
      Src: /src/libtpms/src/tpm12/tpm_owner.c:429,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:439,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_owner.c:446,1
    - Dst: TPM_Key_GetStoreAsymkey
      Src: /src/libtpms/src/tpm12/tpm_owner.c:448,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_owner.c:452,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_owner.c:454,1
    - Dst: TPM_StoreAsymkey_Store
      Src: /src/libtpms/src/tpm12/tpm_owner.c:456,1
    - Dst: TPM_SizedBuffer_SetFromStore
      Src: /src/libtpms/src/tpm12/tpm_owner.c:460,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_owner.c:466,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:472,1
    - Dst: TPM_SymmetricKeyData_GenerateKey
      Src: /src/libtpms/src/tpm12/tpm_owner.c:473,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:478,1
    - Dst: TPM_SymmetricKeyData_GenerateKey
      Src: /src/libtpms/src/tpm12/tpm_owner.c:479,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:486,1
    - Dst: TPM_Key_Copy
      Src: /src/libtpms/src/tpm12/tpm_owner.c:487,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:491,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_owner.c:492,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_owner.c:497,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:505,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_owner.c:507,1
    - Dst: TPM_Key_Store
      Src: /src/libtpms/src/tpm12/tpm_owner.c:515,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_owner.c:521,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_owner.c:534,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_owner.c:543,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_owner.c:550,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_owner.c:557,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_owner.c:559,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_owner.c:560,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_owner.c:561,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_owner.c:562,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_owner.c:563,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_owner.c:564,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 240
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 88
    functionDepth: 7
    functionLinenumber: 88
    functionLinenumberEnd: 566
    functionName: TPM_Process_TakeOwnership
    functionSourceFile: /src/libtpms/src/tpm12/tpm_owner.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_CheckRequestTag1
    - TPM_Secret_Copy
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_Key_GetStoreAsymkey
    - TPM_Key_Store
    - TPM_StoreAsymkey_Store
    - TPM_SizedBuffer_SetFromStore
    - TPM_Key_Load
    - TPM_PCRInfo_Trace
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_SetCapability_Flag
    - TPM_GetInParamDigest
    - TPM_KeyParms_GetRSAKeyParms
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Key_CheckStruct
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Load16
    - TPM_SizedBuffer_Init
    - TPM_SizedBuffer_Delete
    - TPM_PrintFour
    - TPM_Key_Delete
    - printf
    - TPM_RSAPrivateDecryptH
    - TPM_SymmetricKeyData_GenerateKey
    - TPM_ProcessAudit
    - TPM_Key_Init
    - TPM_AuthParams_Set
    - TPM_Sbuffer_Delete
    - TPM_Key_Copy
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Key_GenerateRSA
    - TPM_SizedBuffer_Load
    - TPM_Secret_Generate
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_TakeOwnership(tpm_state_t *tpm_state,\n\t\t\t\t
      \    TPM_STORE_BUFFER *response,\n\t\t\t\t     TPM_TAG tag,\n\t\t\t\t     uint32_t
      paramSize,\t\t/* bytes left in command */\n\t\t\t\t     TPM_COMMAND_CODE ordinal,\n\t\t\t\t
      \    unsigned char *command,\n\t\t\t\t     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:610,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_owner.c:620,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_owner.c:632,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_owner.c:636,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_owner.c:640,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:649,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_owner.c:664,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_owner.c:678,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_owner.c:679,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_owner.c:680,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:692,1
    - Dst: TPM_OwnerClearCommon
      Src: /src/libtpms/src/tpm12/tpm_owner.c:698,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_owner.c:704,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:712,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_owner.c:714,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_owner.c:726,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_owner.c:737,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_owner.c:746,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_owner.c:753,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_owner.c:761,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 575
    functionDepth: 5
    functionLinenumber: 575
    functionLinenumberEnd: 764
    functionName: TPM_Process_OwnerClear
    functionSourceFile: /src/libtpms/src/tpm12/tpm_owner.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_AuthParams_Set
    - TPM_GetInParamDigest
    - TPM_CheckRequestTag1
    - TPM_Secret_Copy
    - TPM_PrintFour
    - TPM_OwnerClearCommon
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthParams_Get
    - TPM_CheckState
    - printf
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    - TPM_AuthSessions_GetData
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_OwnerClear(tpm_state_t *tpm_state,\n\t\t\t\t
      \ TPM_STORE_BUFFER *response,\n\t\t\t\t  TPM_TAG tag,\n\t\t\t\t  uint32_t paramSize,\n\t\t\t\t
      \ TPM_COMMAND_CODE ordinal,\n\t\t\t\t  unsigned char *command,\n\t\t\t\t  TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:803,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_owner.c:813,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_owner.c:825,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_owner.c:829,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:833,1
    - Dst: TPM_Global_GetPhysicalPresence
      Src: /src/libtpms/src/tpm12/tpm_owner.c:844,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:848,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:855,1
    - Dst: TPM_OwnerClearCommon
      Src: /src/libtpms/src/tpm12/tpm_owner.c:862,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_owner.c:867,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:875,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_owner.c:877,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_owner.c:889,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_owner.c:900,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_owner.c:907,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 776
    functionDepth: 5
    functionLinenumber: 776
    functionLinenumberEnd: 910
    functionName: TPM_Process_ForceClear
    functionSourceFile: /src/libtpms/src/tpm12/tpm_owner.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Global_GetPhysicalPresence
    - TPM_OwnerClearCommon
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ForceClear(tpm_state_t *tpm_state,\n\t\t\t\t
      \ TPM_STORE_BUFFER *response,\n\t\t\t\t  TPM_TAG tag,\n\t\t\t\t  uint32_t paramSize,\n\t\t\t\t
      \ TPM_COMMAND_CODE ordinal,\n\t\t\t\t  unsigned char *command,\n\t\t\t\t  TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TPM_KeyHandleEntries_GetNextEntry
      Src: /src/libtpms/src/tpm12/tpm_owner.c:938,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:942,1
    - Dst: TPM_KeyHandleEntry_FlushSpecific
      Src: /src/libtpms/src/tpm12/tpm_owner.c:944,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_owner.c:950,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:955,1
    - Dst: TPM_KeyHandleEntries_OwnerEvictDelete
      Src: /src/libtpms/src/tpm12/tpm_owner.c:956,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:978,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_owner.c:980,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_owner.c:983,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:985,1
    - Dst: TPM_SymmetricKeyData_Init
      Src: /src/libtpms/src/tpm12/tpm_owner.c:986,1
    - Dst: TPM_DelegateTable_Delete
      Src: /src/libtpms/src/tpm12/tpm_owner.c:988,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:990,1
    - Dst: TPM_SymmetricKeyData_Init
      Src: /src/libtpms/src/tpm12/tpm_owner.c:991,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_owner.c:993,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_owner.c:995,1
    - Dst: TPM_OrdinalAuditStatus_Init
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1000,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1010,1
    - Dst: TPM_StanyData_Delete
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1011,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1017,1
    - Dst: TPM_StclearData_Delete
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1018,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1023,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1026,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1029,1
    - Dst: TPM_Counters_Release
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1061,1
    - Dst: TPM_NVIndexEntries_DeleteOwnerAuthorized
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1077,1
    - Dst: TPM_NVIndexEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1088,1
    - Dst: TPM_NVDataSensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1093,1
    - Dst: TPM_FamilyTable_Delete
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1102,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 67
    argCount: 2
    argNames:
    - tpm_state
    - deleteAllNvram
    argTypes:
    - tpm_state_t*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 924
    functionDepth: 6
    functionLinenumber: 924
    functionLinenumberEnd: 1109
    functionName: TPM_OwnerClearCommon
    functionSourceFile: /src/libtpms/src/tpm12/tpm_owner.c
    functionUses: 4
    functionsReached:
    - TPM_Counters_Release
    - TPM_FamilyTable_Delete
    - TPM_DelegateTable_Delete
    - TPM_Secret_Init
    - TPM_StanyData_Delete
    - TPM_SymmetricKeyData_Init
    - TPM_NVIndexEntries_DeleteOwnerAuthorized
    - TPM_KeyHandleEntries_OwnerEvictDelete
    - TPM_OrdinalAuditStatus_Init
    - TPM_StclearData_Delete
    - TPM_NVDataSensitive_Delete
    - TPM_Key_Delete
    - TPM_NVIndexEntries_GetEntry
    - printf
    - TPM_KeyHandleEntry_FlushSpecific
    - TPM_KeyHandleEntries_GetNextEntry
    - TPM_Digest_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_OwnerClearCommon(tpm_state_t *tpm_state,\n\t\t\t\tTPM_BOOL
      deleteAllNvram)"
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1161,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1169,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1175,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1186,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1190,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1195,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1199,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1210,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1231,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1242,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1250,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1259,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1268,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1276,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1277,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1284,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1285,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1292,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1293,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1300,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1301,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1308,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1309,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1326,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1334,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1343,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1352,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1359,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1367,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1370,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1377,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1383,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1393,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1408,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1415,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1422,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1429,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1438,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1439,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1444,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1445,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1451,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1452,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1458,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1462,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1467,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1473,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1481,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1483,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1495,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1506,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1513,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 201
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1129
    functionDepth: 5
    functionLinenumber: 1129
    functionLinenumberEnd: 1516
    functionName: TPM_Process_PhysicalPresence
    functionSourceFile: /src/libtpms/src/tpm12/tpm_owner.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - TPM_PermanentAll_NVStore
    - TPM_SetCapability_Flag
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_PhysicalPresence(tpm_state_t *tpm_state,\n\t\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\t\tTPM_TAG tag,\n\t\t\t\t\tuint32_t paramSize,\n\t\t\t\t\tTPM_COMMAND_CODE
      ordinal,\n\t\t\t\t\tunsigned char *command,\n\t\t\t\t\tTPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1563,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1573,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1585,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1589,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1593,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1602,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1616,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1628,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1641,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1642,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1647,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1655,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1657,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1669,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1680,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1689,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1696,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1703,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1528
    functionDepth: 5
    functionLinenumber: 1528
    functionLinenumberEnd: 1706
    functionName: TPM_Process_DisableOwnerClear
    functionSourceFile: /src/libtpms/src/tpm12/tpm_owner.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_SetCapability_Flag
    - TPM_GetInParamDigest
    - TPM_CheckRequestTag1
    - TPM_AuthParams_Set
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthParams_Get
    - TPM_CheckState
    - printf
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    - TPM_AuthSessions_GetData
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_DisableOwnerClear(tpm_state_t *tpm_state,\n\t\t\t\t\t
      TPM_STORE_BUFFER *response,\n\t\t\t\t\t TPM_TAG tag,\n\t\t\t\t\t uint32_t paramSize,\n\t\t\t\t\t
      TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t unsigned char *command,\n\t\t\t\t\t TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1740,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1750,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1762,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1766,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1770,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1788,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1790,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1802,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1813,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1820,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1715
    functionDepth: 5
    functionLinenumber: 1715
    functionLinenumberEnd: 1823
    functionName: TPM_Process_DisableForceClear
    functionSourceFile: /src/libtpms/src/tpm12/tpm_owner.c
    functionUses: 0
    functionsReached:
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckRequestTag0
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_DisableForceClear(tpm_state_t *tpm_state,\n\t\t\t\t\t
      TPM_STORE_BUFFER *response,\n\t\t\t\t\t TPM_TAG tag,\n\t\t\t\t\t uint32_t paramSize,\n\t\t\t\t\t
      TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t unsigned char *command,\n\t\t\t\t\t TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1871,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1881,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1893,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1898,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1902,1
    - Dst: TPM_Locality_Check
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1912,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1917,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1923,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1932,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1934,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1946,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1957,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_owner.c:1964,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1845
    functionDepth: 5
    functionLinenumber: 1845
    functionLinenumberEnd: 1967
    functionName: TPM_Process_ResetEstablishmentBit
    functionSourceFile: /src/libtpms/src/tpm12/tpm_owner.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_SetCapability_Flag
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    - TPM_Locality_Check
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ResetEstablishmentBit(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \    TPM_STORE_BUFFER *response,\n\t\t\t\t\t     TPM_TAG tag,\n\t\t\t\t\t     uint32_t
      paramSize,\n\t\t\t\t\t     TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t     unsigned
      char *command,\n\t\t\t\t\t     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm12/tpm_libtpms_io.c:58,1
    - Dst: struct libtpms_callbacks*::tpm_io_init
      Src: /src/libtpms/src/tpm12/tpm_libtpms_io.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: TPM_IO_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_libtpms_io.c
    functionUses: 0
    functionsReached:
    - TPMLIB_GetCallbacks
    - struct libtpms_callbacks*::tpm_io_init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_IO_Init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_CounterValue_Init
      Src: /src/libtpms/src/tpm12/tpm_counter.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - monotonicCounters
    argTypes:
    - TPM_COUNTER_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: TPM_Counters_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 0
    functionsReached:
    - TPM_CounterValue_Init
    linkageType: ''
    returnType: void
    signature: void TPM_Counters_Init(TPM_COUNTER_VALUE *monotonicCounters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_CounterValue_Load
      Src: /src/libtpms/src/tpm12/tpm_counter.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - monotonicCounters
    - stream
    - stream_size
    argTypes:
    - TPM_COUNTER_VALUE*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 91
    functionName: TPM_Counters_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 0
    functionsReached:
    - TPM_CounterValue_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Counters_Load(TPM_COUNTER_VALUE *monotonicCounters,\n\t\t\t
      \    unsigned char **stream,\n\t\t\t     uint32_t *stream_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_CounterValue_Store
      Src: /src/libtpms/src/tpm12/tpm_counter.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - sbuffer
    - monotonicCounters
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_COUNTER_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: TPM_Counters_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 0
    functionsReached:
    - TPM_CounterValue_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Counters_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t      TPM_COUNTER_VALUE
      *monotonicCounters)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:117,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_counter.c:127,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_counter.c:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - sbuffer
    - monotonicCounters
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_COUNTER_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 136
    functionName: TPM_Counters_StoreHandles
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Counters_StoreHandles(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \    TPM_COUNTER_VALUE *monotonicCounters)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - space
    - monotonicCounters
    argTypes:
    - uint32_t*
    - TPM_COUNTER_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 153
    functionName: TPM_Counters_GetSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_Counters_GetSpace(uint32_t *space,\n\t\t\t   TPM_COUNTER_VALUE
      *monotonicCounters)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:172,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:184,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - tpm_counter_value
    - countID
    - monotonicCounters
    argTypes:
    - TPM_COUNTER_VALUE**
    - TPM_COUNT_ID*
    - TPM_COUNTER_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 193
    functionName: TPM_Counters_GetNewHandle
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Counters_GetNewHandle(TPM_COUNTER_VALUE **tpm_counter_value,\n\t\t\t\t
      \    TPM_COUNT_ID *countID,\n\t\t\t\t     TPM_COUNTER_VALUE *monotonicCounters)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:207,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - nextCount
    - monotonicCounters
    argTypes:
    - TPM_ACTUAL_COUNT*
    - TPM_COUNTER_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 216
    functionName: TPM_Counters_GetNextCount
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_Counters_GetNextCount(TPM_ACTUAL_COUNT *nextCount,\n\t\t\t
      \      TPM_COUNTER_VALUE *monotonicCounters)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:226,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:230,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - monotonicCounters
    - countID
    argTypes:
    - TPM_COUNTER_VALUE*
    - TPM_COUNT_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 242
    functionName: TPM_Counters_IsValidId
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Counters_IsValidId(TPM_COUNTER_VALUE *monotonicCounters,\n\t\t\t\t
      \ TPM_COUNT_ID countID)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:255,1
    - Dst: TPM_Counters_IsValidId
      Src: /src/libtpms/src/tpm12/tpm_counter.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tpm_counter_value
    - monotonicCounters
    - countID
    argTypes:
    - TPM_COUNTER_VALUE**
    - TPM_COUNTER_VALUE*
    - TPM_COUNT_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 264
    functionName: TPM_Counters_GetCounterValue
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 0
    functionsReached:
    - TPM_Counters_IsValidId
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Counters_GetCounterValue(TPM_COUNTER_VALUE **tpm_counter_value,\n\t\t\t\t\tTPM_COUNTER_VALUE
      *monotonicCounters,\n\t\t\t\t\tTPM_COUNT_ID countID)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:281,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:285,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_counter.c:286,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_counter.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - monotonicCounters
    argTypes:
    - TPM_COUNTER_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 292
    functionName: TPM_Counters_Release
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 1
    functionsReached:
    - TPM_Secret_Init
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Counters_Release(TPM_COUNTER_VALUE *monotonicCounters)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - activeCounter
    - countID
    argTypes:
    - TPM_COUNT_ID*
    - TPM_COUNT_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 306
    functionName: TPM_Counters_GetActiveCounter
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TPM_Counters_GetActiveCounter(TPM_COUNT_ID *activeCounter,\n\t\t\t\t
      \  TPM_COUNT_ID countID)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:321,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_counter.c:322,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_counter.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tpm_counter_value
    argTypes:
    - TPM_COUNTER_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 327
    functionName: TPM_CounterValue_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 3
    functionsReached:
    - TPM_Secret_Init
    - printf
    - memset
    linkageType: ''
    returnType: void
    signature: void TPM_CounterValue_Init(TPM_COUNTER_VALUE *tpm_counter_value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:343,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_counter.c:346,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_counter.c:350,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_counter.c:354,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_counter.c:358,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_counter.c:362,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - tpm_counter_value
    - stream
    - stream_size
    argTypes:
    - TPM_COUNTER_VALUE*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 365
    functionName: TPM_CounterValue_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 1
    functionsReached:
    - TPM_Secret_Load
    - TPM_CheckTag
    - TPM_LoadBool
    - TPM_Loadn
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CounterValue_Load(TPM_COUNTER_VALUE *tpm_counter_value,\t/*
      result */\n\t\t\t\t unsigned char **stream,\t\t/* pointer to next\n\t\t\t\t\t\t\t\t\t
      \  parameter */\n\t\t\t\t uint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:380,1
    - Dst: TPM_CounterValue_StorePublic
      Src: /src/libtpms/src/tpm12/tpm_counter.c:383,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_counter.c:387,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_counter.c:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - tpm_counter_value
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_COUNTER_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 394
    functionName: TPM_CounterValue_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 1
    functionsReached:
    - TPM_CounterValue_StorePublic
    - printf
    - TPM_Sbuffer_Append
    - TPM_Secret_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CounterValue_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \ const TPM_COUNTER_VALUE *tpm_counter_value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:410,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_counter.c:413,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_counter.c:417,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_counter.c:421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - tpm_counter_value
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_COUNTER_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 405
    functionDepth: 4
    functionLinenumber: 405
    functionLinenumberEnd: 424
    functionName: TPM_CounterValue_StorePublic
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 5
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CounterValue_StorePublic(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t\tconst
      TPM_COUNTER_VALUE *tpm_counter_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_counter.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst_tpm_counter_value
    - src_tpm_counter_value
    argTypes:
    - TPM_COUNTER_VALUE*
    - TPM_COUNTER_VALUE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: TPM_CounterValue_CopyPublic
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 2
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void TPM_CounterValue_CopyPublic(TPM_COUNTER_VALUE *dst_tpm_counter_value,\n\t\t\t\t
      TPM_COUNTER_VALUE *src_tpm_counter_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:451,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_counter.c:453,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_counter.c:454,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_counter.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - tpm_counter_value
    - countID
    - label
    - counter
    - authData
    argTypes:
    - TPM_COUNTER_VALUE*
    - TPM_COUNT_ID
    - BYTE*
    - TPM_ACTUAL_COUNT
    - TPM_SECRET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 464
    functionName: TPM_CounterValue_Set
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 0
    functionsReached:
    - TPM_Secret_Copy
    - TPM_SHA1
    - printf
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CounterValue_Set(TPM_COUNTER_VALUE *tpm_counter_value,\n\t\t\t\tTPM_COUNT_ID
      countID,\n\t\t\t\tBYTE *label,\n\t\t\t\tTPM_ACTUAL_COUNT counter,\n\t\t\t\tTPM_SECRET
      authData)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:476,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:480,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_counter.c:485,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_counter.c:486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - tpm_counter_value
    - countID
    argTypes:
    - TPM_COUNTER_VALUE*
    - TPM_COUNT_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 490
    functionName: TPM_CounterValue_Release
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 0
    functionsReached:
    - TPM_Secret_Init
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CounterValue_Release(TPM_COUNTER_VALUE *tpm_counter_value,\n\t\t\t\t
      \   TPM_COUNT_ID countID)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:548,1
    - Dst: TPM_Authdata_Load
      Src: /src/libtpms/src/tpm12/tpm_counter.c:556,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_counter.c:560,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_counter.c:563,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_counter.c:569,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_counter.c:581,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_counter.c:585,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_counter.c:589,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:598,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_counter.c:613,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_counter.c:625,1
    - Dst: TPM_AuthSessionData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_counter.c:640,1
    - Dst: TPM_Counters_GetNewHandle
      Src: /src/libtpms/src/tpm12/tpm_counter.c:653,1
    - Dst: TPM_Counters_GetNextCount
      Src: /src/libtpms/src/tpm12/tpm_counter.c:660,1
    - Dst: TPM_CounterValue_Set
      Src: /src/libtpms/src/tpm12/tpm_counter.c:664,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_counter.c:673,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:681,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_counter.c:683,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_counter.c:691,1
    - Dst: TPM_CounterValue_StorePublic
      Src: /src/libtpms/src/tpm12/tpm_counter.c:695,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_counter.c:701,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_counter.c:712,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_counter.c:721,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_counter.c:728,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_counter.c:735,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 83
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 507
    functionDepth: 5
    functionLinenumber: 507
    functionLinenumberEnd: 741
    functionName: TPM_Process_CreateCounter
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_CheckRequestTag1
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_Loadn
    - TPM_AuthSessionData_Decrypt
    - TPM_AuthSessions_GetData
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_CounterValue_StorePublic
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Counters_GetNewHandle
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Authdata_Load
    - TPM_Counters_GetNextCount
    - TPM_PrintFour
    - printf
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_CounterValue_Set
    - TPM_AuthParams_Get
    - TPM_CheckState
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_CreateCounter(tpm_state_t *tpm_state,\n\t\t\t\t
      \    TPM_STORE_BUFFER *response,\n\t\t\t\t     TPM_TAG tag,\n\t\t\t\t     uint32_t
      paramSize,\n\t\t\t\t     TPM_COMMAND_CODE ordinal,\n\t\t\t\t     unsigned char
      *command,\n\t\t\t\t     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:793,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_counter.c:801,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:804,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_counter.c:810,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_counter.c:822,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_counter.c:826,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_counter.c:830,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:839,1
    - Dst: TPM_Counters_IsValidId
      Src: /src/libtpms/src/tpm12/tpm_counter.c:857,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:865,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:868,1
    - Dst: TPM_Counters_GetCounterValue
      Src: /src/libtpms/src/tpm12/tpm_counter.c:879,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_counter.c:885,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_counter.c:898,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:912,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_counter.c:919,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:928,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_counter.c:930,1
    - Dst: TPM_CounterValue_StorePublic
      Src: /src/libtpms/src/tpm12/tpm_counter.c:938,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_counter.c:944,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_counter.c:955,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_counter.c:964,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_counter.c:971,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_counter.c:978,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 89
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 756
    functionDepth: 5
    functionLinenumber: 756
    functionLinenumberEnd: 984
    functionName: TPM_Process_IncrementCounter
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_AuthParams_Set
    - TPM_GetInParamDigest
    - TPM_CheckRequestTag1
    - TPM_CounterValue_StorePublic
    - TPM_Counters_GetCounterValue
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthParams_Get
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_Counters_IsValidId
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    - TPM_AuthSessions_GetData
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_IncrementCounter(tpm_state_t *tpm_state,\n\t\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\t\tTPM_TAG tag,\n\t\t\t\t\tuint32_t paramSize,\n\t\t\t\t\tTPM_COMMAND_CODE
      ordinal,\n\t\t\t\t\tunsigned char *command,\n\t\t\t\t\tTPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1019,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1027,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1033,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1045,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1049,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1053,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1063,1
    - Dst: TPM_Counters_IsValidId
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1064,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1069,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1071,1
    - Dst: TPM_CounterValue_StorePublic
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1079,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1086,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1097,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1104,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 993
    functionDepth: 5
    functionLinenumber: 993
    functionLinenumberEnd: 1110
    functionName: TPM_Process_ReadCounter
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 0
    functionsReached:
    - TPM_GetInParamDigest
    - TPM_CounterValue_StorePublic
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_Counters_IsValidId
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ReadCounter(tpm_state_t *tpm_state,\n\t\t\t\t
      \  TPM_STORE_BUFFER *response,\n\t\t\t\t   TPM_TAG tag,\n\t\t\t\t   uint32_t
      paramSize,\n\t\t\t\t   TPM_COMMAND_CODE ordinal,\n\t\t\t\t   unsigned char *command,\n\t\t\t\t
      \  TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1159,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1167,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1170,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1176,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1188,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1192,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1196,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1205,1
    - Dst: TPM_Counters_GetCounterValue
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1221,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1227,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1240,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1242,1
    - Dst: TPM_AuthSessions_TerminateEntity
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1256,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1265,1
    - Dst: TPM_CounterValue_Release
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1266,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1272,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1278,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1286,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1288,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1300,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1311,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1320,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1327,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1334,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 80
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1120
    functionDepth: 5
    functionLinenumber: 1120
    functionLinenumberEnd: 1340
    functionName: TPM_Process_ReleaseCounter
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_CheckRequestTag1
    - TPM_Secret_Copy
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateEntity
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_CounterValue_Release
    - printf
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Counters_GetCounterValue
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ReleaseCounter(tpm_state_t *tpm_state,\n\t\t\t\t
      \     TPM_STORE_BUFFER *response,\n\t\t\t\t      TPM_TAG tag,\n\t\t\t\t      uint32_t
      paramSize,\n\t\t\t\t      TPM_COMMAND_CODE ordinal,\n\t\t\t\t      unsigned
      char *command,\n\t\t\t\t      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1387,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1395,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1398,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1404,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1416,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1420,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1424,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1433,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1447,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1459,1
    - Dst: TPM_Counters_GetCounterValue
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1471,1
    - Dst: TPM_AuthSessions_TerminateEntity
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1477,1
    - Dst: TPM_CounterValue_Release
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1488,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1497,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1503,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1511,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1513,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1525,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1536,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1545,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1552,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_counter.c:1559,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 78
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1350
    functionDepth: 5
    functionLinenumber: 1350
    functionLinenumberEnd: 1565
    functionName: TPM_Process_ReleaseCounterOwner
    functionSourceFile: /src/libtpms/src/tpm12/tpm_counter.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_AuthParams_Set
    - TPM_GetInParamDigest
    - TPM_CheckRequestTag1
    - TPM_Counters_GetCounterValue
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateEntity
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthParams_Get
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_CounterValue_Release
    - TPM_ProcessAudit
    - TPM_AuthSessions_GetData
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ReleaseCounterOwner(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \  TPM_STORE_BUFFER *response,\n\t\t\t\t\t   TPM_TAG tag,\n\t\t\t\t\t   uint32_t
      paramSize,\n\t\t\t\t\t   TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t   unsigned char
      *command,\n\t\t\t\t\t   TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm12/tpm_platform.c:65,1
    - Dst: struct libtpms_callbacks*::tpm_io_getlocality
      Src: /src/libtpms/src/tpm12/tpm_platform.c:70,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_platform.c:79,1
    - Dst: TPM_LocalityModifier_CheckLegal
      Src: /src/libtpms/src/tpm12/tpm_platform.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - localityModifier
    - tpm_number
    argTypes:
    - TPM_MODIFIER_INDICATOR*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 83
    functionName: TPM_IO_GetLocality
    functionSourceFile: /src/libtpms/src/tpm12/tpm_platform.c
    functionUses: 2
    functionsReached:
    - TPMLIB_GetCallbacks
    - printf
    - TPM_LocalityModifier_CheckLegal
    - struct libtpms_callbacks*::tpm_io_getlocality
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_IO_GetLocality(TPM_MODIFIER_INDICATOR *localityModifier,\n\t\t\t
      \     uint32_t tpm_number)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm12/tpm_platform.c:101,1
    - Dst: struct libtpms_callbacks*::tpm_io_getphysicalpresence
      Src: /src/libtpms/src/tpm12/tpm_platform.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - physicalPresence
    - tpm_number
    argTypes:
    - TPM_BOOL*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 114
    functionName: TPM_IO_GetPhysicalPresence
    functionSourceFile: /src/libtpms/src/tpm12/tpm_platform.c
    functionUses: 0
    functionsReached:
    - struct libtpms_callbacks*::tpm_io_getphysicalpresence
    - TPMLIB_GetCallbacks
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_IO_GetPhysicalPresence(TPM_BOOL *physicalPresence,\n\t\t\t\t
      \     uint32_t tpm_number)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_platform.c:134,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_platform.c:135,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_platform.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - nvIndex
    - dataSize
    - data
    - tpm_number
    argTypes:
    - TPM_NV_INDEX
    - uint32_t
    - BYTE*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 145
    functionName: TPM_IO_GPIO_Write
    functionSourceFile: /src/libtpms/src/tpm12/tpm_platform.c
    functionUses: 2
    functionsReached:
    - printf
    - TPM_PrintAll
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_IO_GPIO_Write(TPM_NV_INDEX nvIndex,\n                             uint32_t
      dataSize,\n                             BYTE *data,\n\t\t\t     uint32_t tpm_number)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_platform.c:161,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_platform.c:162,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_platform.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - nvIndex
    - dataSize
    - data
    - tpm_number
    argTypes:
    - TPM_NV_INDEX
    - uint32_t
    - BYTE*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 172
    functionName: TPM_IO_GPIO_Read
    functionSourceFile: /src/libtpms/src/tpm12/tpm_platform.c
    functionUses: 2
    functionsReached:
    - printf
    - memset
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_IO_GPIO_Read(TPM_NV_INDEX nvIndex,\n                            uint32_t
      dataSize,\n                            BYTE *data,\n\t\t\t    uint32_t tpm_number)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:168,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_maint.c:169,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_maint.c:170,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_maint.c:171,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_maint.c:182,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_maint.c:188,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_maint.c:200,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_maint.c:204,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_maint.c:208,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:217,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:234,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_maint.c:240,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_maint.c:252,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:266,1
    - Dst: TPM_Key_Copy
      Src: /src/libtpms/src/tpm12/tpm_maint.c:274,1
    - Dst: TPM_StoreAsymkey_GetO1Size
      Src: /src/libtpms/src/tpm12/tpm_maint.c:293,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_maint.c:297,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_maint.c:300,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_maint.c:303,1
    - Dst: TPM_StoreAsymkey_StoreO1
      Src: /src/libtpms/src/tpm12/tpm_maint.c:306,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_maint.c:315,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_maint.c:321,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_maint.c:325,1
    - Dst: TPM_MGF1
      Src: /src/libtpms/src/tpm12/tpm_maint.c:332,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_maint.c:342,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_maint.c:344,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_maint.c:345,1
    - Dst: TPM_RSAPublicEncrypt_Pubkey
      Src: /src/libtpms/src/tpm12/tpm_maint.c:349,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_maint.c:353,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:357,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_maint.c:358,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_maint.c:363,1
    - Dst: TPM_Key_Store
      Src: /src/libtpms/src/tpm12/tpm_maint.c:368,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:375,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_maint.c:377,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_maint.c:385,1
    - Dst: TPM_Sbuffer_AppendAsSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_maint.c:389,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_maint.c:395,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_maint.c:406,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_maint.c:415,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_maint.c:422,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_maint.c:429,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_maint.c:434,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_maint.c:435,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_maint.c:436,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_maint.c:437,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_maint.c:438,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_maint.c:439,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 132
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 123
    functionDepth: 7
    functionLinenumber: 123
    functionLinenumberEnd: 441
    functionName: TPM_Process_CreateMaintenanceArchive
    functionSourceFile: /src/libtpms/src/tpm12/tpm_maint.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_CheckRequestTag1
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_Key_Store
    - TPM_SizedBuffer_Store
    - TPM_SizedBuffer_Set
    - TPM_RSAPublicEncrypt_Pubkey
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_Sbuffer_AppendAsSizedBuffer
    - TPM_SetCapability_Flag
    - TPM_GetInParamDigest
    - TPM_LoadBool
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_StoreAsymkey_StoreO1
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Random
    - TPM_SizedBuffer_Init
    - TPM_SizedBuffer_Delete
    - TPM_PrintFour
    - TPM_Malloc
    - TPM_Key_Delete
    - printf
    - TPM_StoreAsymkey_GetO1Size
    - TPM_ProcessAudit
    - TPM_Key_Init
    - TPM_AuthParams_Set
    - TPM_XOR
    - TPM_MGF1
    - TPM_Sbuffer_Delete
    - TPM_Key_Copy
    - TPM_AuthParams_Get
    - TPM_CheckState
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_CreateMaintenanceArchive(tpm_state_t *tpm_state,\n\t\t\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\t\t\tTPM_TAG tag,\n\t\t\t\t\t\tuint32_t paramSize,\n\t\t\t\t\t\tTPM_COMMAND_CODE
      ordinal,\n\t\t\t\t\t\tunsigned char *command,\n\t\t\t\t\t\tTPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:506,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_maint.c:507,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_maint.c:508,1
    - Dst: TPM_StoreAsymkey_Init
      Src: /src/libtpms/src/tpm12/tpm_maint.c:512,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_maint.c:513,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_maint.c:522,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_maint.c:528,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_maint.c:540,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_maint.c:544,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_maint.c:548,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:557,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_maint.c:572,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_maint.c:584,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:601,1
    - Dst: TPM_Key_Load
      Src: /src/libtpms/src/tpm12/tpm_maint.c:604,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:608,1
    - Dst: TPM_RSAPrivateDecryptMalloc
      Src: /src/libtpms/src/tpm12/tpm_maint.c:609,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_maint.c:617,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:618,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_maint.c:619,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_maint.c:623,1
    - Dst: TPM_MGF1
      Src: /src/libtpms/src/tpm12/tpm_maint.c:628,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_maint.c:632,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:634,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_maint.c:635,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_maint.c:636,1
    - Dst: TPM_StoreAsymkey_LoadO1
      Src: /src/libtpms/src/tpm12/tpm_maint.c:640,1
    - Dst: TPM_OwnerClearCommon
      Src: /src/libtpms/src/tpm12/tpm_maint.c:649,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_maint.c:658,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_maint.c:660,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_maint.c:662,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_maint.c:664,1
    - Dst: TPM_StoreAsymkey_Store
      Src: /src/libtpms/src/tpm12/tpm_maint.c:666,1
    - Dst: TPM_SizedBuffer_SetFromStore
      Src: /src/libtpms/src/tpm12/tpm_maint.c:670,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_maint.c:674,1
    - Dst: TPM_Key_Copy
      Src: /src/libtpms/src/tpm12/tpm_maint.c:677,1
    - Dst: TPM_Key_LoadStoreAsymKey
      Src: /src/libtpms/src/tpm12/tpm_maint.c:684,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:689,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_maint.c:690,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_maint.c:695,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:703,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_maint.c:705,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_maint.c:717,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_maint.c:728,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_maint.c:737,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_maint.c:744,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_maint.c:751,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_maint.c:756,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_maint.c:757,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_maint.c:758,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_maint.c:759,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_maint.c:760,1
    - Dst: TPM_StoreAsymkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_maint.c:761,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_maint.c:762,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 128
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 455
    functionDepth: 7
    functionLinenumber: 455
    functionLinenumberEnd: 764
    functionName: TPM_Process_LoadMaintenanceArchive
    functionSourceFile: /src/libtpms/src/tpm12/tpm_maint.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_CheckRequestTag1
    - TPM_StoreAsymkey_Init
    - TPM_Secret_Copy
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_RSAPrivateDecryptMalloc
    - TPM_Key_LoadStoreAsymKey
    - TPM_StoreAsymkey_Store
    - TPM_SizedBuffer_SetFromStore
    - TPM_Key_Load
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_SetCapability_Flag
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_SizedBuffer_Init
    - TPM_StoreAsymkey_Delete
    - TPM_SizedBuffer_Delete
    - TPM_PrintFour
    - TPM_Malloc
    - TPM_Key_Delete
    - printf
    - TPM_StoreAsymkey_LoadO1
    - TPM_ProcessAudit
    - TPM_Key_Init
    - TPM_AuthParams_Set
    - TPM_XOR
    - TPM_MGF1
    - TPM_OwnerClearCommon
    - TPM_Sbuffer_Delete
    - TPM_Key_Copy
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_SizedBuffer_Load
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_LoadMaintenanceArchive(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \     TPM_STORE_BUFFER *response,\n\t\t\t\t\t      TPM_TAG tag,\n\t\t\t\t\t
      \     uint32_t paramSize,\n\t\t\t\t\t      TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t
      \     unsigned char *command,\n\t\t\t\t\t      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:814,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_maint.c:824,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_maint.c:836,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_maint.c:840,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_maint.c:844,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:853,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_maint.c:867,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_maint.c:879,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:890,1
    - Dst: TPM_SetCapability_Flag
      Src: /src/libtpms/src/tpm12/tpm_maint.c:891,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_maint.c:895,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:904,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_maint.c:906,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_maint.c:918,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_maint.c:929,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_maint.c:938,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_maint.c:945,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_maint.c:952,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 779
    functionDepth: 5
    functionLinenumber: 779
    functionLinenumberEnd: 958
    functionName: TPM_Process_KillMaintenanceFeature
    functionSourceFile: /src/libtpms/src/tpm12/tpm_maint.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_SetCapability_Flag
    - TPM_GetInParamDigest
    - TPM_CheckRequestTag1
    - TPM_AuthParams_Set
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthParams_Get
    - TPM_CheckState
    - printf
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    - TPM_AuthSessions_GetData
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_KillMaintenanceFeature(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \     TPM_STORE_BUFFER *response,\n\t\t\t\t\t      TPM_TAG tag,\n\t\t\t\t\t
      \     uint32_t paramSize,\n\t\t\t\t\t      TPM_COMMAND_CODE ordinal,\n\t\t\t\t\t
      \     unsigned char *command,\n\t\t\t\t\t      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1017,1
    - Dst: TPM_Pubkey_Init
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1018,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1019,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1027,1
    - Dst: TPM_Pubkey_Load
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1031,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1037,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1049,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1053,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1057,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1068,1
    - Dst: TPM_KeyParms_CheckProperties
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1075,1
    - Dst: TPM_Pubkey_Copy
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1082,1
    - Dst: TPM_Pubkey_Store
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1089,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1092,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1094,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1103,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1111,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1113,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1121,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1127,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1138,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1145,1
    - Dst: TPM_Pubkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1150,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1151,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 984
    functionDepth: 8
    functionLinenumber: 984
    functionLinenumberEnd: 1153
    functionName: TPM_Process_LoadManuMaintPub
    functionSourceFile: /src/libtpms/src/tpm12/tpm_maint.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_KeyParms_CheckProperties
    - TPM_Sbuffer_Get
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Sbuffer_Init
    - TPM_GetInParamDigest
    - TPM_SHA1
    - TPM_Pubkey_Init
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_GetOutParamDigest
    - TPM_Pubkey_Load
    - TPM_Pubkey_Copy
    - TPM_CheckRequestTag0
    - printf
    - TPM_Pubkey_Store
    - TPM_Digest_Store
    - TPM_ProcessAudit
    - TPM_Sbuffer_Delete
    - TPM_Pubkey_Delete
    - TPM_Nonce_Load
    - TPM_CheckState
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_LoadManuMaintPub(tpm_state_t *tpm_state,\n\t\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\t\tTPM_TAG tag,\n\t\t\t\t\tuint32_t paramSize,\n\t\t\t\t\tTPM_COMMAND_CODE
      ordinal,\n\t\t\t\t\tunsigned char *command,\n\t\t\t\t\tTPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1199,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1200,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1208,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1214,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1226,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1230,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1234,1
    - Dst: TPM_Pubkey_Store
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1246,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1249,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1251,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1261,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1263,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1271,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1277,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1288,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1295,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_maint.c:1300,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1169
    functionDepth: 7
    functionLinenumber: 1169
    functionLinenumberEnd: 1302
    functionName: TPM_Process_ReadManuMaintPub
    functionSourceFile: /src/libtpms/src/tpm12/tpm_maint.c
    functionUses: 0
    functionsReached:
    - TPM_GetInParamDigest
    - TPM_SHA1
    - TPM_Sbuffer_Get
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Sbuffer_Delete
    - TPM_Nonce_Load
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_Pubkey_Store
    - TPM_Digest_Store
    - TPM_Sbuffer_Init
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ReadManuMaintPub(tpm_state_t *tpm_state,\n\t\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\t\tTPM_TAG tag,\n\t\t\t\t\tuint32_t paramSize,\n\t\t\t\t\tTPM_COMMAND_CODE
      ordinal,\n\t\t\t\t\tunsigned char *command,\n\t\t\t\t\tTPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_digest.c:53,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_digest.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tpm_digest
    argTypes:
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: TPM_Digest_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_digest.c
    functionUses: 37
    functionsReached:
    - printf
    - memset
    linkageType: ''
    returnType: void
    signature: void TPM_Digest_Init(TPM_DIGEST tpm_digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_digest.c:71,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_digest.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - tpm_digest
    - stream
    - stream_size
    argTypes:
    - TPM_DIGEST
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: TPM_Digest_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_digest.c
    functionUses: 29
    functionsReached:
    - printf
    - TPM_Loadn
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Digest_Load(TPM_DIGEST tpm_digest,\n\t\t\t   unsigned
      char **stream,\n\t\t\t   uint32_t *stream_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_digest.c:89,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_digest.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sbuffer
    - tpm_digest
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: TPM_Digest_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_digest.c
    functionUses: 39
    functionsReached:
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Digest_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t    const
      TPM_DIGEST tpm_digest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_digest.c:96,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_digest.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tpm_digest
    argTypes:
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: TPM_Digest_Set
    functionSourceFile: /src/libtpms/src/tpm12/tpm_digest.c
    functionUses: 2
    functionsReached:
    - printf
    - memset
    linkageType: ''
    returnType: void
    signature: void TPM_Digest_Set(TPM_DIGEST tpm_digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_digest.c:102,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_digest.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - destination
    - source
    argTypes:
    - TPM_DIGEST
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: TPM_Digest_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_digest.c
    functionUses: 31
    functionsReached:
    - printf
    - memcpy
    linkageType: ''
    returnType: void
    signature: void TPM_Digest_Copy(TPM_DIGEST destination, const TPM_DIGEST source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_digest.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - out
    - in1
    - in2
    argTypes:
    - TPM_DIGEST
    - TPM_DIGEST
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: TPM_Digest_XOR
    functionSourceFile: /src/libtpms/src/tpm12/tpm_digest.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_Digest_XOR(TPM_DIGEST out, const TPM_DIGEST in1, const TPM_DIGEST
      in2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_digest.c:125,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_digest.c:126,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_digest.c:128,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_digest.c:129,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_digest.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - expect
    - actual
    argTypes:
    - TPM_DIGEST
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 134
    functionName: TPM_Digest_Compare
    functionSourceFile: /src/libtpms/src/tpm12/tpm_digest.c
    functionUses: 10
    functionsReached:
    - memcmp
    - printf
    - TPM_PrintFour
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Digest_Compare(const TPM_DIGEST expect, const TPM_DIGEST
      actual)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_digest.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - isZero
    - tpm_digest
    argTypes:
    - TPM_BOOL*
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 147
    functionName: TPM_Digest_IsZero
    functionSourceFile: /src/libtpms/src/tpm12/tpm_digest.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_Digest_IsZero(TPM_BOOL *isZero, TPM_DIGEST tpm_digest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_digest.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - isMinusOne
    - tpm_digest
    argTypes:
    - TPM_BOOL*
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 161
    functionName: TPM_Digest_IsMinusOne
    functionSourceFile: /src/libtpms/src/tpm12/tpm_digest.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_Digest_IsMinusOne(TPM_BOOL *isMinusOne, TPM_DIGEST tpm_digest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:72,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_global.c:77,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:82,1
    - Dst: TPM_PermanentFlags_Init
      Src: /src/libtpms/src/tpm12/tpm_global.c:83,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:85,1
    - Dst: TPM_StclearFlags_Init
      Src: /src/libtpms/src/tpm12/tpm_global.c:86,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:88,1
    - Dst: TPM_StanyFlags_Init
      Src: /src/libtpms/src/tpm12/tpm_global.c:89,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:91,1
    - Dst: TPM_PermanentData_Init
      Src: /src/libtpms/src/tpm12/tpm_global.c:92,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:96,1
    - Dst: TPM_StclearData_Init
      Src: /src/libtpms/src/tpm12/tpm_global.c:97,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:101,1
    - Dst: TPM_StanyData_Init
      Src: /src/libtpms/src/tpm12/tpm_global.c:102,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:106,1
    - Dst: TPM_KeyHandleEntries_Init
      Src: /src/libtpms/src/tpm12/tpm_global.c:107,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:113,1
    - Dst: TPM_NVIndexEntries_Init
      Src: /src/libtpms/src/tpm12/tpm_global.c:114,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:119,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 127
    functionName: TPM_Global_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_global.c
    functionUses: 2
    functionsReached:
    - TPM_KeyHandleEntries_Init
    - TPM_PermanentData_Init
    - TPM_StanyData_Init
    - TPM_StclearData_Init
    - memset
    - printf
    - TPM_PermanentFlags_Init
    - TPM_NVIndexEntries_Init
    - TPM_StanyFlags_Init
    - TPM_StclearFlags_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Global_Init(tpm_state_t *tpm_state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:144,1
    - Dst: TPM_PermanentAll_NVLoad
      Src: /src/libtpms/src/tpm12/tpm_global.c:147,1
    - Dst: TPM_VolatileAll_NVLoad
      Src: /src/libtpms/src/tpm12/tpm_global.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 153
    functionName: TPM_Global_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_global.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVLoad
    - TPM_VolatileAll_NVLoad
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Global_Load(tpm_state_t *tpm_state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:164,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_global.c:166,1
    - Dst: TPM_VolatileAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_global.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 172
    functionName: TPM_Global_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_global.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - printf
    - TPM_VolatileAll_NVStore
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Global_Store(tpm_state_t *tpm_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:186,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:191,1
    - Dst: TPM_PermanentData_Delete
      Src: /src/libtpms/src/tpm12/tpm_global.c:192,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:193,1
    - Dst: TPM_StclearData_Delete
      Src: /src/libtpms/src/tpm12/tpm_global.c:194,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:197,1
    - Dst: TPM_StanyData_Delete
      Src: /src/libtpms/src/tpm12/tpm_global.c:198,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:199,1
    - Dst: TPM_KeyHandleEntries_Delete
      Src: /src/libtpms/src/tpm12/tpm_global.c:200,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:201,1
    - Dst: TPM_SHA1Delete
      Src: /src/libtpms/src/tpm12/tpm_global.c:202,1
    - Dst: TPM_SHA1Delete
      Src: /src/libtpms/src/tpm12/tpm_global.c:203,1
    - Dst: TPM_NVIndexEntries_Delete
      Src: /src/libtpms/src/tpm12/tpm_global.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 184
    functionDepth: 6
    functionLinenumber: 184
    functionLinenumberEnd: 207
    functionName: TPM_Global_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_global.c
    functionUses: 3
    functionsReached:
    - TPM_StanyData_Delete
    - TPM_NVIndexEntries_Delete
    - TPM_StclearData_Delete
    - TPM_PermanentData_Delete
    - printf
    - TPM_SHA1Delete
    - TPM_KeyHandleEntries_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_Global_Delete(tpm_state_t *tpm_state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:226,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:229,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:238,1
    - Dst: TPM_IO_GetPhysicalPresence
      Src: /src/libtpms/src/tpm12/tpm_global.c:243,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:244,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_global.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - physicalPresence
    - tpm_state
    argTypes:
    - TPM_BOOL*
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 251
    functionName: TPM_Global_GetPhysicalPresence
    functionSourceFile: /src/libtpms/src/tpm12/tpm_global.c
    functionUses: 15
    functionsReached:
    - TPM_IO_GetPhysicalPresence
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Global_GetPhysicalPresence(TPM_BOOL *physicalPresence,\n
      \                                         const tpm_state_t *tpm_state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:72,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpm_ek_blob
    argTypes:
    - TPM_EK_BLOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: TPM_EKBlob_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_EKBlob_Init(TPM_EK_BLOB *tpm_ek_blob)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:94,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_identity.c:97,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_identity.c:101,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tpm_ek_blob
    - stream
    - stream_size
    argTypes:
    - TPM_EK_BLOB*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 108
    functionName: TPM_EKBlob_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - printf
    - TPM_SizedBuffer_Load
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_EKBlob_Load(TPM_EK_BLOB *tpm_ek_blob,\n\t\t\t   unsigned
      char **stream,\n\t\t\t   uint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:122,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_identity.c:124,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_identity.c:127,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_identity.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - tpm_ek_blob
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_EK_BLOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 133
    functionName: TPM_EKBlob_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Sbuffer_Append16
    - TPM_SizedBuffer_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_EKBlob_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t    const
      TPM_EK_BLOB *tpm_ek_blob)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:147,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_identity.c:149,1
    - Dst: TPM_EKBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_ek_blob
    argTypes:
    - TPM_EK_BLOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: TPM_EKBlob_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Delete
    - TPM_EKBlob_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_EKBlob_Delete(TPM_EK_BLOB *tpm_ek_blob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:168,1
    - Dst: TPM_SymmetricKey_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:169,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:170,1
    - Dst: TPM_PCRInfoShort_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tpm_ek_blob_activate
    argTypes:
    - TPM_EK_BLOB_ACTIVATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: TPM_EKBlobActivate_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_SymmetricKey_Init
    - printf
    - TPM_Digest_Init
    - TPM_PCRInfoShort_Init
    linkageType: ''
    returnType: void
    signature: void TPM_EKBlobActivate_Init(TPM_EK_BLOB_ACTIVATE *tpm_ek_blob_activate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:191,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_identity.c:194,1
    - Dst: TPM_SymmetricKey_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:198,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:202,1
    - Dst: TPM_PCRInfoShort_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - tpm_ek_blob_activate
    - stream
    - stream_size
    argTypes:
    - TPM_EK_BLOB_ACTIVATE*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 209
    functionName: TPM_EKBlobActivate_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Load
    - TPM_SymmetricKey_Load
    - TPM_CheckTag
    - printf
    - TPM_PCRInfoShort_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_EKBlobActivate_Load(TPM_EK_BLOB_ACTIVATE *tpm_ek_blob_activate,\n\t\t\t\t
      \  unsigned char **stream,\n\t\t\t\t   uint32_t *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:223,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_identity.c:226,1
    - Dst: TPM_SymmetricKey_Store
      Src: /src/libtpms/src/tpm12/tpm_identity.c:230,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_identity.c:234,1
    - Dst: TPM_PCRInfoShort_Store
      Src: /src/libtpms/src/tpm12/tpm_identity.c:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_ek_blob_activate
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_EK_BLOB_ACTIVATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 241
    functionName: TPM_EKBlobActivate_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append16
    - printf
    - TPM_SymmetricKey_Store
    - TPM_PCRInfoShort_Store
    - TPM_Digest_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_EKBlobActivate_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \   const TPM_EK_BLOB_ACTIVATE *tpm_ek_blob_activate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:255,1
    - Dst: TPM_SymmetricKey_Delete
      Src: /src/libtpms/src/tpm12/tpm_identity.c:257,1
    - Dst: TPM_PCRInfoShort_Delete
      Src: /src/libtpms/src/tpm12/tpm_identity.c:258,1
    - Dst: TPM_EKBlobActivate_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tpm_ek_blob_activate
    argTypes:
    - TPM_EK_BLOB_ACTIVATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 262
    functionName: TPM_EKBlobActivate_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_SymmetricKey_Delete
    - TPM_EKBlobActivate_Init
    - TPM_PCRInfoShort_Delete
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_EKBlobActivate_Delete(TPM_EK_BLOB_ACTIVATE *tpm_ek_blob_activate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:278,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tpm_ek_blob_auth
    argTypes:
    - TPM_EK_BLOB_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: TPM_EKBlobAuth_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_Secret_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_EKBlobAuth_Init(TPM_EK_BLOB_AUTH *tpm_ek_blob_auth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:299,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_identity.c:302,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tpm_ek_blob_auth
    - stream
    - stream_size
    argTypes:
    - TPM_EK_BLOB_AUTH*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 309
    functionName: TPM_EKBlobAuth_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_Secret_Load
    - printf
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_EKBlobAuth_Load(TPM_EK_BLOB_AUTH *tpm_ek_blob_auth,\n\t\t\t
      \      unsigned char **stream,\n\t\t\t       uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:322,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_identity.c:324,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_identity.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sbuffer
    - tpm_ek_blob_auth
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_EK_BLOB_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 317
    functionDepth: 4
    functionLinenumber: 317
    functionLinenumberEnd: 330
    functionName: TPM_EKBlobAuth_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Sbuffer_Append16
    - TPM_Secret_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_EKBlobAuth_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\tconst
      TPM_EK_BLOB_AUTH *tpm_ek_blob_auth)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:343,1
    - Dst: TPM_EKBlobAuth_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_ek_blob_auth
    argTypes:
    - TPM_EK_BLOB_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: TPM_EKBlobAuth_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_EKBlobAuth_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_EKBlobAuth_Delete(TPM_EK_BLOB_AUTH *tpm_ek_blob_auth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:364,1
    - Dst: TPM_StructVer_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:365,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:367,1
    - Dst: TPM_Pubkey_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tpm_identity_contents
    argTypes:
    - TPM_IDENTITY_CONTENTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 370
    functionName: TPM_IdentityContents_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Init
    - TPM_Pubkey_Init
    - printf
    - TPM_StructVer_Init
    linkageType: ''
    returnType: void
    signature: void TPM_IdentityContents_Init(TPM_IDENTITY_CONTENTS *tpm_identity_contents)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:390,1
    - Dst: TPM_StructVer_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:393,1
    - Dst: TPM_StructVer_CheckVer
      Src: /src/libtpms/src/tpm12/tpm_identity.c:397,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_identity.c:401,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:405,1
    - Dst: TPM_Pubkey_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:409,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - tpm_identity_contents
    - stream
    - stream_size
    argTypes:
    - TPM_IDENTITY_CONTENTS*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 384
    functionDepth: 5
    functionLinenumber: 384
    functionLinenumberEnd: 412
    functionName: TPM_IdentityContents_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_StructVer_Load
    - TPM_Digest_Load
    - printf
    - TPM_Load32
    - TPM_StructVer_CheckVer
    - TPM_Pubkey_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_IdentityContents_Load(TPM_IDENTITY_CONTENTS *tpm_identity_contents,\n\t\t\t\t
      \    unsigned char **stream,\n\t\t\t\t     uint32_t *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:426,1
    - Dst: TPM_StructVer_Store
      Src: /src/libtpms/src/tpm12/tpm_identity.c:429,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_identity.c:433,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_identity.c:437,1
    - Dst: TPM_Pubkey_Store
      Src: /src/libtpms/src/tpm12/tpm_identity.c:441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_identity_contents
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_IDENTITY_CONTENTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 421
    functionDepth: 7
    functionLinenumber: 421
    functionLinenumberEnd: 444
    functionName: TPM_IdentityContents_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_StructVer_Store
    - printf
    - TPM_Pubkey_Store
    - TPM_Digest_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_IdentityContents_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \     TPM_IDENTITY_CONTENTS *tpm_identity_contents)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:457,1
    - Dst: TPM_Pubkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_identity.c:459,1
    - Dst: TPM_IdentityContents_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_identity_contents
    argTypes:
    - TPM_IDENTITY_CONTENTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 455
    functionDepth: 4
    functionLinenumber: 455
    functionLinenumberEnd: 463
    functionName: TPM_IdentityContents_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_IdentityContents_Init
    - printf
    - TPM_Pubkey_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_IdentityContents_Delete(TPM_IDENTITY_CONTENTS *tpm_identity_contents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:478,1
    - Dst: TPM_SymmetricKey_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:479,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpm_asym_ca_contents
    argTypes:
    - TPM_ASYM_CA_CONTENTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 482
    functionName: TPM_AsymCaContents_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_SymmetricKey_Init
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_AsymCaContents_Init(TPM_ASYM_CA_CONTENTS *tpm_asym_ca_contents)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:500,1
    - Dst: TPM_SymmetricKey_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:502,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tpm_asym_ca_contents
    - stream
    - stream_size
    argTypes:
    - TPM_ASYM_CA_CONTENTS*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 508
    functionName: TPM_AsymCaContents_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Load
    - TPM_SymmetricKey_Load
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AsymCaContents_Load(TPM_ASYM_CA_CONTENTS *tpm_asym_ca_contents,\n\t\t\t\t
      \  unsigned char **stream,\n\t\t\t\t   uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:522,1
    - Dst: TPM_SymmetricKey_Store
      Src: /src/libtpms/src/tpm12/tpm_identity.c:524,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_identity.c:527,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sbuffer
    - tpm_asym_ca_contents
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_ASYM_CA_CONTENTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 517
    functionDepth: 4
    functionLinenumber: 517
    functionLinenumberEnd: 530
    functionName: TPM_AsymCaContents_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_SymmetricKey_Store
    - TPM_Digest_Store
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AsymCaContents_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \   const TPM_ASYM_CA_CONTENTS *tpm_asym_ca_contents)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:544,1
    - Dst: TPM_SymmetricKey_Delete
      Src: /src/libtpms/src/tpm12/tpm_identity.c:546,1
    - Dst: TPM_AsymCaContents_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_asym_ca_contents
    argTypes:
    - TPM_ASYM_CA_CONTENTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 550
    functionName: TPM_AsymCaContents_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_SymmetricKey_Delete
    - printf
    - TPM_AsymCaContents_Init
    linkageType: ''
    returnType: void
    signature: void TPM_AsymCaContents_Delete(TPM_ASYM_CA_CONTENTS *tpm_asym_ca_contents)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:645,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:646,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:647,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:648,1
    - Dst: TPM_IdentityContents_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:649,1
    - Dst: TPM_Authdata_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:657,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:661,1
    - Dst: TPM_Key_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:665,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_identity.c:671,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_identity.c:683,1
    - Dst: TPM_CheckRequestTag21
      Src: /src/libtpms/src/tpm12/tpm_identity.c:687,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_identity.c:691,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:697,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_identity.c:701,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:709,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:713,1
    - Dst: TPM_Key_CheckProperties
      Src: /src/libtpms/src/tpm12/tpm_identity.c:736,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:738,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_identity.c:744,1
    - Dst: TPM_Auth2data_Check
      Src: /src/libtpms/src/tpm12/tpm_identity.c:757,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_identity.c:770,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_identity.c:786,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:798,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:806,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:808,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:818,1
    - Dst: TPM_AuthSessionData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_identity.c:826,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:861,1
    - Dst: TPM_Key_GenerateRSA
      Src: /src/libtpms/src/tpm12/tpm_identity.c:862,1
    - Dst: TPM_Key_GetStoreAsymkey
      Src: /src/libtpms/src/tpm12/tpm_identity.c:878,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_identity.c:882,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_identity.c:886,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:892,1
    - Dst: TPM_Key_GenerateEncData
      Src: /src/libtpms/src/tpm12/tpm_identity.c:893,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_identity.c:898,1
    - Dst: TPM_Pubkey_Set
      Src: /src/libtpms/src/tpm12/tpm_identity.c:899,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_identity.c:906,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:912,1
    - Dst: TPM_RSASignToSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_identity.c:913,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_identity.c:923,1
    - Dst: TPM_Key_GetPublicKey
      Src: /src/libtpms/src/tpm12/tpm_identity.c:926,1
    - Dst: TPM_Key_GetExponent
      Src: /src/libtpms/src/tpm12/tpm_identity.c:929,1
    - Dst: TPM_RSAPublicEncryptRaw
      Src: /src/libtpms/src/tpm12/tpm_identity.c:932,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_identity.c:941,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:949,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_identity.c:951,1
    - Dst: TPM_Key_Store
      Src: /src/libtpms/src/tpm12/tpm_identity.c:959,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_identity.c:963,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_identity.c:969,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_identity.c:980,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_identity.c:989,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_identity.c:998,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1005,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1012,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1019,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1024,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1025,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1026,1
    - Dst: TPM_IdentityContents_Delete
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1027,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 167
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 588
    functionDepth: 7
    functionLinenumber: 588
    functionLinenumberEnd: 1029
    functionName: TPM_Process_MakeIdentity
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_Pubkey_Set
    - TPM_IdentityContents_Delete
    - TPM_Secret_Copy
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_Key_GetStoreAsymkey
    - TPM_Key_Store
    - TPM_Key_GetExponent
    - TPM_SizedBuffer_Store
    - TPM_Key_CheckProperties
    - TPM_AuthSessionData_Decrypt
    - TPM_RSAPublicEncryptRaw
    - TPM_Key_Load
    - TPM_Auth2data_Check
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Key_GetPublicKey
    - TPM_IdentityContents_Init
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_Digest_Copy
    - TPM_GetOutParamDigest
    - TPM_Authdata_Load
    - TPM_SizedBuffer_Init
    - TPM_CheckRequestTag21
    - TPM_SizedBuffer_Delete
    - TPM_Malloc
    - TPM_Key_Delete
    - printf
    - TPM_ProcessAudit
    - TPM_Key_Init
    - TPM_AuthParams_Set
    - TPM_Digest_Load
    - TPM_RSASignToSizedBuffer
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Key_GenerateRSA
    - TPM_Key_GenerateEncData
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_MakeIdentity(tpm_state_t *tpm_state,\n\t\t\t\t
      \   TPM_STORE_BUFFER *response,\n\t\t\t\t    TPM_TAG tag,\n\t\t\t\t    uint32_t
      paramSize,\n\t\t\t\t    TPM_COMMAND_CODE ordinal,\n\t\t\t\t    unsigned char
      *command,\n\t\t\t\t    TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1108,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1109,1
    - Dst: TPM_SymmetricKey_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1110,1
    - Dst: TPM_AsymCaContents_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1111,1
    - Dst: TPM_EKBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1112,1
    - Dst: TPM_EKBlobActivate_Init
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1113,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1119,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1125,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1131,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1143,1
    - Dst: TPM_CheckRequestTag21
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1147,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1151,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1157,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1161,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1169,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1173,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1190,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1203,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1216,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1223,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1227,1
    - Dst: TPM_Auth2data_Check
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1240,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1253,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1260,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1262,1
    - Dst: TPM_Key_GeneratePubkeyDigest
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1269,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1273,1
    - Dst: TPM_RSAPrivateDecryptMalloc
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1274,1
    - Dst: ntohs
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1285,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1289,1
    - Dst: TPM_EKBlob_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1291,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1298,1
    - Dst: TPM_AsymCaContents_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1300,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1307,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1309,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1324,1
    - Dst: TPM_EKBlobActivate_Load
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1333,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1337,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1339,1
    - Dst: TPM_PCRInfoShort_CheckDigest
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1353,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1368,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1370,1
    - Dst: TPM_SymmetricKey_Store
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1378,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1384,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1395,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1404,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1413,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1420,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1427,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1434,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1441,1
    - Dst: TPM_SymmetricKey_Delete
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1442,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1443,1
    - Dst: TPM_AsymCaContents_Delete
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1444,1
    - Dst: TPM_EKBlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1445,1
    - Dst: TPM_EKBlobActivate_Delete
      Src: /src/libtpms/src/tpm12/tpm_identity.c:1446,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 173
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1047
    functionDepth: 5
    functionLinenumber: 1047
    functionLinenumberEnd: 1448
    functionName: TPM_Process_ActivateIdentity
    functionSourceFile: /src/libtpms/src/tpm12/tpm_identity.c
    functionUses: 0
    functionsReached:
    - ntohs
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_EKBlob_Init
    - TPM_AuthSessions_TerminateHandle
    - TPM_RSAPrivateDecryptMalloc
    - TPM_Auth2data_Check
    - TPM_AuthSessions_GetData
    - TPM_AsymCaContents_Load
    - TPM_EKBlobActivate_Delete
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_Key_GeneratePubkeyDigest
    - TPM_Digest_Compare
    - TPM_SizedBuffer_Init
    - TPM_EKBlobActivate_Load
    - TPM_CheckRequestTag21
    - TPM_SizedBuffer_Delete
    - TPM_EKBlobActivate_Init
    - printf
    - TPM_SymmetricKey_Store
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_EKBlob_Delete
    - TPM_AsymCaContents_Init
    - TPM_EKBlob_Load
    - TPM_SymmetricKey_Delete
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_SymmetricKey_Init
    - TPM_PCRInfoShort_CheckDigest
    - free
    - TPM_AsymCaContents_Delete
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_ActivateIdentity(tpm_state_t *tpm_state,\n\t\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\t\tTPM_TAG tag,\n\t\t\t\t\tuint32_t paramSize,\n\t\t\t\t\tTPM_COMMAND_CODE
      ordinal,\n\t\t\t\t\tunsigned char *command,\n\t\t\t\t\tTPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:81,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:83,1
    - Dst: TPM_StclearData_Load
      Src: /src/libtpms/src/tpm12/tpm_startup.c:94,1
    - Dst: TPM_StclearFlags_Load
      Src: /src/libtpms/src/tpm12/tpm_startup.c:99,1
    - Dst: TPM_KeyHandleEntries_Load
      Src: /src/libtpms/src/tpm12/tpm_startup.c:107,1
    - Dst: TPM_NVIndexEntries_LoadVolatile
      Src: /src/libtpms/src/tpm12/tpm_startup.c:114,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:120,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:127,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_startup.c:128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - tpm_state
    - stream
    - stream_size
    argTypes:
    - tpm_state_t*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 73
    functionDepth: 6
    functionLinenumber: 73
    functionLinenumberEnd: 137
    functionName: TPM_SaveState_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 1
    functionsReached:
    - TPM_StclearFlags_Load
    - TPM_StclearData_Load
    - TPM_NVIndexEntries_LoadVolatile
    - TPM_KeyHandleEntries_Load
    - printf
    - TPM_SHA1_Check
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SaveState_Load(tpm_state_t *tpm_state,\n\t\t\t      unsigned
      char **stream,\n\t\t\t      uint32_t *stream_size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:153,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:155,1
    - Dst: TPM_StclearData_Store
      Src: /src/libtpms/src/tpm12/tpm_startup.c:171,1
    - Dst: TPM_StclearFlags_Store
      Src: /src/libtpms/src/tpm12/tpm_startup.c:176,1
    - Dst: TPM_KeyHandleEntries_Store
      Src: /src/libtpms/src/tpm12/tpm_startup.c:186,1
    - Dst: TPM_NVIndexEntries_StoreVolatile
      Src: /src/libtpms/src/tpm12/tpm_startup.c:193,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_startup.c:198,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_startup.c:200,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:206,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_startup.c:207,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - sbuffer
    - tpm_state
    argTypes:
    - TPM_STORE_BUFFER*
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 145
    functionDepth: 9
    functionLinenumber: 145
    functionLinenumberEnd: 210
    functionName: TPM_SaveState_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 1
    functionsReached:
    - TPM_SHA1
    - TPM_Sbuffer_Get
    - TPM_KeyHandleEntries_Store
    - TPM_StclearFlags_Store
    - printf
    - TPM_StclearData_Store
    - TPM_NVIndexEntries_StoreVolatile
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SaveState_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t
      \      tpm_state_t *tpm_state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - save
    - tpm_key_handle_entry
    argTypes:
    - TPM_BOOL*
    - TPM_KEY_HANDLE_ENTRY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 238
    functionName: TPM_SaveState_IsSaveKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_SaveState_IsSaveKey(TPM_BOOL *save, \n\t\t\t     TPM_KEY_HANDLE_ENTRY
      *tpm_key_handle_entry)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:254,1
    - Dst: TPM_NVRAM_LoadData
      Src: /src/libtpms/src/tpm12/tpm_startup.c:257,1
    - Dst: TPM_SaveState_Load
      Src: /src/libtpms/src/tpm12/tpm_startup.c:265,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:267,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_startup.c:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 247
    functionDepth: 7
    functionLinenumber: 247
    functionLinenumberEnd: 273
    functionName: TPM_SaveState_NVLoad
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 1
    functionsReached:
    - TPM_NVRAM_LoadData
    - free
    - printf
    - TPM_SaveState_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SaveState_NVLoad(tpm_state_t *tpm_state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:286,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_startup.c:287,1
    - Dst: TPM_SaveState_Store
      Src: /src/libtpms/src/tpm12/tpm_startup.c:290,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_startup.c:292,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:296,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:298,1
    - Dst: TPM_NVRAM_StoreData
      Src: /src/libtpms/src/tpm12/tpm_startup.c:305,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_startup.c:311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 279
    functionDepth: 10
    functionLinenumber: 279
    functionLinenumberEnd: 313
    functionName: TPM_SaveState_NVStore
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 0
    functionsReached:
    - TPM_NVRAM_StoreData
    - TPM_SaveState_Store
    - TPM_Sbuffer_Get
    - TPM_Sbuffer_Delete
    - printf
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SaveState_NVStore(tpm_state_t *tpm_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:326,1
    - Dst: TPM_NVRAM_DeleteName
      Src: /src/libtpms/src/tpm12/tpm_startup.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tpm_state
    - mustExist
    argTypes:
    - tpm_state_t*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 335
    functionName: TPM_SaveState_NVDelete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_NVRAM_DeleteName
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SaveState_NVDelete(tpm_state_t *tpm_state,\n\t\t\t\t
      \ TPM_BOOL mustExist)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:356,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_startup.c:361,1
    - Dst: TPM_Parameters_Load
      Src: /src/libtpms/src/tpm12/tpm_startup.c:365,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_startup.c:369,1
    - Dst: TPM_StclearFlags_Load
      Src: /src/libtpms/src/tpm12/tpm_startup.c:373,1
    - Dst: TPM_StanyFlags_Load
      Src: /src/libtpms/src/tpm12/tpm_startup.c:377,1
    - Dst: TPM_StclearData_Load
      Src: /src/libtpms/src/tpm12/tpm_startup.c:386,1
    - Dst: TPM_StanyData_Load
      Src: /src/libtpms/src/tpm12/tpm_startup.c:391,1
    - Dst: TPM_KeyHandleEntries_Load
      Src: /src/libtpms/src/tpm12/tpm_startup.c:395,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:399,1
    - Dst: TPM_Sha1Context_Load
      Src: /src/libtpms/src/tpm12/tpm_startup.c:400,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:404,1
    - Dst: TPM_Sha1Context_Load
      Src: /src/libtpms/src/tpm12/tpm_startup.c:405,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_startup.c:409,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_startup.c:413,1
    - Dst: TPM_NVIndexEntries_LoadVolatile
      Src: /src/libtpms/src/tpm12/tpm_startup.c:417,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:423,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:430,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_startup.c:431,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 3
    argNames:
    - tpm_state
    - stream
    - stream_size
    argTypes:
    - tpm_state_t*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 346
    functionDepth: 6
    functionLinenumber: 346
    functionLinenumberEnd: 440
    functionName: TPM_VolatileAll_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 1
    functionsReached:
    - TPM_StclearFlags_Load
    - TPM_CheckTag
    - TPM_StanyData_Load
    - TPM_StclearData_Load
    - TPM_Sha1Context_Load
    - TPM_Parameters_Load
    - printf
    - TPM_KeyHandleEntries_Load
    - TPM_Load32
    - TPM_NVIndexEntries_LoadVolatile
    - TPM_SHA1_Check
    - TPM_StanyFlags_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_VolatileAll_Load(tpm_state_t *tpm_state,\n\t\t\t\tunsigned
      char **stream,\n\t\t\t\tuint32_t *stream_size)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:458,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:461,1
    - Dst: TPM_Parameters_Store
      Src: /src/libtpms/src/tpm12/tpm_startup.c:465,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:469,1
    - Dst: TPM_StclearFlags_Store
      Src: /src/libtpms/src/tpm12/tpm_startup.c:473,1
    - Dst: TPM_StanyFlags_Store
      Src: /src/libtpms/src/tpm12/tpm_startup.c:477,1
    - Dst: TPM_StclearData_Store
      Src: /src/libtpms/src/tpm12/tpm_startup.c:486,1
    - Dst: TPM_StanyData_Store
      Src: /src/libtpms/src/tpm12/tpm_startup.c:491,1
    - Dst: TPM_KeyHandleEntries_Store
      Src: /src/libtpms/src/tpm12/tpm_startup.c:495,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:499,1
    - Dst: TPM_Sha1Context_Store
      Src: /src/libtpms/src/tpm12/tpm_startup.c:500,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:504,1
    - Dst: TPM_Sha1Context_Store
      Src: /src/libtpms/src/tpm12/tpm_startup.c:505,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_startup.c:509,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_startup.c:513,1
    - Dst: TPM_NVIndexEntries_StoreVolatile
      Src: /src/libtpms/src/tpm12/tpm_startup.c:517,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_startup.c:522,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_startup.c:524,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:530,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_startup.c:531,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 2
    argNames:
    - sbuffer
    - tpm_state
    argTypes:
    - TPM_STORE_BUFFER*
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 448
    functionDepth: 9
    functionLinenumber: 448
    functionLinenumberEnd: 534
    functionName: TPM_VolatileAll_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 2
    functionsReached:
    - TPM_Sha1Context_Store
    - TPM_Parameters_Store
    - TPM_Sbuffer_Append32
    - TPM_SHA1
    - TPM_Sbuffer_Append16
    - TPM_Sbuffer_Get
    - TPM_StanyFlags_Store
    - TPM_KeyHandleEntries_Store
    - TPM_StclearFlags_Store
    - printf
    - TPM_StanyData_Store
    - TPM_StclearData_Store
    - TPM_NVIndexEntries_StoreVolatile
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_VolatileAll_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      tpm_state_t *tpm_state)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:553,1
    - Dst: TPM_NVRAM_LoadData
      Src: /src/libtpms/src/tpm12/tpm_startup.c:556,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:566,1
    - Dst: TPM_VolatileAll_Load
      Src: /src/libtpms/src/tpm12/tpm_startup.c:573,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:575,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:580,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_startup.c:584,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 545
    functionDepth: 7
    functionLinenumber: 545
    functionLinenumberEnd: 586
    functionName: TPM_VolatileAll_NVLoad
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 2
    functionsReached:
    - TPM_NVRAM_LoadData
    - printf
    - free
    - TPM_VolatileAll_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_VolatileAll_NVLoad(tpm_state_t *tpm_state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:599,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_startup.c:600,1
    - Dst: TPM_VolatileAll_Store
      Src: /src/libtpms/src/tpm12/tpm_startup.c:603,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_startup.c:605,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:609,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:611,1
    - Dst: TPM_NVRAM_StoreData
      Src: /src/libtpms/src/tpm12/tpm_startup.c:618,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_startup.c:623,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 592
    functionDepth: 10
    functionLinenumber: 592
    functionLinenumberEnd: 625
    functionName: TPM_VolatileAll_NVStore
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 2
    functionsReached:
    - TPM_NVRAM_StoreData
    - TPM_Sbuffer_Get
    - TPM_Sbuffer_Delete
    - TPM_VolatileAll_Store
    - printf
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_VolatileAll_NVStore(tpm_state_t *tpm_state)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:636,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_startup.c:638,1
    - Dst: TPM_Parameters_Check8
      Src: /src/libtpms/src/tpm12/tpm_startup.c:642,1
    - Dst: TPM_Parameters_Check8
      Src: /src/libtpms/src/tpm12/tpm_startup.c:646,1
    - Dst: TPM_Parameters_Check16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:650,1
    - Dst: TPM_Parameters_Check16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:654,1
    - Dst: TPM_Parameters_Check16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:658,1
    - Dst: TPM_Parameters_Check16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:662,1
    - Dst: TPM_Parameters_Check16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:666,1
    - Dst: TPM_Parameters_Check16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:670,1
    - Dst: TPM_Parameters_Check16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:675,1
    - Dst: TPM_Parameters_Check16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:680,1
    - Dst: TPM_Parameters_Check16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:684,1
    - Dst: TPM_Parameters_Check16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:688,1
    - Dst: TPM_Parameters_Check16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:692,1
    - Dst: TPM_Parameters_Check16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:696,1
    - Dst: TPM_Parameters_Check32
      Src: /src/libtpms/src/tpm12/tpm_startup.c:700,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 2
    argNames:
    - stream
    - stream_size
    argTypes:
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 631
    functionDepth: 3
    functionLinenumber: 631
    functionLinenumberEnd: 704
    functionName: TPM_Parameters_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 1
    functionsReached:
    - TPM_CheckTag
    - TPM_Parameters_Check32
    - printf
    - TPM_Parameters_Check16
    - TPM_Parameters_Check8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Parameters_Load(unsigned char **stream,\n\t\t\t       uint32_t
      *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_startup.c:715,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - expected
    - parameter
    - stream
    - stream_size
    argTypes:
    - uint8_t
    - char*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 723
    functionName: TPM_Parameters_Check8
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Parameters_Check8(uint8_t expected,\n\t\t\t\t const
      char *parameter,\n\t\t\t\t unsigned char **stream,\n\t\t\t\t uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:734,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - expected
    - parameter
    - stream
    - stream_size
    argTypes:
    - uint16_t
    - char*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 742
    functionName: TPM_Parameters_Check16
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 1
    functionsReached:
    - TPM_Load16
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Parameters_Check16(uint16_t expected,\n\t\t\t\t  const
      char *parameter,\n\t\t\t\t  unsigned char **stream,\n\t\t\t\t  uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_startup.c:753,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - expected
    - parameter
    - stream
    - stream_size
    argTypes:
    - uint32_t
    - char*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 744
    functionDepth: 2
    functionLinenumber: 744
    functionLinenumberEnd: 761
    functionName: TPM_Parameters_Check32
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Parameters_Check32(uint32_t expected,\n\t\t\t\t  const
      char *parameter,\n\t\t\t\t  unsigned char **stream,\n\t\t\t\t  uint32_t *stream_size)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:767,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:769,1
    - Dst: TPM_Sbuffer_Append8
      Src: /src/libtpms/src/tpm12/tpm_startup.c:772,1
    - Dst: TPM_Sbuffer_Append8
      Src: /src/libtpms/src/tpm12/tpm_startup.c:775,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:778,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:781,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:784,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:787,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:790,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:793,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:796,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:799,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:802,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:805,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:808,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:811,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_startup.c:814,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - sbuffer
    argTypes:
    - TPM_STORE_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 763
    functionDepth: 4
    functionLinenumber: 763
    functionLinenumberEnd: 817
    functionName: TPM_Parameters_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    - TPM_Sbuffer_Append16
    - TPM_Sbuffer_Append8
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Parameters_Store(TPM_STORE_BUFFER *sbuffer)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:852,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_startup.c:862,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_startup.c:874,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_startup.c:879,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:883,1
    - Dst: TPM_StclearData_AuthSessionDelete
      Src: /src/libtpms/src/tpm12/tpm_startup.c:898,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:907,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_startup.c:909,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_startup.c:920,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_startup.c:931,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_startup.c:938,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 829
    functionDepth: 5
    functionLinenumber: 829
    functionLinenumberEnd: 944
    functionName: TPM_Process_Reset
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 0
    functionsReached:
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_StclearData_AuthSessionDelete
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_Reset(tpm_state_t *tpm_state,\n\t\t\t     TPM_STORE_BUFFER
      *response,\n\t\t\t     TPM_TAG tag,\n\t\t\t     uint32_t paramSize,\n\t\t\t
      \    TPM_COMMAND_CODE ordinal,\n\t\t\t     unsigned char *command,\n\t\t\t     TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:999,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1007,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1013,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1025,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1029,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1040,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1049,1
    - Dst: TPM_Startup_Clear
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1060,1
    - Dst: TPM_Startup_State
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1063,1
    - Dst: TPM_Startup_Deactivated
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1067,1
    - Dst: TPM_StanyFlags_Init
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1076,1
    - Dst: TPM_SaveState_NVDelete
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1079,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1091,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1093,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1104,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1115,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1122,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 972
    functionDepth: 5
    functionLinenumber: 972
    functionLinenumberEnd: 1125
    functionName: TPM_Process_Startup
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - TPM_GetInParamDigest
    - TPM_SaveState_NVDelete
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Startup_Clear
    - TPM_Startup_State
    - TPM_Startup_Deactivated
    - TPM_Sbuffer_StoreInitialResponse
    - printf
    - TPM_GetOutParamDigest
    - TPM_StanyFlags_Init
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_Startup(tpm_state_t *tpm_state,\n\t\t\t       TPM_STORE_BUFFER
      *response,\n\t\t\t       TPM_TAG tag,\n\t\t\t       uint32_t paramSize,\n\t\t\t
      \      TPM_COMMAND_CODE ordinal,\n\t\t\t       unsigned char *command,\n\t\t\t
      \      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1134,1
    - Dst: TPM_NVIndexEntries_StClear
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1130
    functionDepth: 2
    functionLinenumber: 1130
    functionLinenumberEnd: 1198
    functionName: TPM_Startup_Clear
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 1
    functionsReached:
    - TPM_NVIndexEntries_StClear
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Startup_Clear(tpm_state_t *tpm_state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1207,1
    - Dst: TPM_SaveState_NVLoad
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1230,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1235,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1203
    functionDepth: 8
    functionLinenumber: 1203
    functionLinenumberEnd: 1241
    functionName: TPM_Startup_State
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_SaveState_NVLoad
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Startup_State(tpm_state_t *tpm_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1246
    functionDepth: 1
    functionLinenumber: 1246
    functionLinenumberEnd: 1259
    functionName: TPM_Startup_Deactivated
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Startup_Deactivated(tpm_state_t *tpm_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1271,1
    - Dst: TPM_StanyFlags_Init
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1273,1
    - Dst: TPM_SaveState_NVDelete
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1267
    functionDepth: 4
    functionLinenumber: 1267
    functionLinenumberEnd: 1280
    functionName: TPM_Startup_Any
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 0
    functionsReached:
    - TPM_StanyFlags_Init
    - TPM_SaveState_NVDelete
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Startup_Any(tpm_state_t *tpm_state)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1324,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1334,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1346,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1351,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1355,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1376,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1385,1
    - Dst: TPM_SaveState_NVStore
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1411,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1416,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1418,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1429,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_startup.c:1440,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1299
    functionDepth: 11
    functionLinenumber: 1299
    functionLinenumberEnd: 1446
    functionName: TPM_Process_SaveState
    functionSourceFile: /src/libtpms/src/tpm12/tpm_startup.c
    functionUses: 0
    functionsReached:
    - TPM_GetInParamDigest
    - TPM_SaveState_NVStore
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_SaveState(tpm_state_t *tpm_state,\n\t\t\t\t
      TPM_STORE_BUFFER *response,\n\t\t\t\t TPM_TAG tag,\n\t\t\t\t uint32_t paramSize,\n\t\t\t\t
      TPM_COMMAND_CODE ordinal,\n\t\t\t\t unsigned char *command,\n\t\t\t\t TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:66,1
    - Dst: TPM_DaaSessionData_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - daaSessions
    argTypes:
    - TPM_DAA_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: TPM_DaaSessions_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_DaaSessionData_Init
    linkageType: ''
    returnType: void
    signature: void TPM_DaaSessions_Init(TPM_DAA_SESSION_DATA *daaSessions)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:91,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_daa.c:94,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:98,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:104,1
    - Dst: TPM_DaaSessionData_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - daaSessions
    - stream
    - stream_size
    argTypes:
    - TPM_DAA_SESSION_DATA*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 111
    functionName: TPM_DaaSessions_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_DaaSessionData_Load
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DaaSessions_Load(TPM_DAA_SESSION_DATA *daaSessions,\n\t\t\t\tunsigned
      char **stream,\n\t\t\t\tuint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_DaaSessions_GetSpace
      Src: /src/libtpms/src/tpm12/tpm_daa.c:129,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:131,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_daa.c:132,1
    - Dst: TPM_DaaSessionData_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - sbuffer
    - daaSessions
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DAA_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 141
    functionName: TPM_DaaSessions_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_DaaSessions_GetSpace
    - printf
    - TPM_DaaSessionData_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DaaSessions_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      TPM_DAA_SESSION_DATA *daaSessions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:151,1
    - Dst: TPM_DaaSessionData_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - daaSessions
    argTypes:
    - TPM_DAA_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: TPM_DaaSessions_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_DaaSessionData_Delete
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_DaaSessions_Delete(TPM_DAA_SESSION_DATA *daaSessions)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:167,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - isSpace
    - index
    - daaSessions
    argTypes:
    - TPM_BOOL*
    - uint32_t*
    - TPM_DAA_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: TPM_DaaSessions_IsSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_DaaSessions_IsSpace(TPM_BOOL *isSpace,\n\t\t\t     uint32_t
      *index,\n\t\t\t     TPM_DAA_SESSION_DATA *daaSessions)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - space
    - daaSessions
    argTypes:
    - uint32_t*
    - TPM_DAA_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 194
    functionName: TPM_DaaSessions_GetSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_DaaSessions_GetSpace(uint32_t *space,\n\t\t\t      TPM_DAA_SESSION_DATA
      *daaSessions)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:209,1
    - Dst: TPM_DaaSessions_GetSpace
      Src: /src/libtpms/src/tpm12/tpm_daa.c:212,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_daa.c:214,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_daa.c:218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - daaSessions
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DAA_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 222
    functionName: TPM_DaaSessions_StoreHandles
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_DaaSessions_GetSpace
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DaaSessions_StoreHandles(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t\tTPM_DAA_SESSION_DATA
      *daaSessions)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:243,1
    - Dst: TPM_DaaSessions_IsSpace
      Src: /src/libtpms/src/tpm12/tpm_daa.c:247,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:251,1
    - Dst: TPM_Handle_GenerateHandle
      Src: /src/libtpms/src/tpm12/tpm_daa.c:256,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:263,1
    - Dst: TPM_DaaSessionData_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - tpm_daa_session_data
    - daaHandle
    - daaHandleValid
    - daaSessions
    argTypes:
    - TPM_DAA_SESSION_DATA**
    - TPM_HANDLE*
    - TPM_BOOL*
    - TPM_DAA_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 273
    functionName: TPM_DaaSessions_GetNewHandle
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_DaaSessions_IsSpace
    - TPM_Handle_GenerateHandle
    - printf
    - TPM_DaaSessionData_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DaaSessions_GetNewHandle(TPM_DAA_SESSION_DATA **tpm_daa_session_data,
      /* entry */\n\t\t\t\t\tTPM_HANDLE *daaHandle,\n\t\t\t\t\tTPM_BOOL *daaHandleValid,\n\t\t\t\t\tTPM_DAA_SESSION_DATA
      *daaSessions)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:293,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:302,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - tpm_daa_session_data
    - daaSessions
    - daaHandle
    argTypes:
    - TPM_DAA_SESSION_DATA**
    - TPM_DAA_SESSION_DATA*
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 307
    functionName: TPM_DaaSessions_GetEntry
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DaaSessions_GetEntry(TPM_DAA_SESSION_DATA **tpm_daa_session_data,
      /* session for\n\t\t\t\t\t\t\t\t\t\t    daaHandle */\n\t\t\t\t    TPM_DAA_SESSION_DATA
      *daaSessions, /* points to first session in\n\t\t\t\t\t\t\t\t\t  array */\n\t\t\t\t
      \   TPM_HANDLE daaHandle)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:326,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:330,1
    - Dst: TPM_DaaSessions_IsSpace
      Src: /src/libtpms/src/tpm12/tpm_daa.c:336,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:338,1
    - Dst: TPM_Handle_GenerateHandle
      Src: /src/libtpms/src/tpm12/tpm_daa.c:343,1
    - Dst: TPM_DaaSessionData_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:350,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - tpm_handle
    - keepHandle
    - daaSessions
    - tpm_daa_session_data
    argTypes:
    - TPM_HANDLE*
    - TPM_BOOL
    - TPM_DAA_SESSION_DATA*
    - TPM_DAA_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 356
    functionName: TPM_DaaSessions_AddEntry
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_DaaSessions_IsSpace
    - TPM_Handle_GenerateHandle
    - printf
    - TPM_DaaSessionData_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DaaSessions_AddEntry(TPM_HANDLE *tpm_handle,\t\t\t/*
      i/o */\n\t\t\t\t    TPM_BOOL keepHandle,\t\t\t/* input */\n\t\t\t\t    TPM_DAA_SESSION_DATA
      *daaSessions,\t\t/* input */\n\t\t\t\t    TPM_DAA_SESSION_DATA *tpm_daa_session_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:368,1
    - Dst: TPM_DaaSessions_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_daa.c:371,1
    - Dst: TPM_DaaSessionData_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - daaSessions
    - daaHandle
    argTypes:
    - TPM_DAA_SESSION_DATA*
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 380
    functionName: TPM_DaaSessions_TerminateHandle
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_DaaSessionData_Delete
    - printf
    - TPM_DaaSessions_GetEntry
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DaaSessions_TerminateHandle(TPM_DAA_SESSION_DATA *daaSessions,\n\t\t\t\t\t
      \  TPM_HANDLE daaHandle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:395,1
    - Dst: TPM_DAAIssuer_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:396,1
    - Dst: TPM_DAATpm_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:397,1
    - Dst: TPM_DAAContext_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:398,1
    - Dst: TPM_DAAJoindata_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tpm_daa_session_data
    argTypes:
    - TPM_DAA_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 403
    functionName: TPM_DaaSessionData_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 2
    functionsReached:
    - TPM_DAAIssuer_Init
    - TPM_DAAJoindata_Init
    - TPM_DAAContext_Init
    - TPM_DAATpm_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_DaaSessionData_Init(TPM_DAA_SESSION_DATA *tpm_daa_session_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:421,1
    - Dst: TPM_DAAIssuer_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:424,1
    - Dst: TPM_DAATpm_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:428,1
    - Dst: TPM_DAAContext_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:432,1
    - Dst: TPM_DAAJoindata_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:436,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_daa.c:440,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - tpm_daa_session_data
    - stream
    - stream_size
    argTypes:
    - TPM_DAA_SESSION_DATA*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 447
    functionName: TPM_DaaSessionData_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_DAAContext_Load
    - TPM_DAAIssuer_Load
    - printf
    - TPM_DAAJoindata_Load
    - TPM_Load32
    - TPM_DAATpm_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DaaSessionData_Load(TPM_DAA_SESSION_DATA *tpm_daa_session_data,\n\t\t\t\t
      \  unsigned char **stream,\n\t\t\t\t   uint32_t *stream_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:460,1
    - Dst: TPM_DAAIssuer_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:463,1
    - Dst: TPM_DAATpm_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:467,1
    - Dst: TPM_DAAContext_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:471,1
    - Dst: TPM_DAAJoindata_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:475,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_daa.c:479,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - sbuffer
    - tpm_daa_session_data
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DAA_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 455
    functionDepth: 4
    functionLinenumber: 455
    functionLinenumberEnd: 482
    functionName: TPM_DaaSessionData_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_DAAContext_Store
    - TPM_DAAJoindata_Store
    - TPM_DAAIssuer_Store
    - printf
    - TPM_DAATpm_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DaaSessionData_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \   const TPM_DAA_SESSION_DATA *tpm_daa_session_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:495,1
    - Dst: TPM_DAAIssuer_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:497,1
    - Dst: TPM_DAATpm_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:498,1
    - Dst: TPM_DAAContext_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:499,1
    - Dst: TPM_DAAJoindata_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:500,1
    - Dst: TPM_DaaSessionData_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - tpm_daa_session_data
    argTypes:
    - TPM_DAA_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 504
    functionName: TPM_DaaSessionData_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 2
    functionsReached:
    - TPM_DAAContext_Delete
    - TPM_DAAIssuer_Delete
    - TPM_DaaSessionData_Init
    - TPM_DAATpm_Delete
    - printf
    - TPM_DAAJoindata_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_DaaSessionData_Delete(TPM_DAA_SESSION_DATA *tpm_daa_session_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_DAAIssuer_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:515,1
    - Dst: TPM_DAATpm_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:517,1
    - Dst: TPM_DAAContext_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:519,1
    - Dst: TPM_DAAJoindata_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - dest_daa_session_data
    - tpm_handle
    - src_daa_session_data
    argTypes:
    - TPM_DAA_SESSION_DATA*
    - TPM_HANDLE
    - TPM_DAA_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 525
    functionName: TPM_DaaSessionData_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_DAAJoindata_Copy
    - TPM_DAAIssuer_Copy
    - TPM_DAATpm_Copy
    - TPM_DAAContext_Copy
    linkageType: ''
    returnType: void
    signature: "void TPM_DaaSessionData_Copy(TPM_DAA_SESSION_DATA *dest_daa_session_data,\n\t\t\t
      \    TPM_HANDLE tpm_handle,\n\t\t\t     TPM_DAA_SESSION_DATA *src_daa_session_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:536,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - tpm_daa_session_data
    - stage
    argTypes:
    - TPM_DAA_SESSION_DATA*
    - BYTE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 543
    functionName: TPM_DaaSessionData_CheckStage
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DaaSessionData_CheckStage(TPM_DAA_SESSION_DATA *tpm_daa_session_data,\n\t\t\t\t\t
      BYTE stage)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:558,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:560,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:561,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:562,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:563,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:564,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:565,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_daa.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tpm_daa_issuer
    argTypes:
    - TPM_DAA_ISSUER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 568
    functionName: TPM_DAAIssuer_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Digest_Init
    - memset
    linkageType: ''
    returnType: void
    signature: void TPM_DAAIssuer_Init(TPM_DAA_ISSUER *tpm_daa_issuer)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:586,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_daa.c:589,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:593,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:597,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:601,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:605,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:609,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:613,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:617,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - tpm_daa_issuer
    - stream
    - stream_size
    argTypes:
    - TPM_DAA_ISSUER*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 580
    functionDepth: 3
    functionLinenumber: 580
    functionLinenumberEnd: 621
    functionName: TPM_DAAIssuer_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_Digest_Load
    - printf
    - TPM_Loadn
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAIssuer_Load(TPM_DAA_ISSUER *tpm_daa_issuer,\n\t\t\t
      \     unsigned char **stream,\n\t\t\t      uint32_t *stream_size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:634,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_daa.c:637,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:641,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:645,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:649,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:653,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:657,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:661,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_daa.c:665,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - sbuffer
    - tpm_daa_issuer
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DAA_ISSUER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 629
    functionDepth: 4
    functionLinenumber: 629
    functionLinenumberEnd: 670
    functionName: TPM_DAAIssuer_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append
    - TPM_Digest_Store
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAIssuer_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t
      \      const TPM_DAA_ISSUER *tpm_daa_issuer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:683,1
    - Dst: TPM_DAAIssuer_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_daa_issuer
    argTypes:
    - TPM_DAA_ISSUER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 681
    functionDepth: 3
    functionLinenumber: 681
    functionLinenumberEnd: 688
    functionName: TPM_DAAIssuer_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_DAAIssuer_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_DAAIssuer_Delete(TPM_DAA_ISSUER *tpm_daa_issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:697,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:699,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:700,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:701,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:702,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:703,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:704,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - dest_daa_issuer
    - src_daa_issuer
    argTypes:
    - TPM_DAA_ISSUER*
    - TPM_DAA_ISSUER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 694
    functionDepth: 2
    functionLinenumber: 694
    functionLinenumberEnd: 708
    functionName: TPM_DAAIssuer_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Digest_Copy
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void TPM_DAAIssuer_Copy(TPM_DAA_ISSUER *dest_daa_issuer,\n\t\t\tTPM_DAA_ISSUER
      *src_daa_issuer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:723,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:724,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:725,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:726,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tpm_daa_tpm
    argTypes:
    - TPM_DAA_TPM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 730
    functionName: TPM_DAATpm_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_DAATpm_Init(TPM_DAA_TPM *tpm_daa_tpm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:748,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_daa.c:751,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:755,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:759,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:763,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:767,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_daa.c:771,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - tpm_daa_tpm
    - stream
    - stream_size
    argTypes:
    - TPM_DAA_TPM*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 774
    functionName: TPM_DAATpm_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_Digest_Load
    - printf
    - TPM_Load32
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAATpm_Load(TPM_DAA_TPM *tpm_daa_tpm,\n\t\t\t   unsigned
      char **stream,\n\t\t\t   uint32_t *stream_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:787,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_daa.c:790,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:794,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:798,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:802,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:806,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_daa.c:810,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - sbuffer
    - tpm_daa_tpm
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DAA_TPM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 782
    functionDepth: 4
    functionLinenumber: 782
    functionLinenumberEnd: 813
    functionName: TPM_DAATpm_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Digest_Store
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAATpm_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t    const
      TPM_DAA_TPM *tpm_daa_tpm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:826,1
    - Dst: TPM_DAATpm_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_daa_tpm
    argTypes:
    - TPM_DAA_TPM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 824
    functionDepth: 3
    functionLinenumber: 824
    functionLinenumberEnd: 831
    functionName: TPM_DAATpm_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_DAATpm_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_DAATpm_Delete(TPM_DAA_TPM *tpm_daa_tpm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:839,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:840,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:841,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:842,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - dest_daa_tpm
    - src_daa_tpm
    argTypes:
    - TPM_DAA_TPM*
    - TPM_DAA_TPM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 846
    functionName: TPM_DAATpm_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Digest_Copy
    linkageType: ''
    returnType: void
    signature: void TPM_DAATpm_Copy(TPM_DAA_TPM *dest_daa_tpm, TPM_DAA_TPM *src_daa_tpm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:861,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:862,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:863,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:864,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_daa.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tpm_daa_context
    argTypes:
    - TPM_DAA_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 859
    functionDepth: 2
    functionLinenumber: 859
    functionLinenumberEnd: 869
    functionName: TPM_DAAContext_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_Nonce_Init
    - printf
    - TPM_Digest_Init
    - memset
    linkageType: ''
    returnType: void
    signature: void TPM_DAAContext_Init(TPM_DAA_CONTEXT *tpm_daa_context)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:887,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_daa.c:890,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:894,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:898,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:902,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:906,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_daa.c:911,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_daa.c:915,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - tpm_daa_context
    - stream
    - stream_size
    argTypes:
    - TPM_DAA_CONTEXT*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 881
    functionDepth: 3
    functionLinenumber: 881
    functionLinenumberEnd: 918
    functionName: TPM_DAAContext_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_Digest_Load
    - TPM_CheckTag
    - TPM_LoadBool
    - TPM_Loadn
    - TPM_Nonce_Load
    - printf
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAContext_Load(TPM_DAA_CONTEXT *tpm_daa_context,\n\t\t\t
      \      unsigned char **stream,\n\t\t\t       uint32_t *stream_size)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:931,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_daa.c:934,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:938,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:942,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:946,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_daa.c:950,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_daa.c:955,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_daa.c:959,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - sbuffer
    - tpm_daa_context
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DAA_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 926
    functionDepth: 4
    functionLinenumber: 926
    functionLinenumberEnd: 962
    functionName: TPM_DAAContext_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_Nonce_Store
    - TPM_Sbuffer_Append16
    - printf
    - TPM_Digest_Store
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAContext_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\tconst
      TPM_DAA_CONTEXT *tpm_daa_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:975,1
    - Dst: TPM_DAAContext_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_daa_context
    argTypes:
    - TPM_DAA_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 973
    functionDepth: 3
    functionLinenumber: 973
    functionLinenumberEnd: 980
    functionName: TPM_DAAContext_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_DAAContext_Init
    linkageType: ''
    returnType: void
    signature: void TPM_DAAContext_Delete(TPM_DAA_CONTEXT *tpm_daa_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:988,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:989,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:990,1
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:991,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - dest_daa_context
    - src_daa_context
    argTypes:
    - TPM_DAA_CONTEXT*
    - TPM_DAA_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 986
    functionDepth: 2
    functionLinenumber: 986
    functionLinenumberEnd: 997
    functionName: TPM_DAAContext_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_Nonce_Copy
    - printf
    - TPM_Digest_Copy
    - memcpy
    linkageType: ''
    returnType: void
    signature: void TPM_DAAContext_Copy(TPM_DAA_CONTEXT *dest_daa_context, TPM_DAA_CONTEXT
      *src_daa_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1012,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1013,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1014,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tpm_daa_joindata
    argTypes:
    - TPM_DAA_JOINDATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1010
    functionDepth: 2
    functionLinenumber: 1010
    functionLinenumberEnd: 1017
    functionName: TPM_DAAJoindata_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Digest_Init
    - memset
    linkageType: ''
    returnType: void
    signature: void TPM_DAAJoindata_Init(TPM_DAA_JOINDATA *tpm_daa_joindata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1035,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1038,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1044,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1050,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tpm_daa_joindata
    - stream
    - stream_size
    argTypes:
    - TPM_DAA_JOINDATA*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1029
    functionDepth: 3
    functionLinenumber: 1029
    functionLinenumberEnd: 1053
    functionName: TPM_DAAJoindata_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_Digest_Load
    - printf
    - TPM_Loadn
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoindata_Load(TPM_DAA_JOINDATA *tpm_daa_joindata,\n\t\t\t
      \  unsigned char **stream,\n\t\t\t   uint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1066,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1069,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1074,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1079,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - tpm_daa_joindata
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DAA_JOINDATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1061
    functionDepth: 4
    functionLinenumber: 1061
    functionLinenumberEnd: 1082
    functionName: TPM_DAAJoindata_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_Digest_Store
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoindata_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      const TPM_DAA_JOINDATA *tpm_daa_joindata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1095,1
    - Dst: TPM_DAAJoindata_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_daa_joindata
    argTypes:
    - TPM_DAA_JOINDATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1093
    functionDepth: 3
    functionLinenumber: 1093
    functionLinenumberEnd: 1100
    functionName: TPM_DAAJoindata_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_DAAJoindata_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_DAAJoindata_Delete(TPM_DAA_JOINDATA *tpm_daa_joindata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1108,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1109,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1111,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - dest_daa_joindata
    - src_daa_joindata
    argTypes:
    - TPM_DAA_JOINDATA*
    - TPM_DAA_JOINDATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1106
    functionDepth: 2
    functionLinenumber: 1106
    functionLinenumberEnd: 1115
    functionName: TPM_DAAJoindata_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Digest_Copy
    - memcpy
    linkageType: ''
    returnType: void
    signature: void TPM_DAAJoindata_Copy(TPM_DAA_JOINDATA *dest_daa_joindata, TPM_DAA_JOINDATA
      *src_daa_joindata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1130,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1132,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1133,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1134,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tpm_daa_blob
    argTypes:
    - TPM_DAA_BLOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1128
    functionDepth: 2
    functionLinenumber: 1128
    functionLinenumberEnd: 1137
    functionName: TPM_DAABlob_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - printf
    - TPM_Digest_Init
    - memset
    linkageType: ''
    returnType: void
    signature: void TPM_DAABlob_Init(TPM_DAA_BLOB *tpm_daa_blob)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1155,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1158,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1162,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1166,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1170,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1174,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - tpm_daa_blob
    - stream
    - stream_size
    argTypes:
    - TPM_DAA_BLOB*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1181
    functionName: TPM_DAABlob_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Load
    - TPM_CheckTag
    - TPM_Loadn
    - printf
    - TPM_Load32
    - TPM_SizedBuffer_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAABlob_Load(TPM_DAA_BLOB *tpm_daa_blob,\n\t\t\t    unsigned
      char **stream,\n\t\t\t    uint32_t *stream_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1194,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1197,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1201,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1205,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1209,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1213,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - sbuffer
    - tpm_daa_blob
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DAA_BLOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1189
    functionDepth: 4
    functionLinenumber: 1189
    functionLinenumberEnd: 1220
    functionName: TPM_DAABlob_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append16
    - TPM_SizedBuffer_Store
    - printf
    - TPM_Digest_Store
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAABlob_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t   const
      TPM_DAA_BLOB *tpm_daa_blob)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1233,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1235,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1236,1
    - Dst: TPM_DAABlob_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tpm_daa_blob
    argTypes:
    - TPM_DAA_BLOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1231
    functionDepth: 3
    functionLinenumber: 1231
    functionLinenumberEnd: 1240
    functionName: TPM_DAABlob_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Delete
    - printf
    - TPM_DAABlob_Init
    linkageType: ''
    returnType: void
    signature: void TPM_DAABlob_Delete(TPM_DAA_BLOB *tpm_daa_blob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1255,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tpm_daa_sensitive
    argTypes:
    - TPM_DAA_SENSITIVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1253
    functionDepth: 1
    functionLinenumber: 1253
    functionLinenumberEnd: 1258
    functionName: TPM_DAASensitive_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_DAASensitive_Init(TPM_DAA_SENSITIVE *tpm_daa_sensitive)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1276,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1279,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tpm_daa_sensitive
    - stream
    - stream_size
    argTypes:
    - TPM_DAA_SENSITIVE*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1270
    functionDepth: 3
    functionLinenumber: 1270
    functionLinenumberEnd: 1286
    functionName: TPM_DAASensitive_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_SizedBuffer_Load
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAASensitive_Load(TPM_DAA_SENSITIVE *tpm_daa_sensitive,\n\t\t\t\t
      unsigned char **stream,\n\t\t\t\t uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1299,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1302,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sbuffer
    - tpm_daa_sensitive
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_DAA_SENSITIVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1294
    functionDepth: 4
    functionLinenumber: 1294
    functionLinenumberEnd: 1309
    functionName: TPM_DAASensitive_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Sbuffer_Append16
    - TPM_SizedBuffer_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAASensitive_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \ const TPM_DAA_SENSITIVE *tpm_daa_sensitive)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1322,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1324,1
    - Dst: TPM_DAASensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_daa_sensitive
    argTypes:
    - TPM_DAA_SENSITIVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1320
    functionDepth: 2
    functionLinenumber: 1320
    functionLinenumberEnd: 1328
    functionName: TPM_DAASensitive_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Delete
    - printf
    - TPM_DAASensitive_Init
    linkageType: ''
    returnType: void
    signature: void TPM_DAASensitive_Delete(TPM_DAA_SENSITIVE *tpm_daa_sensitive)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1347,1
    - Dst: TPM_DaaSessions_GetNewHandle
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1360,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1374,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1384,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1390,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1392,1
    - Dst: TPM_DAADigestContext_GenerateDigestJoin
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1400,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1409,1
    - Dst: TPM_SizedBuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1412,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 5
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - daaHandleValid
    - outputData
    - inputData0
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA**
    - TPM_BOOL*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1335
    functionDepth: 3
    functionLinenumber: 1335
    functionLinenumberEnd: 1416
    functionName: TPM_DAAJoin_Stage00
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Append32
    - printf
    - TPM_Load32
    - TPM_DAADigestContext_GenerateDigestJoin
    - TPM_DaaSessions_GetNewHandle
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage00(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      **tpm_daa_session_data,\n\t\t\t       TPM_BOOL *daaHandleValid,\n\t\t\t       TPM_SIZED_BUFFER
      *outputData,\n\t\t\t       TPM_SIZED_BUFFER *inputData0)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1427,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1439,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1446,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1450,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1454,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1462,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1470,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1476,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1485,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1486,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1491,1
    - Dst: TPM_RSAVerify
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1492,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1502,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1508,1
    - Dst: TPM_DAADigestContext_GenerateDigestJoin
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1522,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 5
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    - inputData1
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1418
    functionDepth: 2
    functionLinenumber: 1418
    functionLinenumberEnd: 1529
    functionName: TPM_DAAJoin_Stage01
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1
    - memcpy
    - printf
    - TPM_DAADigestContext_GenerateDigestJoin
    - TPM_RSAVerify
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage01(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0,\n\t\t\t       TPM_SIZED_BUFFER *inputData1)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1543,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1546,1
    - Dst: TPM_DAAIssuer_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1561,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1568,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1576,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1583,1
    - Dst: TPM_DAAIssuer_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1587,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1593,1
    - Dst: TPM_SHA1Sbuffer
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1594,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1597,1
    - Dst: TPM_RSAVerify
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1598,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1608,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1614,1
    - Dst: TPM_DAADigestContext_GenerateDigestJoin
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1620,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1630,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 5
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    - inputData1
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1531
    functionDepth: 5
    functionLinenumber: 1531
    functionLinenumberEnd: 1632
    functionName: TPM_DAAJoin_Stage02
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_DAAIssuer_Load
    - TPM_Sbuffer_Delete
    - TPM_DAAIssuer_Store
    - printf
    - TPM_DAADigestContext_GenerateDigestJoin
    - TPM_RSAVerify
    - TPM_Digest_Store
    - TPM_Sbuffer_Init
    - TPM_SHA1Sbuffer
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage02(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0,\n\t\t\t       TPM_SIZED_BUFFER *inputData1)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1643,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1659,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1669,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1673,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1678,1
    - Dst: TPM_DAADigestContext_GenerateDigestJoin
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1687,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1634
    functionDepth: 2
    functionLinenumber: 1634
    functionLinenumberEnd: 1692
    functionName: TPM_DAAJoin_Stage03
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_Random
    - printf
    - TPM_Load32
    - TPM_DAADigestContext_GenerateDigestJoin
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage03(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1706,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1722,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1723,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1734,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1735,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1744,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1745,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1749,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1750,1
    - Dst: TPM_ComputeF
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1756,1
    - Dst: TPM_BN_mask_bits
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1760,1
    - Dst: TPM_ComputeAexpPmodn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1764,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1776,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1777,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1778,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1779,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 5
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    - inputData1
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1694
    functionDepth: 2
    functionLinenumber: 1694
    functionLinenumberEnd: 1781
    functionName: TPM_DAAJoin_Stage04
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_BN_mask_bits
    - TPM_ComputeF
    - TPM_ComputeAexpPmodn
    - TPM_SHA1_Check
    - printf
    - TPM_bin2bn
    - TPM_BN_free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage04(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0,\n\t\t\t       TPM_SIZED_BUFFER *inputData1)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1796,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1812,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1813,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1824,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1825,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1834,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1835,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1839,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1840,1
    - Dst: TPM_ComputeF
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1846,1
    - Dst: TPM_BN_rshift
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1851,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1855,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1856,1
    - Dst: TPM_ComputeZxAexpPmodn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1862,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1874,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1875,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1876,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1877,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1878,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 5
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    - inputData1
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1783
    functionDepth: 2
    functionLinenumber: 1783
    functionLinenumberEnd: 1880
    functionName: TPM_DAAJoin_Stage05
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_ComputeZxAexpPmodn
    - TPM_ComputeF
    - TPM_SHA1_Check
    - printf
    - TPM_bin2bn
    - TPM_BN_rshift
    - TPM_BN_free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage05(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0,\n\t\t\t       TPM_SIZED_BUFFER *inputData1)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1894,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1910,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1911,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1922,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1923,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1932,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1933,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1937,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1938,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1942,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1943,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1949,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1950,1
    - Dst: TPM_ComputeZxAexpPmodn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1956,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1968,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1969,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1970,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1971,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 5
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    - inputData1
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1882
    functionDepth: 2
    functionLinenumber: 1882
    functionLinenumberEnd: 1973
    functionName: TPM_DAAJoin_Stage06
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_ComputeZxAexpPmodn
    - TPM_SHA1_Check
    - printf
    - TPM_bin2bn
    - TPM_BN_free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage06(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0,\n\t\t\t       TPM_SIZED_BUFFER *inputData1)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:1988,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2003,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2004,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2015,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2016,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2025,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2026,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2030,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2031,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2035,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2036,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2042,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2043,1
    - Dst: TPM_ComputeZxAexpPmodn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2049,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2059,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2060,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2061,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2070,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2081,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2082,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2083,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2084,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 5
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    - inputData1
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 1975
    functionDepth: 3
    functionLinenumber: 1975
    functionLinenumberEnd: 2086
    functionName: TPM_DAAJoin_Stage07
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_ComputeZxAexpPmodn
    - TPM_SHA1
    - TPM_SHA1_Check
    - printf
    - TPM_bin2bn
    - htonl
    - TPM_SizedBuffer_Set
    - TPM_BN_free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage07(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0,\n\t\t\t       TPM_SIZED_BUFFER *inputData1)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2098,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2111,1
    - Dst: TPM_RSAPrivateDecryptMalloc
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2118,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2126,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2132,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2136,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2088
    functionDepth: 3
    functionLinenumber: 2088
    functionLinenumberEnd: 2143
    functionName: TPM_DAAJoin_Stage08
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1
    - TPM_RSAPrivateDecryptMalloc
    - TPM_SizedBuffer_Set
    - printf
    - free
    - TPM_Digest_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage08(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2158,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2174,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2175,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2186,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2187,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2196,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2201,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2202,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2213,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2217,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2218,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2222,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2223,1
    - Dst: TPM_ComputeAexpPmodn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2227,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2240,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2241,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2242,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2243,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2244,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 5
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    - inputData1
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2145
    functionDepth: 4
    functionLinenumber: 2145
    functionLinenumberEnd: 2246
    functionName: TPM_DAAJoin_Stage09_Sign_Stage2
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_ComputeAexpPmodn
    - TPM_MGF1_GenerateArray
    - TPM_Nonce_Generate
    - TPM_SHA1_Check
    - printf
    - TPM_bin2bn
    - TPM_BN_free
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage09_Sign_Stage2(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \  TPM_DAA_SESSION_DATA *tpm_daa_session_data,\n\t\t\t\t\t   TPM_SIZED_BUFFER
      *outputData,\n\t\t\t\t\t   TPM_SIZED_BUFFER *inputData0,\n\t\t\t\t\t   TPM_SIZED_BUFFER
      *inputData1)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2261,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2277,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2278,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2289,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2290,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2300,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2301,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2312,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2316,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2317,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2321,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2322,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2326,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2327,1
    - Dst: TPM_ComputeZxAexpPmodn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2333,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2345,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2346,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2347,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2348,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2349,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 5
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    - inputData1
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2351
      start: 2248
    functionDepth: 4
    functionLinenumber: 2248
    functionLinenumberEnd: 2351
    functionName: TPM_DAAJoin_Stage10_Sign_Stage3
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_ComputeZxAexpPmodn
    - TPM_MGF1_GenerateArray
    - TPM_SHA1_Check
    - printf
    - TPM_bin2bn
    - TPM_BN_free
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage10_Sign_Stage3(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \  TPM_DAA_SESSION_DATA *tpm_daa_session_data,\n\t\t\t\t\t   TPM_SIZED_BUFFER
      *outputData,\n\t\t\t\t\t   TPM_SIZED_BUFFER *inputData0,\n\t\t\t\t\t   TPM_SIZED_BUFFER
      *inputData1)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2366,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2382,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2383,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2394,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2395,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2405,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2406,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2417,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2421,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2422,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2426,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2427,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2431,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2432,1
    - Dst: TPM_ComputeZxAexpPmodn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2438,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2450,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2451,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2452,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2453,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2454,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 5
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    - inputData1
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2456
      start: 2353
    functionDepth: 4
    functionLinenumber: 2353
    functionLinenumberEnd: 2456
    functionName: TPM_DAAJoin_Stage11_Sign_Stage4
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_ComputeZxAexpPmodn
    - TPM_MGF1_GenerateArray
    - TPM_SHA1_Check
    - printf
    - TPM_bin2bn
    - TPM_BN_free
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage11_Sign_Stage4(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \  TPM_DAA_SESSION_DATA *tpm_daa_session_data,\n\t\t\t\t\t   TPM_SIZED_BUFFER
      *outputData,\n\t\t\t\t\t   TPM_SIZED_BUFFER *inputData0,\n\t\t\t\t\t   TPM_SIZED_BUFFER
      *inputData1)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2471,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2486,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2487,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2498,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2499,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2509,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2510,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2521,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2525,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2526,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2530,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2531,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2535,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2536,1
    - Dst: TPM_ComputeZxAexpPmodn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2542,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2551,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2562,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2563,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2564,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2565,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2566,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 5
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    - inputData1
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2568
      start: 2458
    functionDepth: 4
    functionLinenumber: 2458
    functionLinenumberEnd: 2568
    functionName: TPM_DAAJoin_Stage12
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_ComputeZxAexpPmodn
    - TPM_MGF1_GenerateArray
    - TPM_SHA1_Check
    - printf
    - TPM_bin2bn
    - TPM_SizedBuffer_Set
    - TPM_BN_free
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage12(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0,\n\t\t\t       TPM_SIZED_BUFFER *inputData1)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2582,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2598,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2599,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2609,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2616,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2617,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2621,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2622,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2628,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2629,1
    - Dst: TPM_ComputeAexpPmodn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2634,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2643,1
    - Dst: TPM_BN_is_one
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2644,1
    - Dst: TPM_ComputeDAAScratch
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2648,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2657,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2658,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2659,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2660,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 5
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    - inputData1
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2662
      start: 2570
    functionDepth: 2
    functionLinenumber: 2570
    functionLinenumberEnd: 2662
    functionName: TPM_DAAJoin_Stage13_Sign_Stage6
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_ComputeDAAScratch
    - TPM_ComputeAexpPmodn
    - TPM_SHA1_Check
    - printf
    - TPM_BN_is_one
    - TPM_bin2bn
    - TPM_BN_free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage13_Sign_Stage6(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \  TPM_DAA_SESSION_DATA *tpm_daa_session_data,\n\t\t\t\t\t   TPM_SIZED_BUFFER
      *outputData,\n\t\t\t\t\t   TPM_SIZED_BUFFER *inputData0,\n\t\t\t\t\t   TPM_SIZED_BUFFER
      *inputData1)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2677,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2692,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2693,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2704,1
    - Dst: TPM_ComputeF
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2705,1
    - Dst: TPM_BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2708,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2709,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2713,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2714,1
    - Dst: TPM_BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2719,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2720,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2724,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2725,1
    - Dst: TPM_BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2728,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2729,1
    - Dst: TPM_ComputeAexpPmodn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2734,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2743,1
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2744,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2751,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2752,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2753,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2754,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 4
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2664
    functionDepth: 3
    functionLinenumber: 2664
    functionLinenumberEnd: 2756
    functionName: TPM_DAAJoin_Stage14_Sign_Stage7
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_BN_num_bytes
    - TPM_bn2binMalloc
    - TPM_ComputeF
    - TPM_ComputeAexpPmodn
    - TPM_SHA1_Check
    - TPM_bin2bn
    - printf
    - TPM_BN_free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage14_Sign_Stage7(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \  TPM_DAA_SESSION_DATA *tpm_daa_session_data,\n\t\t\t\t\t   TPM_SIZED_BUFFER
      *outputData,\n\t\t\t\t\t   TPM_SIZED_BUFFER *inputData0)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2775,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2790,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2791,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2801,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2802,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2813,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2818,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2819,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2830,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2834,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2835,1
    - Dst: TPM_BN_lshift
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2844,1
    - Dst: TPM_ComputeApBmodn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2849,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2856,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2857,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2861,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2862,1
    - Dst: TPM_ComputeAexpPmodn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2869,1
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2882,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2889,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2890,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2891,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2892,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2893,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2894,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2895,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2896,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2897,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2898,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 4
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2758
    functionDepth: 4
    functionLinenumber: 2758
    functionLinenumberEnd: 2900
    functionName: TPM_DAAJoin_Stage15_Sign_Stage8
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_bn2binMalloc
    - TPM_ComputeAexpPmodn
    - TPM_MGF1_GenerateArray
    - free
    - TPM_SHA1_Check
    - printf
    - TPM_bin2bn
    - TPM_ComputeApBmodn
    - TPM_BN_free
    - TPM_BN_lshift
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage15_Sign_Stage8(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \  TPM_DAA_SESSION_DATA *tpm_daa_session_data,\n\t\t\t\t\t   TPM_SIZED_BUFFER
      *outputData,\n\t\t\t\t\t   TPM_SIZED_BUFFER *inputData0)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2910,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2925,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2935,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2938,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2942,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2949,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2954,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2956
      start: 2902
    functionDepth: 3
    functionLinenumber: 2902
    functionLinenumberEnd: 2956
    functionName: TPM_DAAJoin_Stage16_Sign_Stage9
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1
    - TPM_Malloc
    - TPM_SizedBuffer_Set
    - printf
    - TPM_Random
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage16_Sign_Stage9(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \  TPM_DAA_SESSION_DATA *tpm_daa_session_data,\n\t\t\t\t\t   TPM_SIZED_BUFFER
      *outputData,\n\t\t\t\t\t   TPM_SIZED_BUFFER *inputData0)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2969,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2983,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2984,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:2995,1
    - Dst: TPM_ComputeF
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3001,1
    - Dst: TPM_BN_mask_bits
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3005,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3009,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3010,1
    - Dst: TPM_ComputeApBxC
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3016,1
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3023,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3030,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3031,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3032,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3033,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3034,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3036
      start: 2958
    functionDepth: 4
    functionLinenumber: 2958
    functionLinenumberEnd: 3036
    functionName: TPM_DAAJoin_Stage17_Sign_Stage11
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_BN_mask_bits
    - TPM_bn2binMalloc
    - TPM_ComputeF
    - TPM_MGF1_GenerateArray
    - printf
    - TPM_bin2bn
    - TPM_ComputeApBxC
    - TPM_BN_free
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage17_Sign_Stage11(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \   TPM_DAA_SESSION_DATA *tpm_daa_session_data,\n\t\t\t\t\t    TPM_SIZED_BUFFER
      *outputData)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3050,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3064,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3065,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3076,1
    - Dst: TPM_ComputeF
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3082,1
    - Dst: TPM_BN_rshift
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3087,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3091,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3092,1
    - Dst: TPM_ComputeApBxC
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3098,1
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3105,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3112,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3113,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3114,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3115,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3116,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3119
      start: 3038
    functionDepth: 4
    functionLinenumber: 3038
    functionLinenumberEnd: 3119
    functionName: TPM_DAAJoin_Stage18_Sign_Stage12
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_bn2binMalloc
    - TPM_ComputeF
    - TPM_MGF1_GenerateArray
    - printf
    - TPM_bin2bn
    - TPM_BN_rshift
    - TPM_ComputeApBxC
    - TPM_BN_free
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage18_Sign_Stage12(tpm_state_t *tpm_state,\n\t\t\t\t\t
      \   TPM_DAA_SESSION_DATA *tpm_daa_session_data,\n\t\t\t\t\t    TPM_SIZED_BUFFER
      *outputData)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3132,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3146,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3147,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3158,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3164,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3165,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3169,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3170,1
    - Dst: TPM_ComputeApBxC
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3176,1
    - Dst: TPM_BN_mask_bits
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3182,1
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3186,1
    - Dst: TPM_SizedBuffer_ComputeEnlarge
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3192,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3197,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3198,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3199,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3200,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3201,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3203
      start: 3121
    functionDepth: 4
    functionLinenumber: 3121
    functionLinenumberEnd: 3203
    functionName: TPM_DAAJoin_Stage19
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_BN_mask_bits
    - TPM_bn2binMalloc
    - TPM_MGF1_GenerateArray
    - printf
    - TPM_bin2bn
    - TPM_ComputeApBxC
    - TPM_SizedBuffer_ComputeEnlarge
    - TPM_BN_free
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage19(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3219,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3233,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3234,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3245,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3250,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3251,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3255,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3256,1
    - Dst: TPM_ComputeApBxC
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3262,1
    - Dst: TPM_BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3269,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3270,1
    - Dst: TPM_BN_rshift
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3274,1
    - Dst: TPM_BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3277,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3278,1
    - Dst: TPM_ComputeDAAScratch
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3282,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3288,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3294,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3295,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3296,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3297,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3298,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3299,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3301
      start: 3205
    functionDepth: 4
    functionLinenumber: 3205
    functionLinenumberEnd: 3301
    functionName: TPM_DAAJoin_Stage20
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_BN_num_bytes
    - TPM_ComputeDAAScratch
    - TPM_MGF1_GenerateArray
    - printf
    - TPM_bin2bn
    - TPM_ComputeApBxC
    - TPM_BN_rshift
    - TPM_SizedBuffer_Set
    - TPM_BN_free
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage20(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3317,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3331,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3332,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3343,1
    - Dst: TPM_BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3347,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3348,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3354,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3355,1
    - Dst: TPM_BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3359,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3360,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3364,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3365,1
    - Dst: TPM_BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3371,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3372,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3376,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3377,1
    - Dst: TPM_BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3382,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3383,1
    - Dst: TPM_ComputeApBxCpD
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3387,1
    - Dst: TPM_BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3394,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3395,1
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3403,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3410,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3411,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3412,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3413,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3414,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3415,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 3
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3417
      start: 3303
    functionDepth: 4
    functionLinenumber: 3303
    functionLinenumberEnd: 3417
    functionName: TPM_DAAJoin_Stage21
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_BN_num_bytes
    - TPM_bn2binMalloc
    - TPM_MGF1_GenerateArray
    - printf
    - TPM_ComputeApBxCpD
    - TPM_bin2bn
    - TPM_BN_free
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage21(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3434,1
    - Dst: TPM_DAASensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3435,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3448,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3455,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3456,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3462,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3463,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3469,1
    - Dst: TPM_BN_new
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3470,1
    - Dst: TPM_BN_add
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3474,1
    - Dst: TPM_BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3477,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3478,1
    - Dst: TPM_BN_mask_bits
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3482,1
    - Dst: TPM_BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3485,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3486,1
    - Dst: TPM_SHA1_BignumGenerate
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3490,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3498,1
    - Dst: TPM_BN_new
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3499,1
    - Dst: TPM_BN_add
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3503,1
    - Dst: TPM_BN_rshift
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3507,1
    - Dst: TPM_ComputeDAAScratch
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3511,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3520,1
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3522,1
    - Dst: TPM_ComputeEncrypt
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3527,1
    - Dst: TPM_DAADigestContext_GenerateDigestJoin
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3536,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3540,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3541,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3542,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3543,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3544,1
    - Dst: TPM_DAASensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3545,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 4
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3547
      start: 3419
    functionDepth: 3
    functionLinenumber: 3419
    functionLinenumberEnd: 3547
    functionName: TPM_DAAJoin_Stage22
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_BN_mask_bits
    - TPM_BN_num_bytes
    - TPM_bn2binMalloc
    - TPM_ComputeDAAScratch
    - TPM_DAADigestContext_GenerateDigestJoin
    - TPM_DAASensitive_Init
    - TPM_ComputeEncrypt
    - TPM_BN_free
    - TPM_DAASensitive_Delete
    - TPM_bin2bn
    - printf
    - TPM_SHA1_BignumGenerate
    - TPM_BN_rshift
    - TPM_BN_new
    - TPM_BN_add
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage22(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3561,1
    - Dst: TPM_DAASensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3562,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3576,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3583,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3584,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3589,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3590,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3596,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3597,1
    - Dst: TPM_BN_new
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3602,1
    - Dst: TPM_BN_add
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3606,1
    - Dst: TPM_BN_add
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3609,1
    - Dst: TPM_SHA1_BignumGenerate
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3613,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3622,1
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3624,1
    - Dst: TPM_ComputeEncrypt
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3629,1
    - Dst: TPM_DAADigestContext_GenerateDigestJoin
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3644,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3648,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3649,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3650,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3651,1
    - Dst: TPM_DAASensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3652,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 4
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3654
      start: 3549
    functionDepth: 3
    functionLinenumber: 3549
    functionLinenumberEnd: 3654
    functionName: TPM_DAAJoin_Stage23
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_bn2binMalloc
    - TPM_DAASensitive_Init
    - TPM_ComputeEncrypt
    - TPM_BN_free
    - TPM_DAASensitive_Delete
    - TPM_bin2bn
    - printf
    - TPM_SHA1_BignumGenerate
    - TPM_DAADigestContext_GenerateDigestJoin
    - TPM_BN_new
    - TPM_BN_add
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage23(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3663,1
    - Dst: TPM_DAASensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3664,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3677,1
    - Dst: TPM_SizedBuffer_SetStructure
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3679,1
    - Dst: TPM_ComputeEncrypt
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3684,1
    - Dst: TPM_DAASensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3692
      start: 3656
    functionDepth: 5
    functionLinenumber: 3656
    functionLinenumberEnd: 3692
    functionName: TPM_DAAJoin_Stage24
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_SetStructure
    - TPM_DAASensitive_Init
    - TPM_ComputeEncrypt
    - TPM_DAASensitive_Delete
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAAJoin_Stage24(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3706,1
    - Dst: TPM_DaaSessions_GetNewHandle
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3719,1
    - Dst: TPM_DAAIssuer_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3728,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3738,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3746,1
    - Dst: TPM_SizedBuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3749,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - daaHandleValid
    - outputData
    - inputData0
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA**
    - TPM_BOOL*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3755
      start: 3694
    functionDepth: 4
    functionLinenumber: 3694
    functionLinenumberEnd: 3755
    functionName: TPM_DAASign_Stage00
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Append32
    - printf
    - TPM_DAAIssuer_Load
    - TPM_DaaSessions_GetNewHandle
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAASign_Stage00(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      **tpm_daa_session_data,\t/* returns entry in\n\t\t\t\t\t\t\t\t\t\t   array */\n\t\t\t
      \      TPM_BOOL *daaHandleValid,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t
      \      TPM_SIZED_BUFFER *inputData0)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3767,1
    - Dst: TPM_DAASensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3769,1
    - Dst: TPM_ComputeDecrypt
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3775,1
    - Dst: TPM_DAATpm_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3786,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3797,1
    - Dst: TPM_DAASensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3806,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3808
      start: 3757
    functionDepth: 5
    functionLinenumber: 3757
    functionLinenumberEnd: 3808
    functionName: TPM_DAASign_Stage01
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_ComputeDecrypt
    - TPM_DAASensitive_Init
    - TPM_DAASensitive_Delete
    - printf
    - TPM_DAATpm_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAASign_Stage01(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3823,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3838,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3839,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3850,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3851,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3861,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3862,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3873,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3877,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3878,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3882,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3883,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3887,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3888,1
    - Dst: TPM_ComputeZxAexpPmodn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3894,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3903,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3914,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3915,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3916,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3917,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3918,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 5
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    - inputData1
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3920
      start: 3810
    functionDepth: 4
    functionLinenumber: 3810
    functionLinenumberEnd: 3920
    functionName: TPM_DAASign_Stage05
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_ComputeZxAexpPmodn
    - TPM_MGF1_GenerateArray
    - TPM_SHA1_Check
    - printf
    - TPM_bin2bn
    - TPM_SizedBuffer_Set
    - TPM_BN_free
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAASign_Stage05(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0,\n\t\t\t       TPM_SIZED_BUFFER *inputData1)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3936,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3953,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3960,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3965,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3972,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3979,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_daa.c:3996,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4004,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4010,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4022,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4030,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4038,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4045,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 5
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    - inputData1
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4052
      start: 3922
    functionDepth: 5
    functionLinenumber: 3922
    functionLinenumberEnd: 4052
    functionName: TPM_DAASign_Stage10
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1
    - TPM_KeyHandleEntries_GetKey
    - printf
    - TPM_Load32
    - TPM_SizedBuffer_Set
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAASign_Stage10(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0,\n\t\t\t       TPM_SIZED_BUFFER *inputData1)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4067,1
    - Dst: TPM_DAASensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4068,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4080,1
    - Dst: TPM_ComputeDecrypt
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4081,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4092,1
    - Dst: TPM_SHA1_SizedBufferCheck
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4093,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4103,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4104,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4115,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4121,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4122,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4126,1
    - Dst: TPM_ComputeApBxC
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4132,1
    - Dst: TPM_BN_mask_bits
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4138,1
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4142,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4149,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4150,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4151,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4152,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4153,1
    - Dst: TPM_DAASensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4154,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 4
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4156
      start: 4054
    functionDepth: 4
    functionLinenumber: 4054
    functionLinenumberEnd: 4156
    functionName: TPM_DAASign_Stage13
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_BN_mask_bits
    - TPM_ComputeDecrypt
    - TPM_SHA1_SizedBufferCheck
    - TPM_bn2binMalloc
    - TPM_MGF1_GenerateArray
    - TPM_DAASensitive_Init
    - TPM_DAASensitive_Delete
    - printf
    - TPM_bin2bn
    - TPM_ComputeApBxC
    - TPM_BN_free
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAASign_Stage13(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4172,1
    - Dst: TPM_DAASensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4174,1
    - Dst: TPM_ComputeDecrypt
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4186,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4197,1
    - Dst: TPM_SHA1_SizedBufferCheck
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4198,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4208,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4209,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4220,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4225,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4226,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4230,1
    - Dst: TPM_ComputeApBxC
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4236,1
    - Dst: TPM_BN_rshift
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4243,1
    - Dst: TPM_ComputeDAAScratch
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4247,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4256,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4257,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4258,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4259,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4260,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4261,1
    - Dst: TPM_DAASensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4262,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 4
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4264
      start: 4158
    functionDepth: 4
    functionLinenumber: 4158
    functionLinenumberEnd: 4264
    functionName: TPM_DAASign_Stage14
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_ComputeDecrypt
    - TPM_SHA1_SizedBufferCheck
    - TPM_ComputeDAAScratch
    - TPM_MGF1_GenerateArray
    - TPM_DAASensitive_Init
    - TPM_DAASensitive_Delete
    - printf
    - TPM_bin2bn
    - TPM_ComputeApBxC
    - TPM_BN_rshift
    - TPM_BN_free
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAASign_Stage14(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4280,1
    - Dst: TPM_DAASensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4281,1
    - Dst: TPM_ComputeDecrypt
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4293,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4304,1
    - Dst: TPM_SHA1_SizedBufferCheck
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4305,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4315,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4316,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4327,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4333,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4334,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4338,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4344,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4345,1
    - Dst: TPM_ComputeApBxCpD
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4351,1
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4363,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4371,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4372,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4373,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4374,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4375,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4376,1
    - Dst: TPM_DAASensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4377,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 4
    argNames:
    - tpm_state
    - tpm_daa_session_data
    - outputData
    - inputData0
    argTypes:
    - tpm_state_t*
    - TPM_DAA_SESSION_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4379
      start: 4266
    functionDepth: 4
    functionLinenumber: 4266
    functionLinenumberEnd: 4379
    functionName: TPM_DAASign_Stage15
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_ComputeDecrypt
    - TPM_SHA1_SizedBufferCheck
    - TPM_bn2binMalloc
    - TPM_MGF1_GenerateArray
    - TPM_DAASensitive_Init
    - TPM_DAASensitive_Delete
    - printf
    - TPM_bin2bn
    - TPM_ComputeApBxCpD
    - TPM_BN_free
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAASign_Stage15(tpm_state_t *tpm_state,\n\t\t\t       TPM_DAA_SESSION_DATA
      *tpm_daa_session_data,\n\t\t\t       TPM_SIZED_BUFFER *outputData,\n\t\t\t       TPM_SIZED_BUFFER
      *inputData0)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4395,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4396,1
    - Dst: TPM_DAATpm_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4399,1
    - Dst: TPM_DAAJoindata_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4403,1
    - Dst: TPM_SHA1Sbuffer
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4407,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - tpm_digest
    - tpm_daa_session_data
    argTypes:
    - TPM_DIGEST
    - TPM_DAA_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4411
      start: 4389
    functionDepth: 5
    functionLinenumber: 4389
    functionLinenumberEnd: 4411
    functionName: TPM_DAADigestContext_GenerateDigestJoin
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 6
    functionsReached:
    - TPM_DAAJoindata_Store
    - TPM_Sbuffer_Delete
    - printf
    - TPM_DAATpm_Store
    - TPM_Sbuffer_Init
    - TPM_SHA1Sbuffer
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_DAADigestContext_GenerateDigestJoin(TPM_DIGEST tpm_digest,\n\t\t\t\t\t\t
      \  TPM_DAA_SESSION_DATA *tpm_daa_session_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4424,1
    - Dst: TPM_DAADigestContext_GenerateDigestJoin
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4426,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4429,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - tpm_daa_session_data
    argTypes:
    - TPM_DAA_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4435
      start: 4419
    functionDepth: 6
    functionLinenumber: 4419
    functionLinenumberEnd: 4435
    functionName: TPM_DAADigestContext_CheckDigestJoin
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Compare
    - printf
    - TPM_DAADigestContext_GenerateDigestJoin
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_DAADigestContext_CheckDigestJoin(TPM_DAA_SESSION_DATA
      *tpm_daa_session_data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4456,1
    - Dst: TPM_BN_new
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4460,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4464,1
    - Dst: htonl
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4465,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4466,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4474,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4475,1
    - Dst: TPM_2bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4483,1
    - Dst: TPM_bin2bn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4489,1
    - Dst: TPM_BN_mod
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4495,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4497,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4498,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - fBignum
    - tpm_daa_session_data
    argTypes:
    - TPM_BIGNUM*
    - TPM_DAA_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4500
      start: 4444
    functionDepth: 2
    functionLinenumber: 4444
    functionLinenumberEnd: 4500
    functionName: TPM_ComputeF
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 5
    functionsReached:
    - TPM_2bin2bn
    - TPM_SHA1
    - TPM_BN_free
    - TPM_BN_mod
    - printf
    - htonl
    - TPM_bin2bn
    - TPM_BN_new
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ComputeF(TPM_BIGNUM *fBignum,\t\t/* freed by caller
      */\n\t\t\tTPM_DAA_SESSION_DATA *tpm_daa_session_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4518,1
    - Dst: TPM_BN_new
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4520,1
    - Dst: TPM_BN_mod_exp
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4523,1
    - Dst: TPM_ComputeDAAScratch
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - DAA_scratch
    - DAA_scratch_size
    - rBignum
    - aBignum
    - pBignum
    - nBignum
    argTypes:
    - BYTE*
    - uint32_t
    - TPM_BIGNUM*
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4531
      start: 4509
    functionDepth: 1
    functionLinenumber: 4509
    functionLinenumberEnd: 4531
    functionName: TPM_ComputeAexpPmodn
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 5
    functionsReached:
    - TPM_BN_new
    - printf
    - TPM_BN_mod_exp
    - TPM_ComputeDAAScratch
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ComputeAexpPmodn(BYTE *DAA_scratch,\n\t\t\t\tuint32_t
      DAA_scratch_size,\n\t\t\t\tTPM_BIGNUM *rBignum,\t/* freed by caller */\n\t\t\t\tTPM_BIGNUM
      aBignum,\n\t\t\t\tTPM_BIGNUM pBignum,\n\t\t\t\tTPM_BIGNUM nBignum)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4547,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4549,1
    - Dst: TPM_ComputeAexpPmodn
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4550,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4558,1
    - Dst: TPM_BN_mod_mul
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4559,1
    - Dst: TPM_ComputeDAAScratch
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4563,1
    - Dst: TPM_BN_free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - DAA_scratch
    - DAA_scratch_size
    - zBignum
    - aBignum
    - pBignum
    - nBignum
    argTypes:
    - BYTE*
    - uint32_t
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4567
      start: 4537
    functionDepth: 2
    functionLinenumber: 4537
    functionLinenumberEnd: 4567
    functionName: TPM_ComputeZxAexpPmodn
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 7
    functionsReached:
    - TPM_ComputeDAAScratch
    - TPM_ComputeAexpPmodn
    - printf
    - TPM_BN_free
    - TPM_BN_mod_mul
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ComputeZxAexpPmodn(BYTE *DAA_scratch,\n\t\t\t\t  uint32_t
      DAA_scratch_size,\n\t\t\t\t  TPM_BIGNUM zBignum,\n\t\t\t\t  TPM_BIGNUM aBignum,\n\t\t\t\t
      \ TPM_BIGNUM pBignum,\n\t\t\t\t  TPM_BIGNUM nBignum)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4580,1
    - Dst: TPM_BN_new
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4582,1
    - Dst: TPM_BN_mod_add
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - rBignum
    - aBignum
    - bBignum
    - nBignum
    argTypes:
    - TPM_BIGNUM*
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4588
      start: 4573
    functionDepth: 1
    functionLinenumber: 4573
    functionLinenumberEnd: 4588
    functionName: TPM_ComputeApBmodn
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_BN_new
    - printf
    - TPM_BN_mod_add
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ComputeApBmodn(TPM_BIGNUM *rBignum, /* freed by caller
      */\n\t\t\t      TPM_BIGNUM aBignum,\n\t\t\t      TPM_BIGNUM bBignum,\n\t\t\t
      \     TPM_BIGNUM nBignum)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4601,1
    - Dst: TPM_BN_new
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4603,1
    - Dst: TPM_BN_mul
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4607,1
    - Dst: TPM_BN_add
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - rBignum
    - aBignum
    - bBignum
    - cBignum
    argTypes:
    - TPM_BIGNUM*
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4614
      start: 4594
    functionDepth: 1
    functionLinenumber: 4594
    functionLinenumberEnd: 4614
    functionName: TPM_ComputeApBxC
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 6
    functionsReached:
    - TPM_BN_new
    - TPM_BN_add
    - printf
    - TPM_BN_mul
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ComputeApBxC(TPM_BIGNUM *rBignum,\t/* freed by caller
      */\n\t\t\t    TPM_BIGNUM aBignum,\n\t\t\t    TPM_BIGNUM bBignum,\n\t\t\t    TPM_BIGNUM
      cBignum)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4627,1
    - Dst: TPM_ComputeApBxC
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4630,1
    - Dst: TPM_BN_add
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - rBignum
    - aBignum
    - bBignum
    - cBignum
    - dBignum
    argTypes:
    - TPM_BIGNUM*
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4640
      start: 4620
    functionDepth: 2
    functionLinenumber: 4620
    functionLinenumberEnd: 4640
    functionName: TPM_ComputeApBxCpD
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 2
    functionsReached:
    - TPM_BN_add
    - printf
    - TPM_ComputeApBxC
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ComputeApBxCpD(TPM_BIGNUM *rBignum, /* freed by caller
      */\n\t\t\t      TPM_BIGNUM aBignum,\n\t\t\t      TPM_BIGNUM bBignum,\n\t\t\t
      \     TPM_BIGNUM cBignum,\n\t\t\t      TPM_BIGNUM dBignum)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4652,1
    - Dst: TPM_bn2binArray
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - DAA_scratch
    - DAA_scratch_size
    - bn
    argTypes:
    - BYTE*
    - uint32_t
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4657
      start: 4646
    functionDepth: 2
    functionLinenumber: 4646
    functionLinenumberEnd: 4657
    functionName: TPM_ComputeDAAScratch
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 6
    functionsReached:
    - TPM_bn2binArray
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ComputeDAAScratch(BYTE *DAA_scratch,\n\t\t\t\t uint32_t
      DAA_scratch_size,\n\t\t\t\t TPM_BIGNUM bn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4675,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4680,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4683,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4684,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - out
    - outSize
    - in
    - inSize
    argTypes:
    - unsigned char**
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4687
      start: 4666
    functionDepth: 2
    functionLinenumber: 4666
    functionLinenumberEnd: 4687
    functionName: TPM_ComputeEnlarge
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_Malloc
    - printf
    - memcpy
    - memset
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ComputeEnlarge(unsigned char **out,\t/* freed by caller
      */\n\t\t\t      uint32_t outSize,\n\t\t\t      unsigned char *in,\n\t\t\t      uint32_t
      inSize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ComputeEnlarge
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4704,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4710,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - tpm_sized_buffer
    - size
    argTypes:
    - TPM_SIZED_BUFFER*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4718
      start: 4694
    functionDepth: 3
    functionLinenumber: 4694
    functionLinenumberEnd: 4718
    functionName: TPM_SizedBuffer_ComputeEnlarge
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 1
    functionsReached:
    - TPM_ComputeEnlarge
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SizedBuffer_ComputeEnlarge(TPM_SIZED_BUFFER *tpm_sized_buffer,
      uint32_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4736,1
    - Dst: TPM_DAABlob_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4737,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4738,1
    - Dst: TPM_DAASensitive_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4742,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4746,1
    - Dst: TPM_SymmetricKeyData_EncryptSbuffer
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4749,1
    - Dst: TPM_HMAC_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4756,1
    - Dst: TPM_SizedBuffer_SetStructure
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4764,1
    - Dst: TPM_DAABlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4767,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - outputData
    - tpm_state
    - tpm_daa_sensitive
    - resourceType
    argTypes:
    - TPM_SIZED_BUFFER*
    - tpm_state_t*
    - TPM_DAA_SENSITIVE*
    - TPM_RESOURCE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4770
      start: 4727
    functionDepth: 5
    functionLinenumber: 4727
    functionLinenumberEnd: 4770
    functionName: TPM_ComputeEncrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 3
    functionsReached:
    - TPM_SizedBuffer_SetStructure
    - TPM_SymmetricKeyData_EncryptSbuffer
    - TPM_Sbuffer_Delete
    - TPM_DAASensitive_Store
    - TPM_HMAC_GenerateStructure
    - printf
    - TPM_Sbuffer_Init
    - TPM_DAABlob_Init
    - TPM_DAABlob_Delete
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ComputeEncrypt(TPM_SIZED_BUFFER *outputData,\n\t\t\t
      \     tpm_state_t *tpm_state,\n\t\t\t      TPM_DAA_SENSITIVE *tpm_daa_sensitive,\n\t\t\t
      \     TPM_RESOURCE_TYPE resourceType)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4794,1
    - Dst: TPM_DAABlob_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4795,1
    - Dst: TPM_DAABlob_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4801,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4805,1
    - Dst: TPM_HMAC_CheckStructure
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4811,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4820,1
    - Dst: TPM_SymmetricKeyData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4826,1
    - Dst: TPM_DAASensitive_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4836,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4840,1
    - Dst: TPM_DAABlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4844,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4845,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 4
    argNames:
    - tpm_daa_sensitive
    - tpm_state
    - inputData
    - resourceType
    argTypes:
    - TPM_DAA_SENSITIVE*
    - tpm_state_t*
    - TPM_SIZED_BUFFER*
    - TPM_RESOURCE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4847
      start: 4781
    functionDepth: 4
    functionLinenumber: 4781
    functionLinenumberEnd: 4847
    functionName: TPM_ComputeDecrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 4
    functionsReached:
    - TPM_SymmetricKeyData_Decrypt
    - TPM_DAABlob_Load
    - TPM_HMAC_CheckStructure
    - printf
    - TPM_DAASensitive_Load
    - free
    - TPM_DAABlob_Init
    - TPM_DAABlob_Delete
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ComputeDecrypt(TPM_DAA_SENSITIVE *tpm_daa_sensitive,\n\t\t\t
      \     tpm_state_t *tpm_state,\n\t\t\t      TPM_SIZED_BUFFER *inputData,\n\t\t\t
      \     TPM_RESOURCE_TYPE resourceType)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPM_bn2binMalloc
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4864,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4867,1
    - Dst: TPM_ComputeEnlarge
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4871,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4875,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4882,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4887,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4888,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - tpm_digest
    - bn
    - size
    argTypes:
    - TPM_DIGEST
    - TPM_BIGNUM
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4890
      start: 4854
    functionDepth: 3
    functionLinenumber: 4854
    functionLinenumberEnd: 4890
    functionName: TPM_SHA1_BignumGenerate
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 2
    functionsReached:
    - TPM_SHA1
    - TPM_bn2binMalloc
    - TPM_ComputeEnlarge
    - printf
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SHA1_BignumGenerate(TPM_DIGEST tpm_digest,\n\t\t\t\t
      \  TPM_BIGNUM bn,\n\t\t\t\t   uint32_t size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4905,1
    - Dst: TPM_SizedBuffer_ComputeEnlarge
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4909,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4913,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - tpm_digest
    - tpm_sized_buffer
    - size
    argTypes:
    - TPM_DIGEST
    - TPM_SIZED_BUFFER*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4918
      start: 4898
    functionDepth: 4
    functionLinenumber: 4898
    functionLinenumberEnd: 4918
    functionName: TPM_SHA1_SizedBufferCheck
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 3
    functionsReached:
    - TPM_SizedBuffer_ComputeEnlarge
    - TPM_SHA1_Check
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SHA1_SizedBufferCheck(TPM_DIGEST tpm_digest,\n\t\t\t\t
      \    TPM_SIZED_BUFFER *tpm_sized_buffer,\n\t\t\t\t     uint32_t size)"
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4975,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4976,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4977,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4978,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4984,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4990,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4991,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:4994,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5001,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5005,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5011,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5023,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5027,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5031,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5040,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5054,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5066,1
    - Dst: TPM_DaaSessions_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5082,1
    - Dst: TPM_DaaSessionData_CheckStage
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5090,1
    - Dst: TPM_DAADigestContext_CheckDigestJoin
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5097,1
    - Dst: TPM_SHA1_CheckStructure
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5105,1
    - Dst: TPM_DAAJoin_Stage00
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5115,1
    - Dst: TPM_DAAJoin_Stage01
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5126,1
    - Dst: TPM_DAAJoin_Stage02
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5131,1
    - Dst: TPM_DAAJoin_Stage03
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5136,1
    - Dst: TPM_DAAJoin_Stage04
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5141,1
    - Dst: TPM_DAAJoin_Stage05
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5146,1
    - Dst: TPM_DAAJoin_Stage06
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5151,1
    - Dst: TPM_DAAJoin_Stage07
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5156,1
    - Dst: TPM_DAAJoin_Stage08
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5161,1
    - Dst: TPM_DAAJoin_Stage09_Sign_Stage2
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5166,1
    - Dst: TPM_DAAJoin_Stage10_Sign_Stage3
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5171,1
    - Dst: TPM_DAAJoin_Stage11_Sign_Stage4
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5176,1
    - Dst: TPM_DAAJoin_Stage12
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5181,1
    - Dst: TPM_DAAJoin_Stage13_Sign_Stage6
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5186,1
    - Dst: TPM_DAAJoin_Stage14_Sign_Stage7
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5191,1
    - Dst: TPM_DAAJoin_Stage15_Sign_Stage8
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5196,1
    - Dst: TPM_DAAJoin_Stage16_Sign_Stage9
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5201,1
    - Dst: TPM_DAAJoin_Stage17_Sign_Stage11
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5206,1
    - Dst: TPM_DAAJoin_Stage18_Sign_Stage12
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5211,1
    - Dst: TPM_DAAJoin_Stage19
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5216,1
    - Dst: TPM_DAAJoin_Stage20
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5221,1
    - Dst: TPM_DAAJoin_Stage21
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5226,1
    - Dst: TPM_DAAJoin_Stage22
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5231,1
    - Dst: TPM_DAAJoin_Stage23
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5236,1
    - Dst: TPM_DAAJoin_Stage24
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5242,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5247,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5263,1
    - Dst: TPM_DaaSessionData_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5265,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5276,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5278,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5286,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5292,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5304,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5313,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5320,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5327,1
    - Dst: TPM_DaaSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5331,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5337,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5338,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5339,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 198
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5341
      start: 4933
    functionDepth: 7
    functionLinenumber: 4933
    functionLinenumberEnd: 5341
    functionName: TPM_Process_DAAJoin
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_DAAJoin_Stage16_Sign_Stage9
    - TPM_DAAJoin_Stage24
    - TPM_CheckRequestTag1
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_SizedBuffer_Store
    - TPM_DAAJoin_Stage01
    - TPM_DAAJoin_Stage12
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_DAADigestContext_CheckDigestJoin
    - TPM_SHA1_CheckStructure
    - TPM_DAAJoin_Stage19
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_DAAJoin_Stage07
    - TPM_DAAJoin_Stage06
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_DAAJoin_Stage02
    - TPM_DAAJoin_Stage05
    - TPM_DAAJoin_Stage21
    - TPM_DAAJoin_Stage10_Sign_Stage3
    - TPM_DaaSessionData_CheckStage
    - TPM_DAAJoin_Stage00
    - TPM_SizedBuffer_Init
    - TPM_DAAJoin_Stage17_Sign_Stage11
    - TPM_SizedBuffer_Delete
    - TPM_DaaSessions_TerminateHandle
    - TPM_DAAJoin_Stage03
    - TPM_DAAJoin_Stage23
    - TPM_DAAJoin_Stage13_Sign_Stage6
    - TPM_DAAJoin_Stage22
    - TPM_DAAJoin_Stage11_Sign_Stage4
    - printf
    - TPM_DAAJoin_Stage20
    - TPM_DaaSessionData_Delete
    - TPM_Load8
    - TPM_DAAJoin_Stage09_Sign_Stage2
    - TPM_ProcessAudit
    - TPM_DAAJoin_Stage15_Sign_Stage8
    - TPM_AuthParams_Set
    - TPM_AuthParams_Get
    - TPM_DAAJoin_Stage04
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_DAAJoin_Stage18_Sign_Stage12
    - TPM_DAAJoin_Stage14_Sign_Stage7
    - TPM_DAAJoin_Stage08
    - TPM_DaaSessions_GetEntry
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_DAAJoin(tpm_state_t *tpm_state,\n\t\t\t       TPM_STORE_BUFFER
      *response,\n\t\t\t       TPM_TAG tag,\n\t\t\t       uint32_t paramSize,\t\t/*
      of remaining parameters*/\n\t\t\t       TPM_COMMAND_CODE ordinal,\n\t\t\t       unsigned
      char *command,\n\t\t\t       TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5393,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5394,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5395,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5396,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5402,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5408,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5409,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5412,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5419,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5423,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5429,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5441,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5445,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5449,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5458,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5472,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5484,1
    - Dst: TPM_DaaSessions_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5500,1
    - Dst: TPM_DaaSessionData_CheckStage
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5508,1
    - Dst: TPM_SHA1_CheckStructure
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5516,1
    - Dst: TPM_SHA1_CheckStructure
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5527,1
    - Dst: TPM_DAASign_Stage00
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5537,1
    - Dst: TPM_DAASign_Stage01
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5549,1
    - Dst: TPM_DAAJoin_Stage09_Sign_Stage2
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5555,1
    - Dst: TPM_DAAJoin_Stage10_Sign_Stage3
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5561,1
    - Dst: TPM_DAAJoin_Stage11_Sign_Stage4
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5567,1
    - Dst: TPM_DAASign_Stage05
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5573,1
    - Dst: TPM_DAAJoin_Stage13_Sign_Stage6
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5579,1
    - Dst: TPM_DAAJoin_Stage14_Sign_Stage7
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5585,1
    - Dst: TPM_DAAJoin_Stage15_Sign_Stage8
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5591,1
    - Dst: TPM_DAAJoin_Stage16_Sign_Stage9
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5597,1
    - Dst: TPM_DAASign_Stage10
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5603,1
    - Dst: TPM_DAAJoin_Stage17_Sign_Stage11
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5609,1
    - Dst: TPM_DAAJoin_Stage18_Sign_Stage12
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5614,1
    - Dst: TPM_DAASign_Stage13
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5619,1
    - Dst: TPM_DAASign_Stage14
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5625,1
    - Dst: TPM_DAASign_Stage15
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5631,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5637,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5651,1
    - Dst: TPM_DaaSessionData_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5653,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5664,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5666,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5674,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5680,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5692,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5701,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5708,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5715,1
    - Dst: TPM_DaaSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5719,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5725,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5726,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_daa.c:5727,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 169
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5729
      start: 5351
    functionDepth: 6
    functionLinenumber: 5351
    functionLinenumberEnd: 5729
    functionName: TPM_Process_DAASign
    functionSourceFile: /src/libtpms/src/tpm12/tpm_daa.c
    functionUses: 0
    functionsReached:
    - TPM_DAASign_Stage00
    - TPM_DAAJoin_Stage16_Sign_Stage9
    - TPM_CheckRequestTag1
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_SizedBuffer_Store
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_SHA1_CheckStructure
    - TPM_DAASign_Stage01
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_DAAJoin_Stage10_Sign_Stage3
    - TPM_DaaSessionData_CheckStage
    - TPM_SizedBuffer_Init
    - TPM_DAAJoin_Stage17_Sign_Stage11
    - TPM_DAASign_Stage13
    - TPM_SizedBuffer_Delete
    - TPM_DaaSessions_TerminateHandle
    - TPM_DAAJoin_Stage13_Sign_Stage6
    - TPM_DAAJoin_Stage11_Sign_Stage4
    - TPM_DAASign_Stage10
    - printf
    - TPM_DAASign_Stage05
    - TPM_DaaSessionData_Delete
    - TPM_DAAJoin_Stage09_Sign_Stage2
    - TPM_Load8
    - TPM_ProcessAudit
    - TPM_DAAJoin_Stage15_Sign_Stage8
    - TPM_DAASign_Stage15
    - TPM_AuthParams_Set
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_DAASign_Stage14
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_DAAJoin_Stage18_Sign_Stage12
    - TPM_DAAJoin_Stage14_Sign_Stage7
    - TPM_DaaSessions_GetEntry
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_DAASign(tpm_state_t *tpm_state,\n\t\t\t       TPM_STORE_BUFFER
      *response,\n\t\t\t       TPM_TAG tag,\n\t\t\t       uint32_t paramSize,\t\t/*
      of remaining parameters*/\n\t\t\t       TPM_COMMAND_CODE ordinal,\n\t\t\t       unsigned
      char *command,\n\t\t\t       TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ver.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tpm_struct_ver
    argTypes:
    - TPM_STRUCT_VER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: TPM_StructVer_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ver.c
    functionUses: 5
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_StructVer_Init(TPM_STRUCT_VER *tpm_struct_ver)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ver.c:97,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_ver.c:99,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_ver.c:102,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_ver.c:105,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_ver.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - tpm_struct_ver
    - stream
    - stream_size
    argTypes:
    - TPM_STRUCT_VER*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 111
    functionName: TPM_StructVer_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ver.c
    functionUses: 4
    functionsReached:
    - printf
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StructVer_Load(TPM_STRUCT_VER *tpm_struct_ver,\n                              unsigned
      char **stream,\n                              uint32_t *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ver.c:125,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_ver.c:127,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_ver.c:130,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_ver.c:133,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_ver.c:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_struct_ver
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_STRUCT_VER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 139
    functionName: TPM_StructVer_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ver.c
    functionUses: 5
    functionsReached:
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StructVer_Store(TPM_STORE_BUFFER *sbuffer,\n                               const
      TPM_STRUCT_VER *tpm_struct_ver)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ver.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - tpm_struct_ver_dest
    - tpm_struct_ver_src
    argTypes:
    - TPM_STRUCT_VER*
    - TPM_STRUCT_VER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: TPM_StructVer_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ver.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_StructVer_Copy(TPM_STRUCT_VER *tpm_struct_ver_dest,\n                        TPM_STRUCT_VER
      *tpm_struct_ver_src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ver.c:160,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ver.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - tpm_struct_ver
    argTypes:
    - TPM_STRUCT_VER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: TPM_StructVer_CheckVer
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ver.c
    functionUses: 5
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_StructVer_CheckVer(TPM_STRUCT_VER *tpm_struct_ver)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ver.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tpm_version
    argTypes:
    - TPM_VERSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 188
    functionName: TPM_Version_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ver.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_Version_Init(TPM_VERSION *tpm_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ver.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - tpm_version
    - tpm_permanent_data
    argTypes:
    - TPM_VERSION*
    - TPM_PERMANENT_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 205
    functionName: TPM_Version_Set
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ver.c
    functionUses: 3
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_Version_Set(TPM_VERSION *tpm_version,\n                     TPM_PERMANENT_DATA
      *tpm_permanent_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ver.c:223,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_ver.c:226,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_ver.c:230,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_ver.c:234,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_ver.c:238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - tpm_version
    - stream
    - stream_size
    argTypes:
    - TPM_VERSION*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 241
    functionName: TPM_Version_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ver.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Version_Load(TPM_VERSION *tpm_version,\n                            unsigned
      char **stream,\n                            uint32_t *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ver.c:255,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_ver.c:258,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_ver.c:262,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_ver.c:266,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_ver.c:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_version
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_VERSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 249
    functionDepth: 3
    functionLinenumber: 249
    functionLinenumberEnd: 273
    functionName: TPM_Version_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ver.c
    functionUses: 3
    functionsReached:
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Version_Store(TPM_STORE_BUFFER *sbuffer,\n                             const
      TPM_VERSION *tpm_version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:104,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:109,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:110,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:111,1
    - Dst: TPM_DelegatePublic_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tpm_auth_session_data
    argTypes:
    - TPM_AUTH_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 115
    functionName: TPM_AuthSessionData_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_DelegatePublic_Init
    - TPM_Secret_Init
    - TPM_Nonce_Init
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_AuthSessionData_Init(TPM_AUTH_SESSION_DATA *tpm_auth_session_data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:133,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:136,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_session.c:140,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_session.c:144,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_session.c:148,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:152,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:156,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:160,1
    - Dst: TPM_DelegatePublic_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:164,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - tpm_auth_session_data
    - stream
    - stream_size
    argTypes:
    - TPM_AUTH_SESSION_DATA*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 171
    functionName: TPM_AuthSessionData_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - TPM_Digest_Load
    - TPM_Loadn
    - TPM_Nonce_Load
    - printf
    - TPM_Load32
    - TPM_DelegatePublic_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuthSessionData_Load(TPM_AUTH_SESSION_DATA *tpm_auth_session_data,\n\t\t\t\t
      \   unsigned char **stream,\n\t\t\t\t    uint32_t *stream_size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:184,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_session.c:187,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_session.c:191,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_session.c:195,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_session.c:199,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:203,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:207,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:211,1
    - Dst: TPM_DelegatePublic_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - sbuffer
    - tpm_auth_session_data
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_AUTH_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 179
    functionDepth: 5
    functionLinenumber: 179
    functionLinenumberEnd: 218
    functionName: TPM_AuthSessionData_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_DelegatePublic_Store
    - TPM_Sbuffer_Append16
    - TPM_Sbuffer_Append
    - printf
    - TPM_Digest_Store
    - TPM_Nonce_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuthSessionData_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \    const TPM_AUTH_SESSION_DATA *tpm_auth_session_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:231,1
    - Dst: TPM_DelegatePublic_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:233,1
    - Dst: TPM_AuthSessionData_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_auth_session_data
    argTypes:
    - TPM_AUTH_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 237
    functionName: TPM_AuthSessionData_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_AuthSessionData_Init
    - printf
    - TPM_DelegatePublic_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_AuthSessionData_Delete(TPM_AUTH_SESSION_DATA *tpm_auth_session_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:253,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:254,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:255,1
    - Dst: TPM_DelegatePublic_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - dest_auth_session_data
    - tpm_handle
    - src_auth_session_data
    argTypes:
    - TPM_AUTH_SESSION_DATA*
    - TPM_HANDLE
    - TPM_AUTH_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 260
    functionName: TPM_AuthSessionData_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_Nonce_Copy
    - TPM_Secret_Copy
    - TPM_Digest_Copy
    - TPM_DelegatePublic_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuthSessionData_Copy(TPM_AUTH_SESSION_DATA *dest_auth_session_data,//
      libtpms changed\n\t\t\t\t    TPM_HANDLE tpm_handle,\n\t\t\t\t    TPM_AUTH_SESSION_DATA
      *src_auth_session_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - delegatePublic
    - auth_session_data
    argTypes:
    - TPM_DELEGATE_PUBLIC**
    - TPM_AUTH_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: TPM_AuthSessionData_GetDelegatePublic
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 5
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuthSessionData_GetDelegatePublic(TPM_DELEGATE_PUBLIC
      **delegatePublic,\t\n\t\t\t\t\t\t TPM_AUTH_SESSION_DATA *auth_session_data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:285,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - adipEncScheme
    - FIPS
    argTypes:
    - TPM_ADIP_ENC_SCHEME
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 302
    functionName: TPM_AuthSessionData_CheckEncScheme
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuthSessionData_CheckEncScheme(TPM_ADIP_ENC_SCHEME
      adipEncScheme,\n\t\t\t\t\t      TPM_BOOL FIPS)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:323,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:328,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_session.c:341,1
    - Dst: TPM_Digest_XOR
      Src: /src/libtpms/src/tpm12/tpm_session.c:348,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_session.c:355,1
    - Dst: TPM_Digest_XOR
      Src: /src/libtpms/src/tpm12/tpm_session.c:362,1
    - Dst: TPM_SymmetricKeyData_CtrCrypt
      Src: /src/libtpms/src/tpm12/tpm_session.c:378,1
    - Dst: TPM_SymmetricKeyData_CtrCrypt
      Src: /src/libtpms/src/tpm12/tpm_session.c:392,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:405,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 7
    argNames:
    - a1Even
    - a1Odd
    - encAuthEven
    - tpm_auth_session_data
    - nonceOdd
    - encAuthOdd
    - odd
    argTypes:
    - TPM_DIGEST
    - TPM_DIGEST
    - TPM_ENCAUTH
    - TPM_AUTH_SESSION_DATA*
    - TPM_NONCE
    - TPM_ENCAUTH
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 412
    functionName: TPM_AuthSessionData_Decrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 8
    functionsReached:
    - TPM_SHA1
    - printf
    - TPM_Digest_XOR
    - TPM_SymmetricKeyData_CtrCrypt
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuthSessionData_Decrypt(TPM_DIGEST a1Even,\n\t\t\t\t
      \      TPM_DIGEST a1Odd,\n\t\t\t\t       TPM_ENCAUTH encAuthEven,\n\t\t\t\t
      \      TPM_AUTH_SESSION_DATA *tpm_auth_session_data,\n\t\t\t\t       TPM_NONCE
      nonceOdd,\n\t\t\t\t       TPM_ENCAUTH encAuthOdd,\n\t\t\t\t       TPM_BOOL odd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:422,1
    - Dst: TPM_AuthSessionData_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - authSessions
    argTypes:
    - TPM_AUTH_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 418
    functionDepth: 4
    functionLinenumber: 418
    functionLinenumberEnd: 427
    functionName: TPM_AuthSessions_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_AuthSessionData_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_AuthSessions_Init(TPM_AUTH_SESSION_DATA *authSessions)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:447,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:450,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:455,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:461,1
    - Dst: TPM_AuthSessionData_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:464,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - authSessions
    - stream
    - stream_size
    argTypes:
    - TPM_AUTH_SESSION_DATA*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 439
    functionDepth: 5
    functionLinenumber: 439
    functionLinenumberEnd: 467
    functionName: TPM_AuthSessions_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Load32
    - TPM_AuthSessionData_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuthSessions_Load(TPM_AUTH_SESSION_DATA *authSessions,\n\t\t\t\t
      unsigned char **stream,\n\t\t\t\t uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_AuthSessions_GetSpace
      Src: /src/libtpms/src/tpm12/tpm_session.c:485,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:487,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_session.c:488,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:493,1
    - Dst: TPM_AuthSessionData_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - sbuffer
    - authSessions
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_AUTH_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 475
    functionDepth: 6
    functionLinenumber: 475
    functionLinenumberEnd: 498
    functionName: TPM_AuthSessions_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_AuthSessionData_Store
    - TPM_Sbuffer_Append32
    - printf
    - TPM_AuthSessions_GetSpace
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuthSessions_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \ TPM_AUTH_SESSION_DATA *authSessions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:508,1
    - Dst: TPM_AuthSessionData_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - authSessions
    argTypes:
    - TPM_AUTH_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 504
    functionDepth: 5
    functionLinenumber: 504
    functionLinenumberEnd: 513
    functionName: TPM_AuthSessions_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_AuthSessionData_Delete
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_AuthSessions_Delete(TPM_AUTH_SESSION_DATA *authSessions)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:524,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - isSpace
    - index
    - authSessions
    argTypes:
    - TPM_BOOL*
    - uint32_t*
    - TPM_AUTH_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 533
    functionName: TPM_AuthSessions_IsSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_AuthSessions_IsSpace(TPM_BOOL *isSpace,\n\t\t\t      uint32_t
      *index,\n\t\t\t      TPM_AUTH_SESSION_DATA *authSessions)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - authSessions
    argTypes:
    - TPM_AUTH_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 545
    functionName: TPM_AuthSessions_Trace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_AuthSessions_Trace(TPM_AUTH_SESSION_DATA *authSessions)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - space
    - authSessions
    argTypes:
    - uint32_t*
    - TPM_AUTH_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 563
    functionName: TPM_AuthSessions_GetSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_AuthSessions_GetSpace(uint32_t *space,\n\t\t\t       TPM_AUTH_SESSION_DATA
      *authSessions)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:578,1
    - Dst: TPM_AuthSessions_GetSpace
      Src: /src/libtpms/src/tpm12/tpm_session.c:581,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_session.c:583,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_session.c:587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - authSessions
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_AUTH_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 571
    functionDepth: 4
    functionLinenumber: 571
    functionLinenumberEnd: 591
    functionName: TPM_AuthSessions_StoreHandles
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    - TPM_AuthSessions_GetSpace
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuthSessions_StoreHandles(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t\t
      TPM_AUTH_SESSION_DATA *authSessions)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:611,1
    - Dst: TPM_AuthSessions_IsSpace
      Src: /src/libtpms/src/tpm12/tpm_session.c:614,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:616,1
    - Dst: TPM_AuthSessions_Trace
      Src: /src/libtpms/src/tpm12/tpm_session.c:617,1
    - Dst: TPM_Handle_GenerateHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:622,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - tpm_auth_session_data
    - authHandle
    - authSessions
    argTypes:
    - TPM_AUTH_SESSION_DATA**
    - TPM_AUTHHANDLE*
    - TPM_AUTH_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 636
    functionName: TPM_AuthSessions_GetNewHandle
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_Handle_GenerateHandle
    - TPM_AuthSessions_IsSpace
    - printf
    - TPM_AuthSessions_Trace
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuthSessions_GetNewHandle(TPM_AUTH_SESSION_DATA **tpm_auth_session_data,\n\t\t\t\t\t
      TPM_AUTHHANDLE *authHandle,\n\t\t\t\t\t TPM_AUTH_SESSION_DATA *authSessions)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:656,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:665,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - tpm_auth_session_data
    - authSessions
    - authHandle
    argTypes:
    - TPM_AUTH_SESSION_DATA**
    - TPM_AUTH_SESSION_DATA*
    - TPM_AUTHHANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 670
    functionName: TPM_AuthSessions_GetEntry
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuthSessions_GetEntry(TPM_AUTH_SESSION_DATA **tpm_auth_session_data,
      /* session for\n\t\t\t\t\t\t\t\t\t\t       authHandle */\n\t\t\t\t     TPM_AUTH_SESSION_DATA
      *authSessions, /* points to first session\n\t\t\t\t\t\t\t\t\t     */\n\t\t\t\t
      \    TPM_AUTHHANDLE authHandle)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:689,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:694,1
    - Dst: TPM_AuthSessions_IsSpace
      Src: /src/libtpms/src/tpm12/tpm_session.c:700,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:702,1
    - Dst: TPM_AuthSessions_Trace
      Src: /src/libtpms/src/tpm12/tpm_session.c:703,1
    - Dst: TPM_Handle_GenerateHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:708,1
    - Dst: TPM_AuthSessionData_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:715,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:717,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - tpm_handle
    - keepHandle
    - authSessions
    - tpm_auth_session_data
    argTypes:
    - TPM_HANDLE*
    - TPM_BOOL
    - TPM_AUTH_SESSION_DATA*
    - TPM_AUTH_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 680
    functionDepth: 4
    functionLinenumber: 680
    functionLinenumberEnd: 721
    functionName: TPM_AuthSessions_AddEntry
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_AuthSessions_Trace
    - TPM_AuthSessionData_Copy
    - TPM_AuthSessions_IsSpace
    - printf
    - TPM_Handle_GenerateHandle
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuthSessions_AddEntry(TPM_HANDLE *tpm_handle,\t\t\t\t/*
      i/o */\n\t\t\t\t     TPM_BOOL keepHandle,\t\t\t\t/* input */\n\t\t\t\t     TPM_AUTH_SESSION_DATA
      *authSessions,\t\t/* input */\n\t\t\t\t     TPM_AUTH_SESSION_DATA *tpm_auth_session_data)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:768,1
    - Dst: TPM_AuthSessions_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:770,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:774,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:785,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:795,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:802,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:812,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:827,1
    - Dst: TPM_DelegateTable_GetValidRow
      Src: /src/libtpms/src/tpm12/tpm_session.c:833,1
    - Dst: TPM_Delegations_CheckPermission
      Src: /src/libtpms/src/tpm12/tpm_session.c:842,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_session.c:862,1
    - Dst: TPM_Delegations_CheckPermission
      Src: /src/libtpms/src/tpm12/tpm_session.c:868,1
    - Dst: TPM_Key_CheckRestrictDelegate
      Src: /src/libtpms/src/tpm12/tpm_session.c:875,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:886,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 80
    argCount: 10
    argNames:
    - tpm_auth_session_data
    - hmacKey
    - tpm_state
    - authHandle
    - protocolID
    - entityType
    - ordinal
    - tpmKey
    - entityAuth
    - entityDigest
    argTypes:
    - TPM_AUTH_SESSION_DATA**
    - TPM_SECRET**
    - tpm_state_t*
    - TPM_AUTHHANDLE
    - TPM_PROTOCOL_ID
    - TPM_ENT_TYPE
    - TPM_COMMAND_CODE
    - TPM_KEY*
    - TPM_SECRET*
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 753
    functionDepth: 4
    functionLinenumber: 753
    functionLinenumberEnd: 893
    functionName: TPM_AuthSessions_GetData
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 59
    functionsReached:
    - TPM_Digest_Compare
    - TPM_AuthSessions_GetEntry
    - TPM_Key_CheckRestrictDelegate
    - printf
    - TPM_Delegations_CheckPermission
    - TPM_DelegateTable_GetValidRow
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuthSessions_GetData(TPM_AUTH_SESSION_DATA **tpm_auth_session_data,
      /* session for\n\t\t\t\t\t\t\t\t\t\t      authHandle */\n\t\t\t\t    TPM_SECRET
      **hmacKey,\t\t\t/* output */\n\t\t\t\t    tpm_state_t *tpm_state,\t/* input
      */\n\t\t\t\t    TPM_AUTHHANDLE authHandle,\t/* input */\n\t\t\t\t    TPM_PROTOCOL_ID
      protocolID, /* input: required protocol */\n\t\t\t\t    TPM_ENT_TYPE entityType,\t/*
      input: entity type */\n\t\t\t\t    TPM_COMMAND_CODE ordinal,\t/* input: for
      delegation */\n\t\t\t\t    TPM_KEY *tpmKey,\t     /* input, for delegate restrictions
      */\n\t\t\t\t    TPM_SECRET *entityAuth,\t/* input OIAP hmac key */\n\t\t\t\t
      \   TPM_DIGEST entityDigest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:905,1
    - Dst: TPM_AuthSessions_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:908,1
    - Dst: TPM_AuthSessionData_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:912,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - authSessions
    - authHandle
    argTypes:
    - TPM_AUTH_SESSION_DATA*
    - TPM_AUTHHANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 899
    functionDepth: 5
    functionLinenumber: 899
    functionLinenumberEnd: 915
    functionName: TPM_AuthSessions_TerminateHandle
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 59
    functionsReached:
    - TPM_AuthSessions_GetEntry
    - printf
    - TPM_AuthSessionData_Delete
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_AuthSessions_TerminateHandle(TPM_AUTH_SESSION_DATA
      *authSessions,\n\t\t\t\t\t    TPM_AUTHHANDLE authHandle)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:937,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_session.c:950,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:957,1
    - Dst: TPM_AuthSessionData_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:963,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 5
    argNames:
    - continueAuthSession
    - authHandle
    - authSessions
    - entityType
    - entityDigest
    argTypes:
    - TPM_BOOL*
    - TPM_AUTHHANDLE
    - TPM_AUTH_SESSION_DATA*
    - TPM_ENT_TYPE
    - TPM_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 927
    functionDepth: 5
    functionLinenumber: 927
    functionLinenumberEnd: 967
    functionName: TPM_AuthSessions_TerminateEntity
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 6
    functionsReached:
    - TPM_Digest_Compare
    - TPM_AuthSessionData_Delete
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_AuthSessions_TerminateEntity(TPM_BOOL *continueAuthSession,\n\t\t\t\t
      \     TPM_AUTHHANDLE authHandle,\n\t\t\t\t      TPM_AUTH_SESSION_DATA *authSessions,\n\t\t\t\t
      \     TPM_ENT_TYPE entityType,\n\t\t\t\t      TPM_DIGEST *entityDigest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:987,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:995,1
    - Dst: TPM_AuthSessionData_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:997,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - continueAuthSession
    - authHandle
    - authSessions
    argTypes:
    - TPM_BOOL*
    - TPM_AUTHHANDLE
    - TPM_AUTH_SESSION_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 981
    functionDepth: 5
    functionLinenumber: 981
    functionLinenumberEnd: 1001
    functionName: TPM_AuthSessions_TerminatexSAP
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 3
    functionsReached:
    - TPM_AuthSessionData_Delete
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_AuthSessions_TerminatexSAP(TPM_BOOL *continueAuthSession,\n\t\t\t\t
      \   TPM_AUTHHANDLE authHandle,\n\t\t\t\t    TPM_AUTH_SESSION_DATA *authSessions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - contextList
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1025
    functionName: TPM_ContextList_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_ContextList_Init(uint32_t *contextList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1043,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:1045,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - contextList
    - stream
    - stream_size
    argTypes:
    - uint32_t*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1036
    functionDepth: 2
    functionLinenumber: 1036
    functionLinenumberEnd: 1048
    functionName: TPM_ContextList_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ContextList_Load(uint32_t *contextList,\n\t\t\t\tunsigned
      char **stream,\n\t\t\t\tuint32_t *stream_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1062,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_session.c:1064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sbuffer
    - contextList
    argTypes:
    - TPM_STORE_BUFFER*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1056
    functionDepth: 4
    functionLinenumber: 1056
    functionLinenumberEnd: 1067
    functionName: TPM_ContextList_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ContextList_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      const uint32_t *contextList)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1080,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - space
    - entry
    - contextList
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1090
    functionName: TPM_ContextList_GetSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_ContextList_GetSpace(uint32_t *space,\n\t\t\t      uint32_t
      *entry,\n\t\t\t      const uint32_t *contextList)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1102,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1105,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - entry
    - contextList
    - value
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1121
    functionName: TPM_ContextList_GetEntry
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ContextList_GetEntry(uint32_t *entry,\n\t\t\t\t    const
      uint32_t *contextList,\n\t\t\t\t    uint32_t value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1136,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_session.c:1146,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_session.c:1150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - sbuffer
    - contextList
    argTypes:
    - TPM_STORE_BUFFER*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1129
    functionDepth: 4
    functionLinenumber: 1129
    functionLinenumberEnd: 1154
    functionName: TPM_ContextList_StoreHandles
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ContextList_StoreHandles(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t\tconst
      uint32_t *contextList)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1169,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_session.c:1172,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:1174,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:1175,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tpm_context_blob
    argTypes:
    - TPM_CONTEXT_BLOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1167
    functionDepth: 2
    functionLinenumber: 1167
    functionLinenumberEnd: 1178
    functionName: TPM_ContextBlob_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - printf
    - TPM_Digest_Init
    - memset
    linkageType: ''
    returnType: void
    signature: void TPM_ContextBlob_Init(TPM_CONTEXT_BLOB *tpm_context_blob)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1196,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_session.c:1199,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:1203,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:1207,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_session.c:1211,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:1215,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:1219,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:1223,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:1227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - tpm_context_blob
    - stream
    - stream_size
    argTypes:
    - TPM_CONTEXT_BLOB*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1190
    functionDepth: 3
    functionLinenumber: 1190
    functionLinenumberEnd: 1230
    functionName: TPM_ContextBlob_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Load
    - TPM_CheckTag
    - TPM_Loadn
    - printf
    - TPM_Load32
    - TPM_SizedBuffer_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ContextBlob_Load(TPM_CONTEXT_BLOB *tpm_context_blob,\n\t\t\t\tunsigned
      char **stream,\n\t\t\t\tuint32_t *stream_size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1243,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_session.c:1246,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_session.c:1250,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_session.c:1254,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_session.c:1258,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_session.c:1262,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:1266,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:1270,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:1274,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - sbuffer
    - tpm_context_blob
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_CONTEXT_BLOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1238
    functionDepth: 4
    functionLinenumber: 1238
    functionLinenumberEnd: 1277
    functionName: TPM_ContextBlob_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append16
    - TPM_SizedBuffer_Store
    - printf
    - TPM_Digest_Store
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ContextBlob_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      const TPM_CONTEXT_BLOB *tpm_context_blob)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1290,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:1292,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:1293,1
    - Dst: TPM_ContextBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:1294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tpm_context_blob
    argTypes:
    - TPM_CONTEXT_BLOB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1288
    functionDepth: 3
    functionLinenumber: 1288
    functionLinenumberEnd: 1297
    functionName: TPM_ContextBlob_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Delete
    - TPM_ContextBlob_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_ContextBlob_Delete(TPM_CONTEXT_BLOB *tpm_context_blob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1312,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:1313,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpm_context_sensitive
    argTypes:
    - TPM_CONTEXT_SENSITIVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1310
    functionDepth: 1
    functionLinenumber: 1310
    functionLinenumberEnd: 1316
    functionName: TPM_ContextSensitive_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_Nonce_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_ContextSensitive_Init(TPM_CONTEXT_SENSITIVE *tpm_context_sensitive)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1334,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_session.c:1337,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:1341,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:1345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tpm_context_sensitive
    - stream
    - stream_size
    argTypes:
    - TPM_CONTEXT_SENSITIVE*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1328
    functionDepth: 3
    functionLinenumber: 1328
    functionLinenumberEnd: 1348
    functionName: TPM_ContextSensitive_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_Nonce_Load
    - printf
    - TPM_SizedBuffer_Load
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ContextSensitive_Load(TPM_CONTEXT_SENSITIVE *tpm_context_sensitive,\n\t\t\t\t
      \    unsigned char **stream,\n\t\t\t\t     uint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1361,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_session.c:1364,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:1368,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:1372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - tpm_context_sensitive
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_CONTEXT_SENSITIVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1356
    functionDepth: 4
    functionLinenumber: 1356
    functionLinenumberEnd: 1375
    functionName: TPM_ContextSensitive_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_Nonce_Store
    - printf
    - TPM_Sbuffer_Append16
    - TPM_SizedBuffer_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_ContextSensitive_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \     const TPM_CONTEXT_SENSITIVE *tpm_context_sensitive)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1388,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:1390,1
    - Dst: TPM_ContextSensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:1391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_context_sensitive
    argTypes:
    - TPM_CONTEXT_SENSITIVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1386
    functionDepth: 2
    functionLinenumber: 1386
    functionLinenumberEnd: 1394
    functionName: TPM_ContextSensitive_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Delete
    - printf
    - TPM_ContextSensitive_Init
    linkageType: ''
    returnType: void
    signature: void TPM_ContextSensitive_Delete(TPM_CONTEXT_SENSITIVE *tpm_context_sensitive)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1431,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:1441,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_session.c:1453,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_session.c:1458,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1462,1
    - Dst: TPM_AuthSessions_GetNewHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:1475,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1481,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_session.c:1487,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1497,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:1499,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_session.c:1509,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:1513,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:1517,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_session.c:1528,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:1535,1
    - Dst: TPM_AuthSessionData_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:1539,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1405
    functionDepth: 5
    functionLinenumber: 1405
    functionLinenumberEnd: 1542
    functionName: TPM_Process_OIAP
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_AuthSessionData_Delete
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Nonce_Generate
    - TPM_AuthSessions_GetNewHandle
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_Nonce_Store
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_OIAP(tpm_state_t *tpm_state,\n\t\t\t    TPM_STORE_BUFFER
      *response,\n\t\t\t    TPM_TAG tag,\n\t\t\t    uint32_t paramSize,\n\t\t\t    TPM_COMMAND_CODE
      ordinal,\n\t\t\t    unsigned char *command,\n\t\t\t    TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1613,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_session.c:1623,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1627,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:1628,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1632,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:1633,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:1637,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_session.c:1649,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_session.c:1655,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1659,1
    - Dst: TPM_AuthSessions_GetNewHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:1670,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1675,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_session.c:1683,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_session.c:1691,1
    - Dst: TPM_AuthSessionData_CheckEncScheme
      Src: /src/libtpms/src/tpm12/tpm_session.c:1695,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1707,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1715,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_session.c:1718,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_session.c:1730,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1739,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1743,1
    - Dst: TPM_OSAPDelegate
      Src: /src/libtpms/src/tpm12/tpm_session.c:1756,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1767,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_session.c:1769,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1775,1
    - Dst: TPM_Counters_GetCounterValue
      Src: /src/libtpms/src/tpm12/tpm_session.c:1778,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1793,1
    - Dst: TPM_NVIndexEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:1794,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1807,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:1819,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_session.c:1820,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_session.c:1821,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_session.c:1822,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_session.c:1823,1
    - Dst: TPM_HMAC_Generate
      Src: /src/libtpms/src/tpm12/tpm_session.c:1824,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_session.c:1831,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:1864,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:1866,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_session.c:1876,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:1880,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:1884,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:1888,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_session.c:1899,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:1906,1
    - Dst: TPM_AuthSessionData_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:1910,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 148
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1571
    functionDepth: 5
    functionLinenumber: 1571
    functionLinenumberEnd: 1916
    functionName: TPM_Process_OSAP
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_AuthSessionData_CheckEncScheme
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Nonce_Generate
    - TPM_AuthSessions_GetNewHandle
    - TPM_Nonce_Store
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_NVIndexEntries_GetEntry
    - TPM_Digest_Copy
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_Load16
    - TPM_PrintFour
    - TPM_CheckRequestTag0
    - printf
    - TPM_ProcessAudit
    - TPM_AuthSessionData_Delete
    - TPM_KeyHandleEntries_GetKey
    - TPM_Counters_GetCounterValue
    - TPM_OSAPDelegate
    - TPM_Nonce_Load
    - TPM_CheckState
    - TPM_Load32
    - TPM_HMAC_Generate
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_OSAP(tpm_state_t *tpm_state,\n\t\t\t    TPM_STORE_BUFFER
      *response,\n\t\t\t    TPM_TAG tag,\n\t\t\t    uint32_t paramSize,\n\t\t\t    TPM_COMMAND_CODE
      ordinal,\n\t\t\t    unsigned char *command,\n\t\t\t    TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2022,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:2023,1
    - Dst: TPM_DelegateOwnerBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:2024,1
    - Dst: TPM_DelegateKeyBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:2025,1
    - Dst: TPM_DelegateSensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:2026,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_session.c:2032,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2036,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:2037,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2041,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:2042,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:2048,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:2054,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_session.c:2066,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_session.c:2072,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2076,1
    - Dst: TPM_DelegateOwnerBlob_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:2095,1
    - Dst: TPM_FamilyTable_GetEnabledEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:2107,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2114,1
    - Dst: TPM_HMAC_CheckStructure
      Src: /src/libtpms/src/tpm12/tpm_session.c:2125,1
    - Dst: TPM_DelegateSensitive_DecryptEncData
      Src: /src/libtpms/src/tpm12/tpm_session.c:2138,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:2152,1
    - Dst: TPM_DelegateTable_GetValidRow
      Src: /src/libtpms/src/tpm12/tpm_session.c:2157,1
    - Dst: TPM_FamilyTable_GetEnabledEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:2169,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2176,1
    - Dst: TPM_DelegateKeyBlob_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:2188,1
    - Dst: TPM_FamilyTable_GetEnabledEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:2199,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2206,1
    - Dst: TPM_HMAC_CheckStructure
      Src: /src/libtpms/src/tpm12/tpm_session.c:2217,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_session.c:2228,1
    - Dst: TPM_SHA1_CheckStructure
      Src: /src/libtpms/src/tpm12/tpm_session.c:2237,1
    - Dst: TPM_DelegateSensitive_DecryptEncData
      Src: /src/libtpms/src/tpm12/tpm_session.c:2248,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2260,1
    - Dst: TPM_AuthSessions_GetNewHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:2268,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2273,1
    - Dst: TPM_AuthSessionData_CheckEncScheme
      Src: /src/libtpms/src/tpm12/tpm_session.c:2281,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:2289,1
    - Dst: TPM_DelegatePublic_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:2292,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:2298,1
    - Dst: TPM_DelegatePublic_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:2302,1
    - Dst: TPM_DelegatePublic_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:2306,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_session.c:2311,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_session.c:2312,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_session.c:2319,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_session.c:2320,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_session.c:2321,1
    - Dst: TPM_HMAC_Generate
      Src: /src/libtpms/src/tpm12/tpm_session.c:2322,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2333,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:2335,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_session.c:2345,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:2349,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:2353,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:2357,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_session.c:2368,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:2375,1
    - Dst: TPM_AuthSessionData_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:2379,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:2384,1
    - Dst: TPM_DelegateOwnerBlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:2385,1
    - Dst: TPM_DelegateKeyBlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:2386,1
    - Dst: TPM_DelegateSensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:2387,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 187
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2389
      start: 1970
    functionDepth: 6
    functionLinenumber: 1970
    functionLinenumberEnd: 2389
    functionName: TPM_Process_DSAP
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_DelegateOwnerBlob_Delete
    - TPM_DelegateKeyBlob_Delete
    - TPM_DelegatePublic_Copy
    - TPM_AuthSessionData_CheckEncScheme
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_HMAC_CheckStructure
    - TPM_Nonce_Generate
    - TPM_AuthSessions_GetNewHandle
    - TPM_DelegateTable_GetValidRow
    - TPM_Nonce_Store
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_DelegateSensitive_Delete
    - TPM_SHA1_CheckStructure
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_DelegateKeyBlob_Init
    - TPM_DelegateOwnerBlob_Load
    - TPM_Digest_Copy
    - TPM_GetOutParamDigest
    - TPM_DelegateSensitive_DecryptEncData
    - TPM_DelegateKeyBlob_Load
    - TPM_Load16
    - TPM_SizedBuffer_Init
    - TPM_SizedBuffer_Delete
    - TPM_PrintFour
    - TPM_CheckRequestTag0
    - printf
    - TPM_DelegateOwnerBlob_Init
    - TPM_FamilyTable_GetEnabledEntry
    - TPM_ProcessAudit
    - TPM_AuthSessionData_Delete
    - TPM_KeyHandleEntries_GetKey
    - TPM_Nonce_Load
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_DelegateSensitive_Init
    - TPM_HMAC_Generate
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_DSAP(tpm_state_t *tpm_state,\n\t\t\t    TPM_STORE_BUFFER
      *response,\n\t\t\t    TPM_TAG tag,\n\t\t\t    uint32_t paramSize,\n\t\t\t    TPM_COMMAND_CODE
      ordinal,\n\t\t\t    unsigned char *command,\n\t\t\t    TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2411,1
    - Dst: TPM_DelegateTable_GetValidRow
      Src: /src/libtpms/src/tpm12/tpm_session.c:2416,1
    - Dst: TPM_FamilyTable_GetEnabledEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:2425,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2432,1
    - Dst: TPM_DelegatePublic_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:2446,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - entityDigest
    - authData
    - authSession
    - tpm_state
    - delegateRowIndex
    argTypes:
    - TPM_DIGEST**
    - TPM_SECRET**
    - TPM_AUTH_SESSION_DATA*
    - tpm_state_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2450
      start: 2401
    functionDepth: 3
    functionLinenumber: 2401
    functionLinenumberEnd: 2450
    functionName: TPM_OSAPDelegate
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 1
    functionsReached:
    - TPM_DelegateTable_GetValidRow
    - printf
    - TPM_FamilyTable_GetEnabledEntry
    - TPM_DelegatePublic_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_OSAPDelegate(TPM_DIGEST **entityDigest,\n\t\t\t\t   TPM_SECRET
      **authData,\n\t\t\t\t   TPM_AUTH_SESSION_DATA *authSession,\n\t\t\t\t   tpm_state_t
      *tpm_state,\n\t\t\t\t   uint32_t delegateRowIndex)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2507,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_session.c:2515,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2519,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:2520,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2523,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:2529,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_session.c:2541,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_session.c:2545,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2549,1
    - Dst: TPM_DelegateTable_GetValidRow
      Src: /src/libtpms/src/tpm12/tpm_session.c:2569,1
    - Dst: TPM_FamilyTable_GetEnabledEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:2580,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2587,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2596,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2606,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2611,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2620,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:2622,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:2634,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_session.c:2645,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:2652,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 75
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2658
      start: 2476
    functionDepth: 5
    functionLinenumber: 2476
    functionLinenumberEnd: 2658
    functionName: TPM_Process_SetOwnerPointer
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_GetOutParamDigest
    - TPM_DelegateTable_GetValidRow
    - TPM_FamilyTable_GetEnabledEntry
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_SetOwnerPointer(tpm_state_t *tpm_state,\n\t\t\t\t
      \      TPM_STORE_BUFFER *response,\n\t\t\t\t       TPM_TAG tag,\n\t\t\t\t       uint32_t
      paramSize,\n\t\t\t\t       TPM_COMMAND_CODE ordinal,\n\t\t\t\t       unsigned
      char *command,\n\t\t\t\t       TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2698,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:2704,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:2712,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_session.c:2724,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_session.c:2729,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2733,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2743,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:2744,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2752,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:2754,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:2766,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_session.c:2777,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:2784,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2787
      start: 2672
    functionDepth: 6
    functionLinenumber: 2672
    functionLinenumberEnd: 2787
    functionName: TPM_Process_TerminateHandle
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_AuthSessions_TerminateHandle
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_TerminateHandle(tpm_state_t *tpm_state,\n\t\t\t\t
      \      TPM_STORE_BUFFER *response,\n\t\t\t\t       TPM_TAG tag,\n\t\t\t\t       uint32_t
      paramSize,\n\t\t\t\t       TPM_COMMAND_CODE ordinal,\n\t\t\t\t       unsigned
      char *command,\n\t\t\t\t       TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2825,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:2831,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2837,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:2838,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:2844,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_session.c:2856,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_session.c:2861,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2865,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2878,1
    - Dst: TPM_ContextList_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:2882,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2889,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2905,1
    - Dst: TPM_KeyHandleEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:2906,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2912,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2920,1
    - Dst: TPM_KeyHandleEntry_FlushSpecific
      Src: /src/libtpms/src/tpm12/tpm_session.c:2927,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2938,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:2940,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2950,1
    - Dst: TPM_TransportSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:2951,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2963,1
    - Dst: TPM_DaaSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:2964,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2969,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:2979,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:2981,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:2993,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_session.c:3004,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:3011,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 96
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3014
      start: 2796
    functionDepth: 6
    functionLinenumber: 2796
    functionLinenumberEnd: 3014
    functionName: TPM_Process_FlushSpecific
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_TransportSessions_TerminateHandle
    - TPM_GetInParamDigest
    - TPM_ContextList_GetEntry
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_DaaSessions_TerminateHandle
    - TPM_CheckRequestTag0
    - TPM_KeyHandleEntries_GetEntry
    - TPM_AuthSessions_TerminateHandle
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckState
    - printf
    - TPM_Load32
    - TPM_GetOutParamDigest
    - TPM_KeyHandleEntry_FlushSpecific
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_FlushSpecific(tpm_state_t *tpm_state,\n\t\t\t\t
      \    TPM_STORE_BUFFER *response,\n\t\t\t\t     TPM_TAG tag,\n\t\t\t\t     uint32_t
      paramSize,\n\t\t\t\t     TPM_COMMAND_CODE ordinal,\n\t\t\t\t     unsigned char
      *command,\n\t\t\t\t     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3069,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:3070,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:3071,1
    - Dst: TPM_ContextBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:3072,1
    - Dst: TPM_ContextSensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:3073,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:3074,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:3080,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3086,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:3087,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3091,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_session.c:3092,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_session.c:3095,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:3101,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_session.c:3113,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_session.c:3117,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3121,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3141,1
    - Dst: TPM_KeyHandleEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:3143,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3149,1
    - Dst: TPM_AuthSessions_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:3150,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3156,1
    - Dst: TPM_TransportSessions_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:3157,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3163,1
    - Dst: TPM_DaaSessions_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:3164,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3169,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3174,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3180,1
    - Dst: TPM_Nonce_IsZero
      Src: /src/libtpms/src/tpm12/tpm_session.c:3185,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_session.c:3189,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3198,1
    - Dst: TPM_Nonce_IsZero
      Src: /src/libtpms/src/tpm12/tpm_session.c:3207,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_session.c:3210,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3220,1
    - Dst: TPM_KeyHandleEntry_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:3230,1
    - Dst: TPM_AuthSessionData_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:3233,1
    - Dst: TPM_TransportInternal_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:3236,1
    - Dst: TPM_DaaSessionData_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:3239,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3242,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3252,1
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:3254,1
    - Dst: TPM_SizedBuffer_SetFromStore
      Src: /src/libtpms/src/tpm12/tpm_session.c:3256,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3261,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_session.c:3271,1
    - Dst: TPM_ContextSensitive_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:3287,1
    - Dst: TPM_SizedBuffer_SetFromStore
      Src: /src/libtpms/src/tpm12/tpm_session.c:3291,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3301,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3306,1
    - Dst: TPM_ContextList_GetSpace
      Src: /src/libtpms/src/tpm12/tpm_session.c:3323,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3325,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:3342,1
    - Dst: TPM_TransportSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:3346,1
    - Dst: TPM_DaaSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:3352,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3356,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3369,1
    - Dst: TPM_HMAC_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_session.c:3370,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:3382,1
    - Dst: TPM_SymmetricKeyData_EncryptSbuffer
      Src: /src/libtpms/src/tpm12/tpm_session.c:3383,1
    - Dst: TPM_ContextBlob_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:3393,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3400,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:3402,1
    - Dst: TPM_Sbuffer_AppendAsSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_session.c:3410,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:3416,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_session.c:3427,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:3434,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:3439,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:3440,1
    - Dst: TPM_ContextBlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:3441,1
    - Dst: TPM_ContextSensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:3442,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:3443,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 215
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3445
      start: 3026
    functionDepth: 8
    functionLinenumber: 3026
    functionLinenumberEnd: 3445
    functionName: TPM_Process_SaveContext
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_Loadn
    - TPM_Nonce_IsZero
    - TPM_Nonce_Generate
    - TPM_ContextSensitive_Store
    - TPM_ContextBlob_Init
    - TPM_SizedBuffer_SetFromStore
    - TPM_Sbuffer_Init
    - TPM_Sbuffer_AppendAsSizedBuffer
    - TPM_ContextBlob_Delete
    - TPM_TransportInternal_Store
    - TPM_GetInParamDigest
    - TPM_DaaSessionData_Store
    - TPM_ContextList_GetSpace
    - TPM_KeyHandleEntries_GetEntry
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_GetOutParamDigest
    - TPM_Nonce_Copy
    - TPM_AuthSessions_GetEntry
    - TPM_TransportSessions_TerminateHandle
    - TPM_ContextSensitive_Init
    - memcpy
    - TPM_SizedBuffer_Delete
    - TPM_AuthSessionData_Store
    - TPM_PrintFour
    - TPM_DaaSessions_TerminateHandle
    - TPM_CheckRequestTag0
    - printf
    - TPM_KeyHandleEntry_Store
    - TPM_TransportSessions_GetEntry
    - TPM_ProcessAudit
    - TPM_SymmetricKeyData_EncryptSbuffer
    - TPM_ContextSensitive_Delete
    - TPM_Sbuffer_Delete
    - TPM_HMAC_GenerateStructure
    - TPM_ContextBlob_Store
    - TPM_CheckState
    - TPM_Load32
    - TPM_DaaSessions_GetEntry
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_SaveContext(tpm_state_t *tpm_state,\n\t\t\t\t
      \  TPM_STORE_BUFFER *response,\n\t\t\t\t   TPM_TAG tag,\n\t\t\t\t   uint32_t
      paramSize,\n\t\t\t\t   TPM_COMMAND_CODE ordinal,\n\t\t\t\t   unsigned char *command,\n\t\t\t\t
      \  TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3499,1
    - Dst: TPM_ContextBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:3500,1
    - Dst: TPM_KeyHandleEntry_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:3501,1
    - Dst: TPM_ContextSensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:3503,1
    - Dst: TPM_AuthSessionData_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:3504,1
    - Dst: TPM_TransportInternal_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:3505,1
    - Dst: TPM_DaaSessionData_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:3506,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:3512,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3518,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_session.c:3519,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3523,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:3524,1
    - Dst: TPM_ContextBlob_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:3528,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:3534,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_session.c:3546,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_session.c:3550,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3554,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3568,1
    - Dst: TPM_SymmetricKeyData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_session.c:3569,1
    - Dst: TPM_ContextSensitive_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:3582,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3586,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3591,1
    - Dst: TPM_KeyHandleEntry_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:3592,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3595,1
    - Dst: TPM_AuthSessionData_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:3596,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3597,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3601,1
    - Dst: TPM_TransportInternal_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:3602,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3606,1
    - Dst: TPM_DaaSessionData_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:3607,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3608,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3612,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3620,1
    - Dst: TPM_Nonce_Compare
      Src: /src/libtpms/src/tpm12/tpm_session.c:3626,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3629,1
    - Dst: TPM_LoadContext_CheckKeyLoaded
      Src: /src/libtpms/src/tpm12/tpm_session.c:3645,1
    - Dst: TPM_LoadContext_CheckOwnerLoaded
      Src: /src/libtpms/src/tpm12/tpm_session.c:3650,1
    - Dst: TPM_LoadContext_CheckSrkLoaded
      Src: /src/libtpms/src/tpm12/tpm_session.c:3654,1
    - Dst: TPM_LoadContext_CheckCounterLoaded
      Src: /src/libtpms/src/tpm12/tpm_session.c:3658,1
    - Dst: TPM_LoadContext_CheckNvLoaded
      Src: /src/libtpms/src/tpm12/tpm_session.c:3663,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3668,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_session.c:3674,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3677,1
    - Dst: TPM_Nonce_Compare
      Src: /src/libtpms/src/tpm12/tpm_session.c:3698,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3701,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3710,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_session.c:3716,1
    - Dst: TPM_HMAC_CheckStructure
      Src: /src/libtpms/src/tpm12/tpm_session.c:3721,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3730,1
    - Dst: TPM_ContextList_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:3735,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3747,1
    - Dst: TPM_KeyHandleEntries_AddEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:3750,1
    - Dst: TPM_AuthSessions_AddEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:3757,1
    - Dst: TPM_TransportSessions_AddEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:3764,1
    - Dst: TPM_DaaSessions_AddEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:3771,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3778,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3789,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:3791,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_session.c:3797,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:3805,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_session.c:3816,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:3823,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:3830,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_session.c:3831,1
    - Dst: TPM_KeyHandleEntries_DeleteHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:3835,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:3839,1
    - Dst: TPM_TransportSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:3842,1
    - Dst: TPM_DaaSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:3847,1
    - Dst: TPM_ContextBlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:3850,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_session.c:3851,1
    - Dst: TPM_ContextSensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:3852,1
    - Dst: TPM_AuthSessionData_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:3853,1
    - Dst: TPM_TransportInternal_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:3854,1
    - Dst: TPM_DaaSessionData_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:3855,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 215
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3857
      start: 3452
    functionDepth: 6
    functionLinenumber: 3452
    functionLinenumberEnd: 3857
    functionName: TPM_Process_LoadContext
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_ContextList_GetEntry
    - TPM_KeyHandleEntry_Init
    - TPM_TransportSessions_AddEntry
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessionData_Init
    - TPM_HMAC_CheckStructure
    - TPM_AuthSessions_TerminateHandle
    - TPM_SizedBuffer_Set
    - TPM_TransportInternal_Load
    - TPM_ContextBlob_Init
    - TPM_KeyHandleEntries_DeleteHandle
    - TPM_ContextBlob_Delete
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_LoadContext_CheckCounterLoaded
    - TPM_LoadBool
    - TPM_KeyHandleEntries_AddEntry
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_ContextSensitive_Load
    - TPM_LoadContext_CheckOwnerLoaded
    - TPM_TransportInternal_Init
    - TPM_GetOutParamDigest
    - TPM_ContextBlob_Load
    - TPM_DaaSessions_AddEntry
    - TPM_LoadContext_CheckNvLoaded
    - TPM_Digest_Compare
    - TPM_TransportSessions_TerminateHandle
    - TPM_SymmetricKeyData_Decrypt
    - TPM_ContextSensitive_Init
    - TPM_Nonce_Compare
    - TPM_LoadContext_CheckSrkLoaded
    - TPM_DaaSessions_TerminateHandle
    - TPM_CheckRequestTag0
    - TPM_AuthSessions_AddEntry
    - TPM_Key_Delete
    - TPM_TransportInternal_Delete
    - printf
    - TPM_AuthSessionData_Load
    - TPM_DaaSessionData_Delete
    - TPM_ProcessAudit
    - TPM_LoadContext_CheckKeyLoaded
    - TPM_KeyHandleEntry_Load
    - TPM_AuthSessionData_Delete
    - TPM_DaaSessionData_Init
    - TPM_ContextSensitive_Delete
    - TPM_CheckState
    - TPM_Load32
    - TPM_DaaSessionData_Load
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_LoadContext(tpm_state_t *tpm_state,\n\t\t\t\t
      \  TPM_STORE_BUFFER *response,\n\t\t\t\t   TPM_TAG tag,\n\t\t\t\t   uint32_t
      paramSize,\n\t\t\t\t   TPM_COMMAND_CODE ordinal,\n\t\t\t\t   unsigned char *command,\n\t\t\t\t
      \  TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3872,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:3877,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3881,1
    - Dst: TPM_KeyHandleEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:3887,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:3891,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3894,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - tpm_state
    - entityHandle
    - entityDigest
    argTypes:
    - tpm_state_t*
    - TPM_HANDLE
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3900
      start: 3865
    functionDepth: 2
    functionLinenumber: 3865
    functionLinenumberEnd: 3900
    functionName: TPM_LoadContext_CheckKeyLoaded
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 1
    functionsReached:
    - TPM_KeyHandleEntries_GetEntry
    - printf
    - TPM_Digest_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_LoadContext_CheckKeyLoaded(tpm_state_t *tpm_state,\n\t\t\t\t\t\t
      TPM_HANDLE entityHandle,\n\t\t\t\t\t\t TPM_DIGEST entityDigest)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3916,1
    - Dst: TPM_KeyHandleEntries_GetNextEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:3922,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_session.c:3929,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_session.c:3935,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3941,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - tpm_state
    - entityDigest
    argTypes:
    - tpm_state_t*
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3946
      start: 3908
    functionDepth: 4
    functionLinenumber: 3908
    functionLinenumberEnd: 3946
    functionName: TPM_LoadContext_CheckKeyLoadedByDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_Digest_Compare
    - printf
    - TPM_KeyHandleEntries_GetNextEntry
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_LoadContext_CheckKeyLoadedByDigest(tpm_state_t *tpm_state,\n\t\t\t\t\t\t\t
      TPM_DIGEST entityDigest)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3958,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3962,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:3967,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - tpm_state
    - entityDigest
    argTypes:
    - tpm_state_t*
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3970
      start: 3953
    functionDepth: 2
    functionLinenumber: 3953
    functionLinenumberEnd: 3970
    functionName: TPM_LoadContext_CheckOwnerLoaded
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Digest_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_LoadContext_CheckOwnerLoaded(tpm_state_t *tpm_state,\n\t\t\t\t\t\t
      \  TPM_DIGEST entityDigest)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3982,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:3986,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:3991,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - tpm_state
    - entityDigest
    argTypes:
    - tpm_state_t*
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3995
      start: 3977
    functionDepth: 2
    functionLinenumber: 3977
    functionLinenumberEnd: 3995
    functionName: TPM_LoadContext_CheckSrkLoaded
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Digest_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_LoadContext_CheckSrkLoaded(tpm_state_t *tpm_state,\n\t\t\t\t\t\t
      TPM_DIGEST entityDigest)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4010,1
    - Dst: TPM_Counters_GetCounterValue
      Src: /src/libtpms/src/tpm12/tpm_session.c:4012,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4016,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:4021,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - tpm_state
    - entityHandle
    - entityDigest
    argTypes:
    - tpm_state_t*
    - TPM_HANDLE
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4024
      start: 4003
    functionDepth: 3
    functionLinenumber: 4003
    functionLinenumberEnd: 4024
    functionName: TPM_LoadContext_CheckCounterLoaded
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 1
    functionsReached:
    - TPM_Counters_GetCounterValue
    - printf
    - TPM_Digest_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_LoadContext_CheckCounterLoaded(tpm_state_t *tpm_state,\n\t\t\t\t\t\t
      \    TPM_HANDLE entityHandle,\n\t\t\t\t\t\t     TPM_DIGEST entityDigest)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4038,1
    - Dst: TPM_NVIndexEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:4040,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4044,1
    - Dst: TPM_Digest_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:4049,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - tpm_state
    - entityHandle
    - entityDigest
    argTypes:
    - tpm_state_t*
    - TPM_HANDLE
    - TPM_DIGEST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4052
      start: 4030
    functionDepth: 2
    functionLinenumber: 4030
    functionLinenumberEnd: 4052
    functionName: TPM_LoadContext_CheckNvLoaded
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 1
    functionsReached:
    - TPM_NVIndexEntries_GetEntry
    - printf
    - TPM_Digest_Copy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_LoadContext_CheckNvLoaded(tpm_state_t *tpm_state,\n\t\t\t\t\t\tTPM_HANDLE
      entityHandle,\n\t\t\t\t\t\tTPM_DIGEST entityDigest)"
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4117,1
    - Dst: TPM_Pubkey_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:4118,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:4124,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4130,1
    - Dst: TPM_Pubkey_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:4131,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:4135,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_session.c:4139,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4142,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:4148,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_session.c:4160,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_session.c:4164,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_session.c:4168,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4177,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_session.c:4193,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_session.c:4205,1
    - Dst: TPM_KeyHandleEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:4217,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4221,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4234,1
    - Dst: TPM_Key_ComparePubkey
      Src: /src/libtpms/src/tpm12/tpm_session.c:4244,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4246,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4260,1
    - Dst: TPM_KeyHandleEntries_IsEvictSpace
      Src: /src/libtpms/src/tpm12/tpm_session.c:4266,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4270,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4280,1
    - Dst: TPM_KeyHandleEntries_OwnerEvictGetCount
      Src: /src/libtpms/src/tpm12/tpm_session.c:4287,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4294,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_session.c:4306,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4312,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4318,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_session.c:4325,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4331,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4336,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4346,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:4348,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:4360,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_session.c:4371,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_session.c:4380,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:4387,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:4394,1
    - Dst: TPM_Pubkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:4399,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 151
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4401
      start: 4075
    functionDepth: 6
    functionLinenumber: 4075
    functionLinenumberEnd: 4401
    functionName: TPM_Process_KeyControlOwner
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentAll_NVStore
    - TPM_CheckRequestTag1
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Key_ComparePubkey
    - TPM_KeyHandleEntries_IsEvictSpace
    - TPM_AuthSessions_TerminateHandle
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Pubkey_Init
    - TPM_KeyHandleEntries_GetEntry
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Pubkey_Load
    - printf
    - TPM_KeyHandleEntries_OwnerEvictGetCount
    - TPM_Load8
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Pubkey_Delete
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_KeyControlOwner(tpm_state_t *tpm_state,\n\t\t\t\t
      \      TPM_STORE_BUFFER *response,\n\t\t\t\t       TPM_TAG tag,\n\t\t\t\t       uint32_t
      paramSize,\n\t\t\t\t       TPM_COMMAND_CODE ordinal,\n\t\t\t\t       unsigned
      char *command,\n\t\t\t\t       TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4449,1
    - Dst: TPM_ContextSensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:4450,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:4451,1
    - Dst: TPM_ContextBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:4452,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:4453,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:4459,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:4467,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_session.c:4479,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_session.c:4483,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4487,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4515,1
    - Dst: TPM_KeyHandleEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:4516,1
    - Dst: TPM_Nonce_IsZero
      Src: /src/libtpms/src/tpm12/tpm_session.c:4523,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_session.c:4526,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4534,1
    - Dst: TPM_SizedBuffer_SetStructure
      Src: /src/libtpms/src/tpm12/tpm_session.c:4535,1
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:4541,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4543,1
    - Dst: TPM_ContextSensitive_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:4550,1
    - Dst: TPM_SizedBuffer_SetFromStore
      Src: /src/libtpms/src/tpm12/tpm_session.c:4554,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4562,1
    - Dst: TPM_HMAC_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_session.c:4563,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:4574,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4575,1
    - Dst: TPM_SymmetricKeyData_EncryptSbuffer
      Src: /src/libtpms/src/tpm12/tpm_session.c:4577,1
    - Dst: TPM_ContextBlob_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:4583,1
    - Dst: TPM_KeyHandleEntry_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:4589,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4596,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:4598,1
    - Dst: TPM_Sbuffer_AppendAsSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_session.c:4606,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:4612,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_session.c:4623,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:4630,1
    - Dst: TPM_ContextSensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:4635,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:4636,1
    - Dst: TPM_ContextBlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:4637,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:4638,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 91
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4640
      start: 4417
    functionDepth: 5
    functionLinenumber: 4417
    functionLinenumberEnd: 4640
    functionName: TPM_Process_SaveKeyContext
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_Nonce_IsZero
    - TPM_Nonce_Generate
    - TPM_ContextSensitive_Store
    - TPM_ContextBlob_Init
    - TPM_SizedBuffer_SetFromStore
    - TPM_Sbuffer_Init
    - TPM_Sbuffer_AppendAsSizedBuffer
    - TPM_ContextBlob_Delete
    - TPM_GetInParamDigest
    - TPM_SizedBuffer_SetStructure
    - TPM_KeyHandleEntry_Delete
    - TPM_KeyHandleEntries_GetEntry
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_GetOutParamDigest
    - TPM_Nonce_Copy
    - TPM_ContextSensitive_Init
    - TPM_SizedBuffer_Delete
    - TPM_CheckRequestTag0
    - printf
    - TPM_ProcessAudit
    - TPM_SymmetricKeyData_EncryptSbuffer
    - TPM_ContextSensitive_Delete
    - TPM_Sbuffer_Delete
    - TPM_HMAC_GenerateStructure
    - TPM_ContextBlob_Store
    - TPM_CheckState
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_SaveKeyContext(tpm_state_t *tpm_state,\n\t\t\t\t
      \     TPM_STORE_BUFFER *response,\n\t\t\t\t      TPM_TAG tag,\n\t\t\t\t      uint32_t
      paramSize,\n\t\t\t\t      TPM_COMMAND_CODE ordinal,\n\t\t\t\t      unsigned
      char *command,\n\t\t\t\t      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4689,1
    - Dst: TPM_ContextBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:4690,1
    - Dst: TPM_ContextSensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:4692,1
    - Dst: TPM_KeyHandleEntry_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:4693,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:4701,1
    - Dst: TPM_ContextBlob_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:4705,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:4711,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_session.c:4723,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_session.c:4727,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4731,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4753,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4759,1
    - Dst: TPM_SymmetricKeyData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_session.c:4761,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4769,1
    - Dst: TPM_ContextSensitive_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:4772,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4775,1
    - Dst: TPM_KeyHandleEntry_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:4778,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4782,1
    - Dst: TPM_Nonce_Compare
      Src: /src/libtpms/src/tpm12/tpm_session.c:4783,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4786,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_session.c:4792,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4796,1
    - Dst: TPM_HMAC_CheckStructure
      Src: /src/libtpms/src/tpm12/tpm_session.c:4803,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4812,1
    - Dst: TPM_KeyHandleEntries_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:4815,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4829,1
    - Dst: TPM_KeyHandleEntries_IsSpace
      Src: /src/libtpms/src/tpm12/tpm_session.c:4830,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4834,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4840,1
    - Dst: TPM_KeyHandleEntries_AddEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:4841,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4852,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:4854,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_session.c:4860,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:4868,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_session.c:4879,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:4886,1
    - Dst: TPM_ContextBlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:4891,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_session.c:4892,1
    - Dst: TPM_ContextSensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:4893,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:4896,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_session.c:4897,1
    - Dst: TPM_KeyHandleEntries_DeleteHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:4901,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 117
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4905
      start: 4649
    functionDepth: 5
    functionLinenumber: 4649
    functionLinenumberEnd: 4905
    functionName: TPM_Process_LoadKeyContext
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_KeyHandleEntry_Init
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_HMAC_CheckStructure
    - TPM_SizedBuffer_Set
    - TPM_ContextBlob_Init
    - TPM_KeyHandleEntries_DeleteHandle
    - TPM_ContextBlob_Delete
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_KeyHandleEntries_AddEntry
    - TPM_KeyHandleEntries_GetEntry
    - TPM_ContextSensitive_Load
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_GetOutParamDigest
    - TPM_ContextBlob_Load
    - TPM_SymmetricKeyData_Decrypt
    - TPM_ContextSensitive_Init
    - TPM_Nonce_Compare
    - TPM_CheckRequestTag0
    - TPM_Key_Delete
    - printf
    - TPM_ProcessAudit
    - TPM_KeyHandleEntry_Load
    - TPM_KeyHandleEntries_IsSpace
    - TPM_ContextSensitive_Delete
    - TPM_CheckState
    - TPM_Load32
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_LoadKeyContext(tpm_state_t *tpm_state,\n\t\t\t\t
      \     TPM_STORE_BUFFER *response,\n\t\t\t\t      TPM_TAG tag,\n\t\t\t\t      uint32_t
      paramSize,\n\t\t\t\t      TPM_COMMAND_CODE ordinal,\n\t\t\t\t      unsigned
      char *command,\n\t\t\t\t      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4950,1
    - Dst: TPM_ContextSensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:4951,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:4952,1
    - Dst: TPM_ContextBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:4953,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:4954,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:4960,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4965,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:4971,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_session.c:4983,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_session.c:4987,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:4991,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5022,1
    - Dst: TPM_AuthSessions_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:5023,1
    - Dst: TPM_Nonce_IsZero
      Src: /src/libtpms/src/tpm12/tpm_session.c:5029,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_session.c:5032,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5040,1
    - Dst: TPM_SizedBuffer_SetStructure
      Src: /src/libtpms/src/tpm12/tpm_session.c:5041,1
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_session.c:5049,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5051,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:5054,1
    - Dst: TPM_ContextSensitive_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:5058,1
    - Dst: TPM_SizedBuffer_SetFromStore
      Src: /src/libtpms/src/tpm12/tpm_session.c:5062,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5066,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5070,1
    - Dst: TPM_ContextList_GetSpace
      Src: /src/libtpms/src/tpm12/tpm_session.c:5089,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5091,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_session.c:5104,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5111,1
    - Dst: TPM_HMAC_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_session.c:5112,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:5123,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5124,1
    - Dst: TPM_SymmetricKeyData_EncryptSbuffer
      Src: /src/libtpms/src/tpm12/tpm_session.c:5126,1
    - Dst: TPM_ContextBlob_Store
      Src: /src/libtpms/src/tpm12/tpm_session.c:5132,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5139,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:5141,1
    - Dst: TPM_Sbuffer_AppendAsSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_session.c:5149,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:5155,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_session.c:5166,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:5173,1
    - Dst: TPM_ContextSensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:5178,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:5179,1
    - Dst: TPM_ContextBlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:5180,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:5181,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 120
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5183
      start: 4914
    functionDepth: 6
    functionLinenumber: 4914
    functionLinenumberEnd: 5183
    functionName: TPM_Process_SaveAuthContext
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_Nonce_IsZero
    - TPM_Nonce_Generate
    - TPM_ContextSensitive_Store
    - TPM_ContextBlob_Init
    - TPM_SizedBuffer_SetFromStore
    - TPM_Sbuffer_Init
    - TPM_Sbuffer_AppendAsSizedBuffer
    - TPM_ContextBlob_Delete
    - TPM_GetInParamDigest
    - TPM_SizedBuffer_SetStructure
    - TPM_ContextList_GetSpace
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_GetOutParamDigest
    - TPM_Nonce_Copy
    - TPM_AuthSessions_GetEntry
    - TPM_ContextSensitive_Init
    - TPM_SizedBuffer_Delete
    - TPM_CheckRequestTag0
    - printf
    - TPM_ProcessAudit
    - TPM_SymmetricKeyData_EncryptSbuffer
    - TPM_ContextSensitive_Delete
    - TPM_Sbuffer_Delete
    - TPM_HMAC_GenerateStructure
    - TPM_ContextBlob_Store
    - TPM_CheckState
    - TPM_Load32
    - TPM_Digest_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_SaveAuthContext(tpm_state_t *tpm_state,\n\t\t\t\t
      \      TPM_STORE_BUFFER *response,\n\t\t\t\t       TPM_TAG tag,\n\t\t\t\t       uint32_t
      paramSize,\n\t\t\t\t       TPM_COMMAND_CODE ordinal,\n\t\t\t\t       unsigned
      char *command,\n\t\t\t\t       TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5236,1
    - Dst: TPM_ContextBlob_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:5237,1
    - Dst: TPM_ContextSensitive_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:5239,1
    - Dst: TPM_AuthSessionData_Init
      Src: /src/libtpms/src/tpm12/tpm_session.c:5240,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_session.c:5248,1
    - Dst: TPM_ContextBlob_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:5252,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5255,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:5261,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_session.c:5273,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_session.c:5277,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5281,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5308,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5314,1
    - Dst: TPM_SymmetricKeyData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_session.c:5316,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5324,1
    - Dst: TPM_ContextSensitive_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:5327,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5333,1
    - Dst: TPM_AuthSessionData_Load
      Src: /src/libtpms/src/tpm12/tpm_session.c:5336,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5340,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5342,1
    - Dst: TPM_Nonce_Compare
      Src: /src/libtpms/src/tpm12/tpm_session.c:5343,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5346,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5357,1
    - Dst: TPM_LoadContext_CheckOwnerLoaded
      Src: /src/libtpms/src/tpm12/tpm_session.c:5360,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_session.c:5364,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5367,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5374,1
    - Dst: TPM_LoadContext_CheckSrkLoaded
      Src: /src/libtpms/src/tpm12/tpm_session.c:5377,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_session.c:5381,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5384,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5391,1
    - Dst: TPM_LoadContext_CheckKeyLoadedByDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:5394,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5398,1
    - Dst: TPM_LoadContext_CheckCounterLoaded
      Src: /src/libtpms/src/tpm12/tpm_session.c:5401,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5407,1
    - Dst: TPM_LoadContext_CheckNvLoaded
      Src: /src/libtpms/src/tpm12/tpm_session.c:5410,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5416,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5424,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_session.c:5428,1
    - Dst: TPM_HMAC_CheckStructure
      Src: /src/libtpms/src/tpm12/tpm_session.c:5434,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5443,1
    - Dst: TPM_AuthSessions_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:5446,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5460,1
    - Dst: TPM_AuthSessions_IsSpace
      Src: /src/libtpms/src/tpm12/tpm_session.c:5461,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5465,1
    - Dst: TPM_AuthSessions_Trace
      Src: /src/libtpms/src/tpm12/tpm_session.c:5466,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5474,1
    - Dst: TPM_ContextList_GetEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:5475,1
    - Dst: TPM_AuthSessions_AddEntry
      Src: /src/libtpms/src/tpm12/tpm_session.c:5485,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_session.c:5496,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:5498,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_session.c:5504,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_session.c:5512,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_session.c:5523,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_session.c:5530,1
    - Dst: TPM_ContextBlob_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:5535,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_session.c:5536,1
    - Dst: TPM_ContextSensitive_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:5537,1
    - Dst: TPM_AuthSessionData_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:5538,1
    - Dst: TPM_AuthSessionData_Delete
      Src: /src/libtpms/src/tpm12/tpm_session.c:5542,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 176
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5546
      start: 5192
    functionDepth: 5
    functionLinenumber: 5192
    functionLinenumberEnd: 5546
    functionName: TPM_Process_LoadAuthContext
    functionSourceFile: /src/libtpms/src/tpm12/tpm_session.c
    functionUses: 0
    functionsReached:
    - TPM_ContextList_GetEntry
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessionData_Init
    - TPM_HMAC_CheckStructure
    - TPM_SizedBuffer_Set
    - TPM_ContextBlob_Init
    - TPM_ContextBlob_Delete
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_LoadContext_CheckCounterLoaded
    - TPM_AuthSessions_IsSpace
    - TPM_ContextSensitive_Load
    - TPM_LoadContext_CheckKeyLoadedByDigest
    - TPM_LoadContext_CheckOwnerLoaded
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_GetOutParamDigest
    - TPM_ContextBlob_Load
    - TPM_Digest_Compare
    - TPM_LoadContext_CheckNvLoaded
    - TPM_AuthSessions_GetEntry
    - TPM_SymmetricKeyData_Decrypt
    - TPM_ContextSensitive_Init
    - TPM_Nonce_Compare
    - TPM_LoadContext_CheckSrkLoaded
    - TPM_AuthSessions_Trace
    - TPM_CheckRequestTag0
    - TPM_AuthSessions_AddEntry
    - printf
    - TPM_AuthSessionData_Load
    - TPM_ProcessAudit
    - TPM_AuthSessionData_Delete
    - TPM_ContextSensitive_Delete
    - TPM_CheckState
    - TPM_Load32
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_LoadAuthContext(tpm_state_t *tpm_state,\n\t\t\t\t
      \      TPM_STORE_BUFFER *response,\n\t\t\t\t       TPM_TAG tag,\n\t\t\t\t       uint32_t
      paramSize,\n\t\t\t\t       TPM_COMMAND_CODE ordinal,\n\t\t\t\t       unsigned
      char *command,\n\t\t\t\t       TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - tpm_permanent_flags
    argTypes:
    - TPM_PERMANENT_FLAGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 109
    functionName: TPM_PermanentFlags_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_PermanentFlags_Init(TPM_PERMANENT_FLAGS *tpm_permanent_flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:128,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:131,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:135,1
    - Dst: TPM_PermanentFlags_LoadBitmap
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tpm_permanent_flags
    - stream
    - stream_size
    argTypes:
    - TPM_PERMANENT_FLAGS*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 142
    functionName: TPM_PermanentFlags_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - TPM_PermanentFlags_LoadBitmap
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PermanentFlags_Load(TPM_PERMANENT_FLAGS *tpm_permanent_flags,\n\t\t\t\t
      \  unsigned char **stream,\n\t\t\t\t   uint32_t *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:156,1
    - Dst: TPM_PermanentFlags_StoreBitmap
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:159,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:164,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:168,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_permanent_flags
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_PERMANENT_FLAGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 149
    functionDepth: 4
    functionLinenumber: 149
    functionLinenumberEnd: 176
    functionName: TPM_PermanentFlags_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 0
    functionsReached:
    - TPM_PermanentFlags_StoreBitmap
    - TPM_Sbuffer_Append32
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PermanentFlags_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \   const TPM_PERMANENT_FLAGS *tpm_permanent_flags)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:187,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:190,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:194,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:198,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:202,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:206,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:210,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:214,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:218,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:223,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:228,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:233,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:237,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:241,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:245,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:249,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:253,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:257,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:261,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:265,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:269,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:274,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 2
    argNames:
    - sbuffer
    - tpm_permanent_flags
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_PERMANENT_FLAGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 279
    functionName: TPM_PermanentFlags_StoreBytes
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PermanentFlags_StoreBytes(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t\t
      const TPM_PERMANENT_FLAGS *tpm_permanent_flags)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:305,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:311,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:314,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:318,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:322,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:326,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:330,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:334,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:338,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:343,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:347,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:351,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:355,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:359,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:363,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:367,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:371,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:375,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:379,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:383,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:387,1
    - Dst: TPM_Bitmap_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:399,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 82
    argCount: 3
    argNames:
    - tpm_permanent_flags
    - permanentFlagsVersion
    - tpm_bitmap
    argTypes:
    - TPM_PERMANENT_FLAGS*
    - TPM_TAG
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 405
    functionName: TPM_PermanentFlags_LoadBitmap
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Bitmap_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PermanentFlags_LoadBitmap(TPM_PERMANENT_FLAGS *tpm_permanent_flags,\n\t\t\t\t\t
      TPM_TAG permanentFlagsVersion,\n\t\t\t\t\t uint32_t tpm_bitmap)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:419,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:423,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:427,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:431,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:435,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:439,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:443,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:447,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:451,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:455,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:459,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:463,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:467,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:471,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:475,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:479,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:483,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:487,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:491,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:495,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:500,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 2
    argNames:
    - tpm_bitmap
    - tpm_permanent_flags
    argTypes:
    - uint32_t*
    - TPM_PERMANENT_FLAGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 504
    functionName: TPM_PermanentFlags_StoreBitmap
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 2
    functionsReached:
    - TPM_Bitmap_Store
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PermanentFlags_StoreBitmap(uint32_t *tpm_bitmap,\n\t\t\t\t\t
      \ const TPM_PERMANENT_FLAGS *tpm_permanent_flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:524,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:528,1
    - Dst: TPM_PermanentData_Zero
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:531,1
    - Dst: TPM_Pubkey_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:534,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:536,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:537,1
    - Dst: TPM_SymmetricKeyData_New
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:539,1
    - Dst: TPM_SymmetricKeyData_New
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:543,1
    - Dst: TPM_CounterValue_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:546,1
    - Dst: TPM_Counters_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:547,1
    - Dst: TPM_PCRAttributes_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:548,1
    - Dst: TPM_OrdinalAuditStatus_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:549,1
    - Dst: TPM_FamilyTable_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:552,1
    - Dst: TPM_DelegateTable_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:553,1
    - Dst: TPM_SymmetricKeyData_New
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:559,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - tpm_permanent_data
    - instanceData
    argTypes:
    - TPM_PERMANENT_DATA*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 519
    functionDepth: 3
    functionLinenumber: 519
    functionLinenumberEnd: 570
    functionName: TPM_PermanentData_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 1
    functionsReached:
    - TPM_Key_Init
    - TPM_PermanentData_Zero
    - TPM_FamilyTable_Init
    - TPM_CounterValue_Init
    - TPM_Pubkey_Init
    - TPM_PCRAttributes_Init
    - TPM_OrdinalAuditStatus_Init
    - TPM_Counters_Init
    - printf
    - TPM_SymmetricKeyData_New
    - TPM_DelegateTable_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PermanentData_Init(TPM_PERMANENT_DATA *tpm_permanent_data,\n\t\t\t\t
      \ TPM_BOOL instanceData)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:589,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:592,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:603,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:604,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:608,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:612,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:613,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:617,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:621,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:625,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:631,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:637,1
    - Dst: TPM_Pubkey_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:638,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:643,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:649,1
    - Dst: TPM_Key_LoadClear
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:650,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:654,1
    - Dst: TPM_Key_LoadClear
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:655,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:659,1
    - Dst: TPM_SymmetricKeyData_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:660,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:664,1
    - Dst: TPM_SymmetricKeyData_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:665,1
    - Dst: TPM_CounterValue_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:669,1
    - Dst: TPM_Counters_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:674,1
    - Dst: TPM_PCRAttributes_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:678,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:681,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:685,1
    - Dst: TPM_FamilyTable_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:689,1
    - Dst: TPM_DelegateTable_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:693,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:697,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:701,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:705,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:709,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:713,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:717,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:721,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:725,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:729,1
    - Dst: TPM_SymmetricKeyData_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:730,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 110
    argCount: 4
    argNames:
    - tpm_permanent_data
    - stream
    - stream_size
    - instanceData
    argTypes:
    - TPM_PERMANENT_DATA*
    - unsigned char**
    - uint32_t*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 579
    functionDepth: 5
    functionLinenumber: 579
    functionLinenumberEnd: 734
    functionName: TPM_PermanentData_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 0
    functionsReached:
    - TPM_Secret_Load
    - TPM_Digest_Load
    - TPM_CheckTag
    - TPM_LoadBool
    - TPM_DelegateTable_Load
    - TPM_CounterValue_Load
    - TPM_PCRAttributes_Init
    - TPM_Nonce_Load
    - TPM_Key_LoadClear
    - TPM_Counters_Load
    - printf
    - TPM_Load32
    - TPM_SymmetricKeyData_Load
    - TPM_Load8
    - TPM_Pubkey_Load
    - TPM_FamilyTable_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PermanentData_Load(TPM_PERMANENT_DATA *tpm_permanent_data,\n\t\t\t\t
      \ unsigned char **stream,\n\t\t\t\t  uint32_t *stream_size,\n\t\t\t\t  TPM_BOOL
      instanceData)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:747,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:750,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:757,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:761,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:765,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:769,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:773,1
    - Dst: TPM_Sbuffer_Append8
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:778,1
    - Dst: TPM_Pubkey_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:782,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:787,1
    - Dst: TPM_Key_StoreClear
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:792,1
    - Dst: TPM_Key_StoreClear
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:796,1
    - Dst: TPM_SymmetricKeyData_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:800,1
    - Dst: TPM_SymmetricKeyData_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:804,1
    - Dst: TPM_CounterValue_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:808,1
    - Dst: TPM_Counters_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:812,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:817,1
    - Dst: TPM_FamilyTable_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:822,1
    - Dst: TPM_DelegateTable_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:828,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:832,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:836,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:840,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:844,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:848,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:852,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:857,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:861,1
    - Dst: TPM_SymmetricKeyData_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:865,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 85
    argCount: 3
    argNames:
    - sbuffer
    - tpm_permanent_data
    - instanceData
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_PERMANENT_DATA*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 740
    functionDepth: 7
    functionLinenumber: 740
    functionLinenumberEnd: 869
    functionName: TPM_PermanentData_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 0
    functionsReached:
    - TPM_FamilyTable_Store
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append16
    - TPM_Sbuffer_Append
    - TPM_Secret_Store
    - TPM_Sbuffer_Append8
    - TPM_SymmetricKeyData_Store
    - TPM_Key_StoreClear
    - TPM_CounterValue_Store
    - printf
    - TPM_DelegateTable_Store
    - TPM_Pubkey_Store
    - TPM_Digest_Store
    - TPM_Nonce_Store
    - TPM_Counters_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PermanentData_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \  TPM_PERMANENT_DATA *tpm_permanent_data,\n\t\t\t\t   TPM_BOOL instanceData)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:883,1
    - Dst: TPM_Pubkey_Delete
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:886,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:888,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:889,1
    - Dst: TPM_SymmetricKeyData_Free
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:890,1
    - Dst: TPM_SymmetricKeyData_Free
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:891,1
    - Dst: TPM_FamilyTable_Delete
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:892,1
    - Dst: TPM_DelegateTable_Delete
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:893,1
    - Dst: TPM_SymmetricKeyData_Free
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:894,1
    - Dst: TPM_PermanentData_Zero
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - tpm_permanent_data
    - instanceData
    argTypes:
    - TPM_PERMANENT_DATA*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 880
    functionDepth: 4
    functionLinenumber: 880
    functionLinenumberEnd: 899
    functionName: TPM_PermanentData_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 1
    functionsReached:
    - TPM_FamilyTable_Delete
    - TPM_PermanentData_Zero
    - TPM_Pubkey_Delete
    - TPM_SymmetricKeyData_Free
    - TPM_Key_Delete
    - printf
    - TPM_DelegateTable_Delete
    linkageType: ''
    returnType: void
    signature: "void TPM_PermanentData_Delete(TPM_PERMANENT_DATA *tpm_permanent_data,\n\t\t\t
      \     TPM_BOOL instanceData)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:911,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:914,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:915,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:916,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:917,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:918,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:923,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - tpm_permanent_data
    - instanceData
    argTypes:
    - TPM_PERMANENT_DATA*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 908
    functionDepth: 2
    functionLinenumber: 908
    functionLinenumberEnd: 928
    functionName: TPM_PermanentData_Zero
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 2
    functionsReached:
    - TPM_Nonce_Init
    - TPM_Secret_Init
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: "void TPM_PermanentData_Zero(TPM_PERMANENT_DATA *tpm_permanent_data,\n\t\t\t
      \   TPM_BOOL instanceData)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:941,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:944,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:948,1
    - Dst: TPM_SymmetricKeyData_GenerateKey
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:952,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - tpm_permanent_data
    argTypes:
    - TPM_PERMANENT_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 955
    functionName: TPM_PermanentData_InitDaa
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 4
    functionsReached:
    - TPM_SymmetricKeyData_GenerateKey
    - printf
    - TPM_Nonce_Generate
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_PermanentData_InitDaa(TPM_PERMANENT_DATA *tpm_permanent_data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:977,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:982,1
    - Dst: TPM_PermanentData_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:986,1
    - Dst: TPM_PermanentFlags_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:991,1
    - Dst: TPM_KeyHandleEntries_OwnerEvictLoad
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:996,1
    - Dst: TPM_NVIndexEntries_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1001,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1007,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1014,1
    - Dst: TPM_SHA1_Check
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1015,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - tpm_state
    - stream
    - stream_size
    argTypes:
    - tpm_state_t*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 969
    functionDepth: 7
    functionLinenumber: 969
    functionLinenumberEnd: 1024
    functionName: TPM_PermanentAll_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 1
    functionsReached:
    - TPM_PermanentData_Load
    - TPM_CheckTag
    - TPM_NVIndexEntries_Load
    - TPM_SHA1_Check
    - TPM_KeyHandleEntries_OwnerEvictLoad
    - printf
    - TPM_PermanentFlags_Load
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PermanentAll_Load(tpm_state_t *tpm_state,\n\t\t\t\t
      unsigned char **stream,\n\t\t\t\t uint32_t *stream_size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1049,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1052,1
    - Dst: TPM_PermanentData_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1056,1
    - Dst: TPM_PermanentFlags_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1061,1
    - Dst: TPM_KeyHandleEntries_OwnerEvictStore
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1066,1
    - Dst: TPM_NVIndexEntries_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1071,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1076,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1078,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1084,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1085,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1089,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - sbuffer
    - buffer
    - length
    - tpm_state
    argTypes:
    - TPM_STORE_BUFFER*
    - unsigned char**
    - uint32_t*
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1041
    functionDepth: 9
    functionLinenumber: 1041
    functionLinenumberEnd: 1092
    functionName: TPM_PermanentAll_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 2
    functionsReached:
    - TPM_SHA1
    - TPM_Sbuffer_Append16
    - TPM_Sbuffer_Get
    - TPM_KeyHandleEntries_OwnerEvictStore
    - printf
    - TPM_NVIndexEntries_Store
    - TPM_PermanentFlags_Store
    - TPM_PermanentData_Store
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PermanentAll_Store(TPM_STORE_BUFFER *sbuffer,\t/* freed
      by caller */\n\t\t\t\t  const unsigned char **buffer,\n\t\t\t\t  uint32_t *length,\n\t\t\t\t
      \ tpm_state_t *tpm_state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1113,1
    - Dst: TPM_NVRAM_LoadData
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1117,1
    - Dst: TPM_PermanentAll_Load
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1125,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1127,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1106
    functionDepth: 8
    functionLinenumber: 1106
    functionLinenumberEnd: 1133
    functionName: TPM_PermanentAll_NVLoad
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 3
    functionsReached:
    - TPM_NVRAM_LoadData
    - TPM_PermanentAll_Load
    - printf
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_PermanentAll_NVLoad(tpm_state_t *tpm_state)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1158,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1159,1
    - Dst: TPM_PermanentAll_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1164,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1170,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1172,1
    - Dst: TPM_NVRAM_StoreData
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1179,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1185,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1194,1
    - Dst: TPM_NVIndexEntries_GetVolatile
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1200,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1205,1
    - Dst: TPM_PermanentData_Delete
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1206,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1207,1
    - Dst: TPM_KeyHandleEntries_OwnerEvictDelete
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1208,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1209,1
    - Dst: TPM_NVIndexEntries_Delete
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1210,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1211,1
    - Dst: TPM_PermanentData_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1214,1
    - Dst: TPM_PermanentAll_NVLoad
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1217,1
    - Dst: TPM_NVIndexEntries_SetVolatile
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1220,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1229,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1240,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1241,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 3
    argNames:
    - tpm_state
    - writeAllNV
    - rcIn
    argTypes:
    - tpm_state_t*
    - TPM_BOOL
    - TPM_RESULT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1148
    functionDepth: 10
    functionLinenumber: 1148
    functionLinenumberEnd: 1243
    functionName: TPM_PermanentAll_NVStore
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 43
    functionsReached:
    - TPM_NVRAM_StoreData
    - TPM_PermanentAll_NVLoad
    - TPM_PermanentData_Init
    - TPM_NVIndexEntries_SetVolatile
    - TPM_NVIndexEntries_Delete
    - TPM_KeyHandleEntries_OwnerEvictDelete
    - TPM_Sbuffer_Delete
    - free
    - TPM_PermanentAll_Store
    - TPM_PermanentData_Delete
    - printf
    - TPM_NVIndexEntries_GetVolatile
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PermanentAll_NVStore(tpm_state_t *tpm_state,\n\t\t\t\t
      \   TPM_BOOL writeAllNV,\n\t\t\t\t    TPM_RESULT rcIn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1257,1
    - Dst: TPM_NVRAM_DeleteName
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - tpm_number
    - mustExist
    argTypes:
    - uint32_t
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1252
    functionDepth: 3
    functionLinenumber: 1252
    functionLinenumberEnd: 1265
    functionName: TPM_PermanentAll_NVDelete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_NVRAM_DeleteName
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PermanentAll_NVDelete(uint32_t tpm_number,\n\t\t\t\t
      \    TPM_BOOL mustExist)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1279,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1280,1
    - Dst: TPM_PermanentAll_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1282,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1287,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1289,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1272
    functionDepth: 10
    functionLinenumber: 1272
    functionLinenumberEnd: 1296
    functionName: TPM_PermanentAll_IsSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Delete
    - TPM_PermanentAll_Store
    - printf
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_PermanentAll_IsSpace(tpm_state_t *tpm_state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1311,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1312,1
    - Dst: TPM_PermanentAll_Store
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1314,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1319,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1322,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1328,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_permanent.c:1330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - bytes_free
    - tpm_state
    argTypes:
    - uint32_t*
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1303
    functionDepth: 10
    functionLinenumber: 1303
    functionLinenumberEnd: 1332
    functionName: TPM_PermanentAll_GetSpace
    functionSourceFile: /src/libtpms/src/tpm12/tpm_permanent.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_Delete
    - TPM_PermanentAll_Store
    - printf
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PermanentAll_GetSpace(uint32_t *bytes_free,\n\t\t\t\t
      \    tpm_state_t *tpm_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/libtpms/src/tpm12/tpm_time.c:65,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_time.c:69,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_time.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - tv_sec
    - tv_usec
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 76
    functionName: TPM_GetTimeOfDay
    functionSourceFile: /src/libtpms/src/tpm12/tpm_time.c
    functionUses: 3
    functionsReached:
    - printf
    - gettimeofday
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_GetTimeOfDay(uint32_t *tv_sec, uint32_t *tv_usec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_secret.c:52,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_secret.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tpm_secret
    argTypes:
    - TPM_SECRET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: TPM_Secret_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_secret.c
    functionUses: 16
    functionsReached:
    - printf
    - memset
    linkageType: ''
    returnType: void
    signature: void TPM_Secret_Init(TPM_SECRET tpm_secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_secret.c:72,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_secret.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - tpm_secret
    - stream
    - stream_size
    argTypes:
    - TPM_SECRET
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 75
    functionName: TPM_Secret_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_secret.c
    functionUses: 14
    functionsReached:
    - printf
    - TPM_Loadn
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Secret_Load(TPM_SECRET tpm_secret,\n                           unsigned
      char **stream,\n                           uint32_t *stream_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_secret.c:90,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_secret.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sbuffer
    - tpm_secret
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_SECRET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: TPM_Secret_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_secret.c
    functionUses: 12
    functionsReached:
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Secret_Store(TPM_STORE_BUFFER *sbuffer,\n                            const
      TPM_SECRET tpm_secret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_secret.c:107,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_secret.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_secret
    argTypes:
    - TPM_SECRET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: TPM_Secret_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_secret.c
    functionUses: 4
    functionsReached:
    - TPM_Secret_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_Secret_Delete(TPM_SECRET tpm_secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_secret.c:119,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_secret.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - destination
    - source
    argTypes:
    - TPM_SECRET
    - TPM_SECRET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: TPM_Secret_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_secret.c
    functionUses: 19
    functionsReached:
    - printf
    - memcpy
    linkageType: ''
    returnType: void
    signature: void TPM_Secret_Copy(TPM_SECRET destination, const TPM_SECRET source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_secret.c:133,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_secret.c:134,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_secret.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - expect
    - actual
    argTypes:
    - TPM_SECRET
    - TPM_SECRET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 140
    functionName: TPM_Secret_Compare
    functionSourceFile: /src/libtpms/src/tpm12/tpm_secret.c
    functionUses: 2
    functionsReached:
    - memcmp
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Secret_Compare(TPM_SECRET expect, const TPM_SECRET actual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_secret.c:149,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_secret.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tpm_secret
    argTypes:
    - TPM_SECRET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: TPM_Secret_Generate
    functionSourceFile: /src/libtpms/src/tpm12/tpm_secret.c
    functionUses: 1
    functionsReached:
    - TPM_Random
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Secret_Generate(TPM_SECRET tpm_secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_secret.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - output
    - input1
    - input2
    argTypes:
    - TPM_SECRET
    - TPM_SECRET
    - TPM_SECRET
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: TPM_Secret_XOR
    functionSourceFile: /src/libtpms/src/tpm12/tpm_secret.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_Secret_XOR(TPM_SECRET output, TPM_SECRET input1, TPM_SECRET
      input2)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: TPM_CheckTypes
      Src: /src/libtpms/src/tpm12/tpm_init.c:112,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:116,1
    - Dst: TPM_IO_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:117,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:121,1
    - Dst: TPM_Crypto_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:122,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:127,1
    - Dst: TPM_NVRAM_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:128,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:132,1
    - Dst: TPM_LimitedSelfTestCommon
      Src: /src/libtpms/src/tpm12/tpm_init.c:134,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:138,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_init.c:144,1
    - Dst: TPM_Global_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:148,1
    - Dst: HasCachedState
      Src: /src/libtpms/src/tpm12/tpm_init.c:152,1
    - Dst: TPM_PermanentAll_NVLoad
      Src: /src/libtpms/src/tpm12/tpm_init.c:160,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_init.c:166,1
    - Dst: TPM_VolatileAll_NVLoad
      Src: /src/libtpms/src/tpm12/tpm_init.c:173,1
    - Dst: TPM_PermanentAll_NVStore
      Src: /src/libtpms/src/tpm12/tpm_init.c:179,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:186,1
    - Dst: TPM_SaveState_NVDelete
      Src: /src/libtpms/src/tpm12/tpm_init.c:191,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:193,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:205,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:216,1
    - Dst: TPM_LimitedSelfTestTPM
      Src: /src/libtpms/src/tpm12/tpm_init.c:217,1
    - Dst: TPM_SaveState_NVDelete
      Src: /src/libtpms/src/tpm12/tpm_init.c:221,1
    - Dst: TPM_Global_Delete
      Src: /src/libtpms/src/tpm12/tpm_init.c:226,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_init.c:227,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 100
    functionDepth: 11
    functionLinenumber: 100
    functionLinenumberEnd: 229
    functionName: TPM_MainInit
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 1
    functionsReached:
    - TPM_LimitedSelfTestCommon
    - TPM_PermanentAll_NVStore
    - TPM_PermanentAll_NVLoad
    - TPM_CheckTypes
    - HasCachedState
    - TPM_SaveState_NVDelete
    - TPM_LimitedSelfTestTPM
    - TPM_Global_Delete
    - TPM_IO_Init
    - TPM_Malloc
    - printf
    - TPM_Global_Init
    - TPM_Crypto_Init
    - TPM_VolatileAll_NVLoad
    - free
    - TPM_NVRAM_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_MainInit(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:241,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:248,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 262
    functionName: TPM_CheckTypes
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_CheckTypes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tpm_stany_flags
    argTypes:
    - TPM_STANY_FLAGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 285
    functionName: TPM_StanyFlags_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 3
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_StanyFlags_Init(TPM_STANY_FLAGS *tpm_stany_flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:302,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_init.c:305,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_init.c:309,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_init.c:313,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_init.c:317,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_init.c:321,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_init.c:325,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - tpm_stany_flags
    - stream
    - stream_size
    argTypes:
    - TPM_STANY_FLAGS*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 328
    functionName: TPM_StanyFlags_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 1
    functionsReached:
    - TPM_LoadBool
    - printf
    - TPM_Load32
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StanyFlags_Load(TPM_STANY_FLAGS *tpm_stany_flags,\n\t\t\t
      \      unsigned char **stream,\n\t\t\t       uint32_t *stream_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:341,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_init.c:344,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_init.c:348,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_init.c:352,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_init.c:356,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_init.c:360,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_init.c:364,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - sbuffer
    - tpm_stany_flags
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_STANY_FLAGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 336
    functionDepth: 4
    functionLinenumber: 336
    functionLinenumberEnd: 367
    functionName: TPM_StanyFlags_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StanyFlags_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\tTPM_STANY_FLAGS
      *tpm_stany_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tpm_stclear_flags
    argTypes:
    - TPM_STCLEAR_FLAGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 389
    functionName: TPM_StclearFlags_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_StclearFlags_Init(TPM_STCLEAR_FLAGS *tpm_stclear_flags)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:406,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_init.c:409,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_init.c:413,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_init.c:417,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_init.c:421,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_init.c:425,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_init.c:429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - tpm_stclear_flags
    - stream
    - stream_size
    argTypes:
    - TPM_STCLEAR_FLAGS*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 432
    functionName: TPM_StclearFlags_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 2
    functionsReached:
    - TPM_LoadBool
    - printf
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StclearFlags_Load(TPM_STCLEAR_FLAGS *tpm_stclear_flags,\n
      \                                unsigned char **stream,\n                                 uint32_t
      *stream_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:445,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_init.c:448,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_init.c:452,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_init.c:457,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_init.c:462,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_init.c:467,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_init.c:472,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - sbuffer
    - tpm_stclear_flags
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_STCLEAR_FLAGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 476
    functionName: TPM_StclearFlags_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 3
    functionsReached:
    - TPM_Sbuffer_Append
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StclearFlags_Store(TPM_STORE_BUFFER *sbuffer,\n                                  const
      TPM_STCLEAR_FLAGS *tpm_stclear_flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:488,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_init.c:492,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_init.c:496,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_init.c:500,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_init.c:504,1
    - Dst: TPM_Bitmap_Store
      Src: /src/libtpms/src/tpm12/tpm_init.c:508,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - tpm_bitmap
    - tpm_stclear_flags
    argTypes:
    - uint32_t*
    - TPM_STCLEAR_FLAGS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 511
    functionName: TPM_StclearFlags_StoreBitmap
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 1
    functionsReached:
    - TPM_Bitmap_Store
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StclearFlags_StoreBitmap(uint32_t *tpm_bitmap,\n                                        const
      TPM_STCLEAR_FLAGS *tpm_stclear_flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:527,1
    - Dst: TPM_CurrentTicks_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:531,1
    - Dst: TPM_CurrentTicks_Start
      Src: /src/libtpms/src/tpm12/tpm_init.c:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_stany_data
    argTypes:
    - TPM_STANY_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 535
    functionName: TPM_StanyData_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 1
    functionsReached:
    - TPM_CurrentTicks_Start
    - printf
    - TPM_CurrentTicks_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_StanyData_Init(TPM_STANY_DATA *tpm_stany_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:553,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_init.c:557,1
    - Dst: TPM_CurrentTicks_LoadAll
      Src: /src/libtpms/src/tpm12/tpm_init.c:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - tpm_stany_data
    - stream
    - stream_size
    argTypes:
    - TPM_STANY_DATA*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 547
    functionDepth: 3
    functionLinenumber: 547
    functionLinenumberEnd: 564
    functionName: TPM_StanyData_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_CurrentTicks_LoadAll
    - TPM_CheckTag
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StanyData_Load(TPM_STANY_DATA *tpm_stany_data,\n\t\t\t
      \     unsigned char **stream,\n\t\t\t      uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:577,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_init.c:581,1
    - Dst: TPM_CurrentTicks_StoreAll
      Src: /src/libtpms/src/tpm12/tpm_init.c:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - sbuffer
    - tpm_stany_data
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_STANY_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 572
    functionDepth: 4
    functionLinenumber: 572
    functionLinenumberEnd: 588
    functionName: TPM_StanyData_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 1
    functionsReached:
    - printf
    - TPM_Sbuffer_Append16
    - TPM_CurrentTicks_StoreAll
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StanyData_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t
      \      TPM_STANY_DATA *tpm_stany_data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tpm_stany_data
    argTypes:
    - TPM_STANY_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 605
    functionName: TPM_StanyData_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_StanyData_Delete(TPM_STANY_DATA *tpm_stany_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:624,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:625,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:631,1
    - Dst: TPM_PCRs_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:632,1
    - Dst: TPM_StclearData_SessionInit
      Src: /src/libtpms/src/tpm12/tpm_init.c:640,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:641,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - tpm_stclear_data
    - pcrAttrib
    - pcrInit
    argTypes:
    - TPM_STCLEAR_DATA*
    - TPM_PCR_ATTRIBUTES*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 620
    functionDepth: 3
    functionLinenumber: 620
    functionLinenumberEnd: 644
    functionName: TPM_StclearData_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 1
    functionsReached:
    - TPM_Nonce_Init
    - TPM_PCRs_Init
    - printf
    - TPM_StclearData_SessionInit
    - TPM_Sbuffer_Init
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: "void TPM_StclearData_Init(TPM_STCLEAR_DATA *tpm_stclear_data,\n                          TPM_PCR_ATTRIBUTES
      *pcrAttrib,\n                          TPM_BOOL pcrInit)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:664,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_init.c:667,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:671,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:677,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_init.c:684,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_init.c:688,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_init.c:692,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_init.c:696,1
    - Dst: TPM_PCRs_Load
      Src: /src/libtpms/src/tpm12/tpm_init.c:700,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_init.c:705,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_init.c:710,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_init.c:714,1
    - Dst: TPM_AuthSessions_Load
      Src: /src/libtpms/src/tpm12/tpm_init.c:718,1
    - Dst: TPM_TransportSessions_Load
      Src: /src/libtpms/src/tpm12/tpm_init.c:722,1
    - Dst: TPM_DaaSessions_Load
      Src: /src/libtpms/src/tpm12/tpm_init.c:726,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_init.c:730,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_init.c:734,1
    - Dst: TPM_ContextList_Load
      Src: /src/libtpms/src/tpm12/tpm_init.c:738,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_init.c:742,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_init.c:743,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:750,1
    - Dst: TPM_Sbuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_init.c:751,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_init.c:752,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_init.c:756,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 4
    argNames:
    - tpm_stclear_data
    - stream
    - stream_size
    - pcrAttrib
    argTypes:
    - TPM_STCLEAR_DATA*
    - unsigned char**
    - uint32_t*
    - TPM_PCR_ATTRIBUTES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 656
    functionDepth: 6
    functionLinenumber: 656
    functionLinenumberEnd: 760
    functionName: TPM_StclearData_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 2
    functionsReached:
    - TPM_Load16
    - TPM_Digest_Load
    - TPM_PCRs_Load
    - TPM_LoadBool
    - TPM_PrintFour
    - TPM_Sbuffer_Delete
    - TPM_ContextList_Load
    - TPM_Nonce_Load
    - TPM_AuthSessions_Load
    - printf
    - TPM_Load32
    - TPM_TransportSessions_Load
    - TPM_DaaSessions_Load
    - TPM_Sbuffer_Load
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StclearData_Load(TPM_STCLEAR_DATA *tpm_stclear_data,\n
      \                               unsigned char **stream,\n                                uint32_t
      *stream_size,\n                                TPM_PCR_ATTRIBUTES *pcrAttrib)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:774,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_init.c:777,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_init.c:781,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_init.c:785,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_init.c:789,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_init.c:793,1
    - Dst: TPM_PCRs_Store
      Src: /src/libtpms/src/tpm12/tpm_init.c:798,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_init.c:803,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_init.c:808,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_init.c:812,1
    - Dst: TPM_AuthSessions_Store
      Src: /src/libtpms/src/tpm12/tpm_init.c:816,1
    - Dst: TPM_TransportSessions_Store
      Src: /src/libtpms/src/tpm12/tpm_init.c:820,1
    - Dst: TPM_DaaSessions_Store
      Src: /src/libtpms/src/tpm12/tpm_init.c:824,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_init.c:828,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_init.c:832,1
    - Dst: TPM_ContextList_Store
      Src: /src/libtpms/src/tpm12/tpm_init.c:836,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_init.c:840,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_init.c:841,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 3
    argNames:
    - sbuffer
    - tpm_stclear_data
    - pcrAttrib
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_STCLEAR_DATA*
    - TPM_PCR_ATTRIBUTES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 768
    functionDepth: 7
    functionLinenumber: 768
    functionLinenumberEnd: 845
    functionName: TPM_StclearData_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 2
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Nonce_Store
    - TPM_Sbuffer_Append16
    - TPM_PrintFour
    - TPM_ContextList_Store
    - TPM_TransportSessions_Store
    - printf
    - TPM_DaaSessions_Store
    - TPM_PCRs_Store
    - TPM_Digest_Store
    - TPM_Sbuffer_Append
    - TPM_AuthSessions_Store
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StclearData_Store(TPM_STORE_BUFFER *sbuffer,\n                                 TPM_STCLEAR_DATA
      *tpm_stclear_data,\n                                 TPM_PCR_ATTRIBUTES *pcrAttrib)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:866,1
    - Dst: TPM_StclearData_SessionDelete
      Src: /src/libtpms/src/tpm12/tpm_init.c:868,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_init.c:870,1
    - Dst: TPM_StclearData_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - tpm_stclear_data
    - pcrAttrib
    - pcrInit
    argTypes:
    - TPM_STCLEAR_DATA*
    - TPM_PCR_ATTRIBUTES*
    - TPM_BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 862
    functionDepth: 4
    functionLinenumber: 862
    functionLinenumberEnd: 874
    functionName: TPM_StclearData_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 2
    functionsReached:
    - TPM_Sbuffer_Delete
    - printf
    - TPM_StclearData_SessionDelete
    - TPM_StclearData_Init
    linkageType: ''
    returnType: void
    signature: "void TPM_StclearData_Delete(TPM_STCLEAR_DATA *tpm_stclear_data,\n
      \                           TPM_PCR_ATTRIBUTES *pcrAttrib,\n                            TPM_BOOL
      pcrInit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:884,1
    - Dst: TPM_AuthSessions_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:886,1
    - Dst: TPM_TransportSessions_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:887,1
    - Dst: TPM_DaaSessions_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:888,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:890,1
    - Dst: TPM_ContextList_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tpm_stclear_data
    argTypes:
    - TPM_STCLEAR_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 882
    functionDepth: 5
    functionLinenumber: 882
    functionLinenumberEnd: 894
    functionName: TPM_StclearData_SessionInit
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 1
    functionsReached:
    - TPM_ContextList_Init
    - TPM_Nonce_Init
    - TPM_AuthSessions_Init
    - TPM_DaaSessions_Init
    - printf
    - TPM_TransportSessions_Init
    linkageType: ''
    returnType: void
    signature: void TPM_StclearData_SessionInit(TPM_STCLEAR_DATA *tpm_stclear_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:904,1
    - Dst: TPM_StclearData_AuthSessionDelete
      Src: /src/libtpms/src/tpm12/tpm_init.c:907,1
    - Dst: TPM_TransportSessions_Delete
      Src: /src/libtpms/src/tpm12/tpm_init.c:909,1
    - Dst: TPM_DaaSessions_Delete
      Src: /src/libtpms/src/tpm12/tpm_init.c:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tpm_stclear_data
    argTypes:
    - TPM_STCLEAR_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 913
    functionName: TPM_StclearData_SessionDelete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 1
    functionsReached:
    - TPM_TransportSessions_Delete
    - TPM_DaaSessions_Delete
    - printf
    - TPM_StclearData_AuthSessionDelete
    linkageType: ''
    returnType: void
    signature: void TPM_StclearData_SessionDelete(TPM_STCLEAR_DATA *tpm_stclear_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:923,1
    - Dst: TPM_AuthSessions_Delete
      Src: /src/libtpms/src/tpm12/tpm_init.c:925,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:927,1
    - Dst: TPM_ContextList_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tpm_stclear_data
    argTypes:
    - TPM_STCLEAR_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 921
    functionDepth: 6
    functionLinenumber: 921
    functionLinenumberEnd: 931
    functionName: TPM_StclearData_AuthSessionDelete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 2
    functionsReached:
    - TPM_ContextList_Init
    - TPM_Nonce_Init
    - printf
    - TPM_AuthSessions_Delete
    linkageType: ''
    returnType: void
    signature: void TPM_StclearData_AuthSessionDelete(TPM_STCLEAR_DATA *tpm_stclear_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:942,1
    - Dst: TPM_Global_Delete
      Src: /src/libtpms/src/tpm12/tpm_init.c:946,1
    - Dst: TPM_Global_Init
      Src: /src/libtpms/src/tpm12/tpm_init.c:947,1
    - Dst: TPM_PermanentAll_NVLoad
      Src: /src/libtpms/src/tpm12/tpm_init.c:953,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:955,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - tpm_state
    argTypes:
    - tpm_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 937
    functionDepth: 9
    functionLinenumber: 937
    functionLinenumberEnd: 960
    functionName: TPM_InitCmd
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 0
    functionsReached:
    - TPM_Global_Delete
    - printf
    - TPM_PermanentAll_NVLoad
    - TPM_Global_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_InitCmd(tpm_state_t *tpm_state)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:992,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:999,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:1007,1
    - Dst: getEntryFunction
      Src: /src/libtpms/src/tpm12/tpm_init.c:1014,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:1019,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_init.c:1033,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:1039,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:1047,1
    - Dst: getEntryFunction
      Src: /src/libtpms/src/tpm12/tpm_init.c:1056,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:1060,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:1066,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:1072,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 5
    argNames:
    - tpm_handle
    - tpm_handle_entries
    - keepHandle
    - isKeyHandle
    - getEntryFunction
    argTypes:
    - TPM_HANDLE*
    - void*
    - TPM_BOOL
    - TPM_BOOL
    - TPM_GETENTRY_FUNCTION_T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 1077
    functionName: TPM_Handle_GenerateHandle
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 8
    functionsReached:
    - TPM_Random
    - printf
    - getEntryFunction
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Handle_GenerateHandle(TPM_HANDLE *tpm_handle,\n                                     void
      *tpm_handle_entries,\n                                     TPM_BOOL keepHandle,\n
      \                                    TPM_BOOL isKeyHandle,\n                                     TPM_GETENTRY_FUNCTION_T
      getEntryFunction)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:1102,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_init.c:1113,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:1117,1
    - Dst: TPM_InitCmd
      Src: /src/libtpms/src/tpm12/tpm_init.c:1127,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:1130,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_init.c:1138,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_init.c:1140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1091
    functionDepth: 10
    functionLinenumber: 1091
    functionLinenumberEnd: 1143
    functionName: TPM_Process_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_init.c
    functionUses: 0
    functionsReached:
    - TPM_InitCmd
    - printf
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CheckRequestTag0
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_Init(tpm_state_t *tpm_state,\n                            TPM_STORE_BUFFER
      *response,\n                            TPM_TAG tag,\n                            uint32_t
      paramSize,\n                            TPM_COMMAND_CODE ordinal,\n                            unsigned
      char *command,\n                            TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tpm_uint64
    argTypes:
    - TPM_UINT64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: TPM_Uint64_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ticks.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_Uint64_Init(TPM_UINT64 *tpm_uint64)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:106,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:109,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:113,1
    - Dst: TPM_Uint64_ConvertTo
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - tpm_uint64
    - stream
    - stream_size
    argTypes:
    - TPM_UINT64*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 123
    functionName: TPM_Uint64_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ticks.c
    functionUses: 0
    functionsReached:
    - TPM_Uint64_ConvertTo
    - printf
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Uint64_Load(TPM_UINT64 *tpm_uint64,\n\t\t\t    unsigned
      char **stream,\n\t\t\t    uint32_t *stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:140,1
    - Dst: TPM_Uint64_ConvertFrom
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:144,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:145,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - sbuffer
    - tpm_uint64
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_UINT64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 152
    functionName: TPM_Uint64_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ticks.c
    functionUses: 1
    functionsReached:
    - TPM_Uint64_ConvertFrom
    - TPM_Sbuffer_Append32
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Uint64_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t    const
      TPM_UINT64 *tpm_uint64)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - TPM_UINT64*
    - TPM_UINT64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: TPM_Uint64_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ticks.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_Uint64_Copy(TPM_UINT64 *dest,\n\t\t     const TPM_UINT64
      *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:183,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:185,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:188,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - upper
    - lower
    - sec
    - usec
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 191
    functionName: TPM_Uint64_ConvertFrom
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ticks.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_Uint64_ConvertFrom(uint32_t *upper,\n\t\t\t\t   uint32_t
      *lower,\n\t\t\t\t   uint32_t sec,\n\t\t\t\t   uint32_t usec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:200,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:201,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:203,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - sec
    - usec
    - upper
    - lower
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 208
    functionName: TPM_Uint64_ConvertTo
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ticks.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: "void TPM_Uint64_ConvertTo(uint32_t *sec,\n\t\t\t\t uint32_t *usec,\n\t\t\t\t
      uint32_t upper,\n\t\t\t\t uint32_t lower)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:222,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:223,1
    - Dst: TPM_Uint64_Store
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:228,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:231,1
    - Dst: TPM_Uint64_Load
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:232,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:237,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:241,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 213
    functionDepth: 5
    functionLinenumber: 213
    functionLinenumberEnd: 243
    functionName: TPM_Uint64_Test
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ticks.c
    functionUses: 1
    functionsReached:
    - TPM_Uint64_Load
    - TPM_Sbuffer_Get
    - TPM_Sbuffer_Delete
    - printf
    - TPM_Uint64_Store
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Uint64_Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:255,1
    - Dst: TPM_Uint64_Init
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:256,1
    - Dst: TPM_Nonce_Init
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:258,1
    - Dst: TPM_Uint64_Init
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tpm_current_ticks
    argTypes:
    - TPM_CURRENT_TICKS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 261
    functionName: TPM_CurrentTicks_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ticks.c
    functionUses: 3
    functionsReached:
    - TPM_Uint64_Init
    - TPM_Nonce_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_CurrentTicks_Init(TPM_CURRENT_TICKS *tpm_current_ticks)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:273,1
    - Dst: TPM_Uint64_Init
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:276,1
    - Dst: TPM_GetTimeOfDay
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:278,1
    - Dst: TPM_Nonce_Generate
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - tpm_current_ticks
    argTypes:
    - TPM_CURRENT_TICKS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 286
    functionName: TPM_CurrentTicks_Start
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ticks.c
    functionUses: 1
    functionsReached:
    - TPM_Uint64_Init
    - TPM_GetTimeOfDay
    - printf
    - TPM_Nonce_Generate
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_CurrentTicks_Start(TPM_CURRENT_TICKS *tpm_current_ticks)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:303,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:306,1
    - Dst: TPM_Uint64_Load
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:310,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:314,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:318,1
    - Dst: TPM_Uint64_Load
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:322,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - tpm_current_ticks
    - stream
    - stream_size
    argTypes:
    - TPM_CURRENT_TICKS*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 325
    functionName: TPM_CurrentTicks_LoadAll
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ticks.c
    functionUses: 1
    functionsReached:
    - TPM_Load16
    - TPM_Uint64_Load
    - TPM_CheckTag
    - TPM_Nonce_Load
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CurrentTicks_LoadAll(TPM_CURRENT_TICKS *tpm_current_ticks,\n\t\t\t\t
      \   unsigned char **stream,\n\t\t\t\t    uint32_t *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:338,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:341,1
    - Dst: TPM_Uint64_Store
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:345,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:349,1
    - Dst: TPM_Nonce_Store
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_current_ticks
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_CURRENT_TICKS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 333
    functionDepth: 5
    functionLinenumber: 333
    functionLinenumberEnd: 356
    functionName: TPM_CurrentTicks_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ticks.c
    functionUses: 3
    functionsReached:
    - TPM_Uint64_Store
    - TPM_Nonce_Store
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CurrentTicks_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \ const TPM_CURRENT_TICKS *tpm_current_ticks)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:369,1
    - Dst: TPM_CurrentTicks_Store
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:372,1
    - Dst: TPM_Uint64_Store
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sbuffer
    - tpm_current_ticks
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_CURRENT_TICKS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 364
    functionDepth: 6
    functionLinenumber: 364
    functionLinenumberEnd: 379
    functionName: TPM_CurrentTicks_StoreAll
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ticks.c
    functionUses: 1
    functionsReached:
    - TPM_CurrentTicks_Store
    - TPM_Uint64_Store
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_CurrentTicks_StoreAll(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      \    const TPM_CURRENT_TICKS *tpm_current_ticks)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:392,1
    - Dst: TPM_GetTimeOfDay
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:396,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:416,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:432,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:438,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - tpm_current_ticks
    argTypes:
    - TPM_CURRENT_TICKS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 443
    functionName: TPM_CurrentTicks_Update
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ticks.c
    functionUses: 3
    functionsReached:
    - TPM_GetTimeOfDay
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_CurrentTicks_Update(TPM_CURRENT_TICKS *tpm_current_ticks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:452,1
    - Dst: TPM_Uint64_Copy
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:453,1
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:455,1
    - Dst: TPM_Uint64_Copy
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - TPM_CURRENT_TICKS*
    - TPM_CURRENT_TICKS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 458
    functionName: TPM_CurrentTicks_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ticks.c
    functionUses: 3
    functionsReached:
    - TPM_Nonce_Copy
    - printf
    - TPM_Uint64_Copy
    linkageType: ''
    returnType: void
    signature: "void TPM_CurrentTicks_Copy(TPM_CURRENT_TICKS *dest,\n\t\t\t   TPM_CURRENT_TICKS
      *src)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:510,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:520,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:532,1
    - Dst: TPM_CheckRequestTag0
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:536,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:540,1
    - Dst: TPM_CurrentTicks_Update
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:552,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:559,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:561,1
    - Dst: TPM_CurrentTicks_Store
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:569,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:575,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:586,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:593,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 484
    functionDepth: 6
    functionLinenumber: 484
    functionLinenumberEnd: 599
    functionName: TPM_Process_GetTicks
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ticks.c
    functionUses: 0
    functionsReached:
    - TPM_GetInParamDigest
    - TPM_CurrentTicks_Update
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_CheckRequestTag0
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_CurrentTicks_Store
    - TPM_CheckState
    - printf
    - TPM_GetOutParamDigest
    - TPM_ProcessAudit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_GetTicks(tpm_state_t *tpm_state,\n\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\tTPM_TAG tag,\n\t\t\t\tuint32_t paramSize,\n\t\t\t\tTPM_COMMAND_CODE
      ordinal,\n\t\t\t\tunsigned char *command,\n\t\t\t\tTPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:662,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:663,1
    - Dst: TPM_SignInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:664,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:665,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:666,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:672,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:678,1
    - Dst: TPM_Nonce_Load
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:679,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:683,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:684,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:690,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:702,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:703,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:707,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:711,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:719,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:723,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:737,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:744,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:750,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:754,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:767,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:779,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:783,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:793,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:803,1
    - Dst: TPM_CurrentTicks_Update
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:806,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:810,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:813,1
    - Dst: TPM_Nonce_Copy
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:815,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:818,1
    - Dst: TPM_CurrentTicks_Store
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:822,1
    - Dst: TPM_SizedBuffer_SetFromStore
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:827,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:832,1
    - Dst: TPM_SHA1_GenerateStructure
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:833,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:837,1
    - Dst: TPM_RSASignToSizedBuffer
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:838,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:848,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:850,1
    - Dst: TPM_CurrentTicks_Store
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:858,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:862,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:868,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:879,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:888,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:895,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:902,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:907,1
    - Dst: TPM_SignInfo_Delete
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:908,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:909,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_ticks.c:910,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 132
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 614
    functionDepth: 6
    functionLinenumber: 614
    functionLinenumberEnd: 912
    functionName: TPM_Process_TickStampBlob
    functionSourceFile: /src/libtpms/src/tpm12/tpm_ticks.c
    functionUses: 0
    functionsReached:
    - TPM_SHA1_GenerateStructure
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_SizedBuffer_Store
    - TPM_SizedBuffer_SetFromStore
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_Nonce_Copy
    - TPM_SignInfo_Delete
    - TPM_SizedBuffer_Init
    - memcpy
    - TPM_CurrentTicks_Update
    - TPM_SizedBuffer_Delete
    - TPM_PrintFour
    - printf
    - TPM_CheckRequestTag10
    - TPM_Digest_Store
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_Digest_Load
    - TPM_KeyHandleEntries_GetKey
    - TPM_RSASignToSizedBuffer
    - TPM_Sbuffer_Delete
    - TPM_Nonce_Load
    - TPM_AuthParams_Get
    - TPM_CurrentTicks_Store
    - TPM_CheckState
    - TPM_Load32
    - TPM_SignInfo_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_TickStampBlob(tpm_state_t *tpm_state,\n\t\t\t\t
      \    TPM_STORE_BUFFER *response,\n\t\t\t\t     TPM_TAG tag,\n\t\t\t\t     uint32_t
      paramSize,\n\t\t\t\t     TPM_COMMAND_CODE ordinal,\n\t\t\t\t     unsigned char
      *command,\n\t\t\t\t     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:98,1
    - Dst: TPM_StructVer_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tpm_bound_data
    argTypes:
    - TPM_BOUND_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 104
    functionName: TPM_BoundData_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - printf
    - TPM_StructVer_Init
    linkageType: ''
    returnType: void
    signature: void TPM_BoundData_Init(TPM_BOUND_DATA *tpm_bound_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:122,1
    - Dst: TPM_StructVer_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:124,1
    - Dst: TPM_StructVer_CheckVer
      Src: /src/libtpms/src/tpm12/tpm_storage.c:128,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_storage.c:131,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_storage.c:137,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_storage.c:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - tpm_bound_data
    - stream
    - stream_size
    argTypes:
    - TPM_BOUND_DATA*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 145
    functionName: TPM_BoundData_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_StructVer_Load
    - memcpy
    - TPM_Malloc
    - printf
    - TPM_Load8
    - TPM_StructVer_CheckVer
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BoundData_Load(TPM_BOUND_DATA *tpm_bound_data,\n\t\t\t
      \     unsigned char **stream,\n\t\t\t      uint32_t *stream_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:162,1
    - Dst: TPM_StructVer_Store
      Src: /src/libtpms/src/tpm12/tpm_storage.c:164,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_storage.c:167,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_storage.c:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sbuffer
    - tpm_bound_data
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_BOUND_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 174
    functionName: TPM_BoundData_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_StructVer_Store
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BoundData_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t
      \      const TPM_BOUND_DATA *tpm_bound_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:188,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_storage.c:190,1
    - Dst: TPM_BoundData_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_bound_data
    argTypes:
    - TPM_BOUND_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 194
    functionName: TPM_BoundData_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_BoundData_Init
    - printf
    - free
    linkageType: ''
    returnType: void
    signature: void TPM_BoundData_Delete(TPM_BOUND_DATA *tpm_bound_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:209,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:211,1
    - Dst: TPM_Secret_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:212,1
    - Dst: TPM_Digest_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:213,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tpm_sealed_data
    argTypes:
    - TPM_SEALED_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: TPM_SealedData_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 1
    functionsReached:
    - TPM_SizedBuffer_Init
    - TPM_Secret_Init
    - printf
    - TPM_Digest_Init
    linkageType: ''
    returnType: void
    signature: void TPM_SealedData_Init(TPM_SEALED_DATA *tpm_sealed_data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:234,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_storage.c:237,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:241,1
    - Dst: TPM_Secret_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:245,1
    - Dst: TPM_Digest_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:249,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - tpm_sealed_data
    - stream
    - stream_size
    argTypes:
    - TPM_SEALED_DATA*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 256
    functionName: TPM_SealedData_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 1
    functionsReached:
    - TPM_Secret_Load
    - TPM_Digest_Load
    - printf
    - TPM_SizedBuffer_Load
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SealedData_Load(TPM_SEALED_DATA *tpm_sealed_data,\n\t\t\t
      \      unsigned char **stream,\n\t\t\t       uint32_t *stream_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:268,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_storage.c:271,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_storage.c:275,1
    - Dst: TPM_Secret_Store
      Src: /src/libtpms/src/tpm12/tpm_storage.c:279,1
    - Dst: TPM_Digest_Store
      Src: /src/libtpms/src/tpm12/tpm_storage.c:283,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_storage.c:287,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - sbuffer
    - tpm_sealed_data
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_SEALED_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 290
    functionName: TPM_SealedData_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_Secret_Store
    - TPM_SizedBuffer_Store
    - printf
    - TPM_Digest_Store
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SealedData_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\tconst
      TPM_SEALED_DATA *tpm_sealed_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:303,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:305,1
    - Dst: TPM_SealedData_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tpm_sealed_data
    argTypes:
    - TPM_SEALED_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: TPM_SealedData_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 1
    functionsReached:
    - TPM_SizedBuffer_Delete
    - TPM_SealedData_Init
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_SealedData_Delete(TPM_SEALED_DATA *tpm_sealed_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:322,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:323,1
    - Dst: TPM_SealedData_Store
      Src: /src/libtpms/src/tpm12/tpm_storage.c:326,1
    - Dst: TPM_RSAPublicEncryptSbuffer_Key
      Src: /src/libtpms/src/tpm12/tpm_storage.c:331,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - enc_data
    - tpm_sealed_data
    - tpm_key
    argTypes:
    - TPM_SIZED_BUFFER*
    - TPM_SEALED_DATA*
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 315
    functionDepth: 5
    functionLinenumber: 315
    functionLinenumberEnd: 335
    functionName: TPM_SealedData_GenerateEncData
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Delete
    - printf
    - TPM_SealedData_Store
    - TPM_RSAPublicEncryptSbuffer_Key
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SealedData_GenerateEncData(TPM_SIZED_BUFFER *enc_data,\n\t\t\t\t\t
      \ const TPM_SEALED_DATA *tpm_sealed_data,\n\t\t\t\t\t  TPM_KEY *tpm_key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:352,1
    - Dst: TPM_RSAPrivateDecryptMalloc
      Src: /src/libtpms/src/tpm12/tpm_storage.c:355,1
    - Dst: TPM_SealedData_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:366,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_storage.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - tpm_sealed_data
    - enc_data
    - tpm_key
    argTypes:
    - TPM_SEALED_DATA*
    - TPM_SIZED_BUFFER*
    - TPM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 342
    functionDepth: 4
    functionLinenumber: 342
    functionLinenumberEnd: 370
    functionName: TPM_SealedData_DecryptEncData
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - free
    - printf
    - TPM_SealedData_Load
    - TPM_RSAPrivateDecryptMalloc
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SealedData_DecryptEncData(TPM_SEALED_DATA *tpm_sealed_data,\t/*
      result */\n\t\t\t\t\t TPM_SIZED_BUFFER *enc_data,\t/* encrypted input */\n\t\t\t\t\t
      TPM_KEY *tpm_key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:387,1
    - Dst: TPM_StructVer_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:389,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:395,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - tpm_stored_data
    - version
    argTypes:
    - TPM_STORED_DATA*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 399
    functionName: TPM_StoredData_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Init
    - printf
    - TPM_StructVer_Init
    linkageType: ''
    returnType: void
    signature: "void TPM_StoredData_Init(TPM_STORED_DATA *tpm_stored_data,\n\t\t\t
      unsigned int version)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:429,1
    - Dst: TPM_StructVer_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:433,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_storage.c:437,1
    - Dst: TPM_Load16
      Src: /src/libtpms/src/tpm12/tpm_storage.c:441,1
    - Dst: TPM_StructVer_CheckVer
      Src: /src/libtpms/src/tpm12/tpm_storage.c:445,1
    - Dst: TPM_StoredData_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_storage.c:449,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:453,1
    - Dst: TPM_PCRInfo_CreateFromBuffer
      Src: /src/libtpms/src/tpm12/tpm_storage.c:458,1
    - Dst: TPM_PCRInfoLong_CreateFromBuffer
      Src: /src/libtpms/src/tpm12/tpm_storage.c:462,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:469,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 4
    argNames:
    - tpm_stored_data
    - version
    - stream
    - stream_size
    argTypes:
    - TPM_STORED_DATA*
    - unsigned int*
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 413
    functionDepth: 6
    functionLinenumber: 413
    functionLinenumberEnd: 472
    functionName: TPM_StoredData_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_Load16
    - TPM_StructVer_Load
    - TPM_PCRInfoLong_CreateFromBuffer
    - printf
    - TPM_StoredData_CheckTag
    - TPM_SizedBuffer_Load
    - TPM_StructVer_CheckVer
    - TPM_PCRInfo_CreateFromBuffer
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StoredData_Load(TPM_STORED_DATA *tpm_stored_data,\n\t\t\t
      \      unsigned int *version,\n\t\t\t       unsigned char **stream,\n\t\t\t
      \      uint32_t *stream_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:491,1
    - Dst: TPM_StructVer_Store
      Src: /src/libtpms/src/tpm12/tpm_storage.c:494,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_storage.c:498,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_storage.c:502,1
    - Dst: TPM_SizedBuffer_SetStructure
      Src: /src/libtpms/src/tpm12/tpm_storage.c:508,1
    - Dst: TPM_SizedBuffer_SetStructure
      Src: /src/libtpms/src/tpm12/tpm_storage.c:513,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_storage.c:520,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - sbuffer
    - tpm_stored_data
    - version
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_STORED_DATA*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 485
    functionDepth: 5
    functionLinenumber: 485
    functionLinenumberEnd: 523
    functionName: TPM_StoredData_StoreClearData
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_SetStructure
    - TPM_Sbuffer_Append16
    - TPM_StructVer_Store
    - TPM_SizedBuffer_Store
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StoredData_StoreClearData(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t\t
      TPM_STORED_DATA *tpm_stored_data,\n\t\t\t\t\t unsigned int version)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:539,1
    - Dst: TPM_StoredData_StoreClearData
      Src: /src/libtpms/src/tpm12/tpm_storage.c:541,1
    - Dst: TPM_SizedBuffer_Store
      Src: /src/libtpms/src/tpm12/tpm_storage.c:545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - sbuffer
    - tpm_stored_data
    - version
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_STORED_DATA*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 533
    functionDepth: 6
    functionLinenumber: 533
    functionLinenumberEnd: 548
    functionName: TPM_StoredData_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Store
    - printf
    - TPM_StoredData_StoreClearData
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StoredData_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\tTPM_STORED_DATA
      *tpm_stored_data,\n\t\t\t\tunsigned int version)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:562,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:564,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:565,1
    - Dst: TPM_PCRInfo_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:567,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_storage.c:568,1
    - Dst: TPM_PCRInfoLong_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:571,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_storage.c:572,1
    - Dst: TPM_StoredData_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - tpm_stored_data
    - version
    argTypes:
    - TPM_STORED_DATA*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 559
    functionDepth: 3
    functionLinenumber: 559
    functionLinenumberEnd: 577
    functionName: TPM_StoredData_Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_SizedBuffer_Delete
    - TPM_PCRInfoLong_Delete
    - TPM_StoredData_Init
    - printf
    - TPM_PCRInfo_Delete
    - free
    linkageType: ''
    returnType: void
    signature: "void TPM_StoredData_Delete(TPM_STORED_DATA *tpm_stored_data,\n\t\t\t
      \  unsigned int version)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:587,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tpm_stored_data12
    argTypes:
    - TPM_STORED_DATA12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 596
    functionName: TPM_StoredData_CheckTag
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_StoredData_CheckTag(TPM_STORED_DATA12 *tpm_stored_data12)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:609,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:610,1
    - Dst: TPM_StoredData_StoreClearData
      Src: /src/libtpms/src/tpm12/tpm_storage.c:613,1
    - Dst: TPM_SHA1Sbuffer
      Src: /src/libtpms/src/tpm12/tpm_storage.c:616,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - tpm_digest
    - tpm_stored_data
    - version
    argTypes:
    - TPM_DIGEST
    - TPM_STORED_DATA*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 602
    functionDepth: 6
    functionLinenumber: 602
    functionLinenumberEnd: 620
    functionName: TPM_StoredData_GenerateDigest
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_StoredData_StoreClearData
    - TPM_Sbuffer_Delete
    - printf
    - TPM_Sbuffer_Init
    - TPM_SHA1Sbuffer
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_StoredData_GenerateDigest(TPM_DIGEST tpm_digest,\n\t\t\t\t\t
      TPM_STORED_DATA *tpm_stored_data,\n\t\t\t\t\t unsigned int version)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:645,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_storage.c:650,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_storage.c:653,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:657,1
    - Dst: TPM_MGF1_GenerateArray
      Src: /src/libtpms/src/tpm12/tpm_storage.c:662,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_storage.c:678,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_storage.c:679,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:683,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_storage.c:689,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_storage.c:695,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_storage.c:696,1
    - Dst: TPM_SymmetricKeyData_CtrCrypt
      Src: /src/libtpms/src/tpm12/tpm_storage.c:697,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:707,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_storage.c:712,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_storage.c:715,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 5
    argNames:
    - o1
    - adipEncScheme
    - inData
    - auth_session_data
    - nonceOdd
    argTypes:
    - BYTE**
    - TPM_ADIP_ENC_SCHEME
    - TPM_SIZED_BUFFER*
    - TPM_AUTH_SESSION_DATA*
    - TPM_NONCE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 635
    functionDepth: 4
    functionLinenumber: 635
    functionLinenumberEnd: 717
    functionName: TPM_SealCryptCommon
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_XOR
    - TPM_SHA1
    - TPM_MGF1_GenerateArray
    - TPM_PrintFour
    - TPM_SymmetricKeyData_CtrCrypt
    - TPM_Malloc
    - printf
    - TPM_PrintFourLimit
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SealCryptCommon(BYTE **o1,\t/* freed by caller */\n\t\t\t\t
      \     TPM_ADIP_ENC_SCHEME adipEncScheme,\n\t\t\t\t      TPM_SIZED_BUFFER *inData,\n\t\t\t\t
      \     TPM_AUTH_SESSION_DATA *auth_session_data,\n\t\t\t\t      TPM_NONCE nonceOdd)"
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:785,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:786,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:787,1
    - Dst: TPM_StoredData_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:788,1
    - Dst: TPM_PCRInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:789,1
    - Dst: TPM_PCRInfoLong_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:790,1
    - Dst: TPM_SealedData_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:791,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_storage.c:798,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:804,1
    - Dst: TPM_Authdata_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:805,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:809,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:813,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:816,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:822,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_storage.c:834,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_storage.c:838,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_storage.c:842,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:851,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_storage.c:865,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_storage.c:872,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_storage.c:876,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_storage.c:889,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:901,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:909,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:918,1
    - Dst: htons
      Src: /src/libtpms/src/tpm12/tpm_storage.c:932,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:946,1
    - Dst: TPM_StoredData_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:947,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:955,1
    - Dst: TPM_PCRInfo_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:964,1
    - Dst: TPM_PCRInfo_CreateFromBuffer
      Src: /src/libtpms/src/tpm12/tpm_storage.c:972,1
    - Dst: TPM_PCRSelection_GenerateDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:979,1
    - Dst: TPM_PCRInfoLong_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:991,1
    - Dst: TPM_PCRInfoLong_CreateFromBuffer
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1005,1
    - Dst: TPM_PCRSelection_GenerateDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1014,1
    - Dst: TPM_Locality_Set
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1021,1
    - Dst: TPM_AuthSessionData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1028,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1043,1
    - Dst: TPM_StoredData_GenerateDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1046,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1051,1
    - Dst: TPM_SizedBuffer_Copy
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1054,1
    - Dst: TPM_SealedData_GenerateEncData
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1066,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1073,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1075,1
    - Dst: TPM_StoredData_Store
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1083,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1089,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1100,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1109,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1116,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1123,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1128,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1129,1
    - Dst: TPM_StoredData_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1130,1
    - Dst: TPM_PCRInfo_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1131,1
    - Dst: TPM_PCRInfoLong_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1132,1
    - Dst: TPM_SealedData_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1133,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 174
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 729
    functionDepth: 7
    functionLinenumber: 729
    functionLinenumberEnd: 1135
    functionName: TPM_Process_Seal
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_CheckRequestTag1
    - TPM_Secret_Copy
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_PCRInfoLong_Delete
    - TPM_AuthSessions_TerminateHandle
    - TPM_StoredData_Init
    - TPM_PCRInfoLong_Load
    - TPM_StoredData_Delete
    - TPM_AuthSessionData_Decrypt
    - TPM_Locality_Set
    - TPM_AuthSessions_GetData
    - TPM_PCRInfoLong_Init
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_StoredData_GenerateDigest
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_Authdata_Load
    - TPM_SealedData_Delete
    - TPM_SizedBuffer_Init
    - TPM_SizedBuffer_Delete
    - TPM_SealedData_GenerateEncData
    - TPM_StoredData_Store
    - TPM_SizedBuffer_Copy
    - TPM_PCRInfo_Load
    - printf
    - htons
    - TPM_PCRInfo_Delete
    - TPM_PCRInfo_CreateFromBuffer
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_SealedData_Init
    - TPM_PCRInfo_Init
    - TPM_PCRInfoLong_CreateFromBuffer
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_PCRSelection_GenerateDigest
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_Seal(tpm_state_t *tpm_state,\n\t\t\t    TPM_STORE_BUFFER
      *response,\n\t\t\t    TPM_TAG tag,\n\t\t\t    uint32_t paramSize,\n\t\t\t    TPM_COMMAND_CODE
      ordinal,\n\t\t\t    unsigned char *command,\n\t\t\t    TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1200,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1202,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1203,1
    - Dst: TPM_StoredData_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1204,1
    - Dst: TPM_SealedData_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1205,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1212,1
    - Dst: TPM_Authdata_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1218,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1222,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1226,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1229,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1230,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1236,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1248,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1252,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1256,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1265,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1279,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1286,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1290,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1303,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1315,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1323,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1332,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1347,1
    - Dst: TPM_PCRInfoLong_CreateFromBuffer
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1352,1
    - Dst: TPM_PCRSelection_GenerateDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1366,1
    - Dst: TPM_Locality_Set
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1373,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1381,1
    - Dst: TPM_AuthSessionData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1382,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1391,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1417,1
    - Dst: TPM_SealCryptCommon
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1418,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1430,1
    - Dst: TPM_StoredData_GenerateDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1433,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1437,1
    - Dst: TPM_SizedBuffer_Set
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1440,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1453,1
    - Dst: TPM_SealedData_GenerateEncData
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1454,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1461,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1463,1
    - Dst: TPM_StoredData_Store
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1471,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1477,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1488,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1497,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1504,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1511,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1516,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1517,1
    - Dst: TPM_StoredData_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1518,1
    - Dst: TPM_SealedData_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1519,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1520,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 153
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1147
    functionDepth: 7
    functionLinenumber: 1147
    functionLinenumberEnd: 1522
    functionName: TPM_Process_Sealx
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_CheckRequestTag1
    - TPM_Secret_Copy
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_StoredData_Init
    - TPM_SizedBuffer_Set
    - TPM_StoredData_Delete
    - TPM_AuthSessionData_Decrypt
    - TPM_Locality_Set
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_StoredData_GenerateDigest
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_Authdata_Load
    - TPM_SealedData_Delete
    - TPM_SizedBuffer_Init
    - TPM_SizedBuffer_Delete
    - TPM_PrintFour
    - TPM_SealedData_GenerateEncData
    - TPM_StoredData_Store
    - printf
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_SealedData_Init
    - TPM_PCRInfoLong_CreateFromBuffer
    - TPM_AuthParams_Get
    - TPM_SealCryptCommon
    - TPM_CheckState
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - TPM_PCRSelection_GenerateDigest
    - TPM_PrintFourLimit
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_Sealx(tpm_state_t *tpm_state,\n\t\t\t     TPM_STORE_BUFFER
      *response,\n\t\t\t     TPM_TAG tag,\n\t\t\t     uint32_t paramSize,\n\t\t\t
      \    TPM_COMMAND_CODE ordinal,\n\t\t\t     unsigned char *command,\n\t\t\t     TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1596,1
    - Dst: TPM_StoredData_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1597,1
    - Dst: TPM_SealedData_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1598,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1607,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1613,1
    - Dst: TPM_StoredData_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1614,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1617,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1623,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1635,1
    - Dst: TPM_CheckRequestTag21
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1639,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1643,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1651,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1655,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1663,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1667,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1683,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1691,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1695,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1709,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1721,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1729,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1739,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1758,1
    - Dst: TPM_SealedData_DecryptEncData
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1760,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1769,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1770,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1771,1
    - Dst: TPM_Secret_Compare
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1772,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1779,1
    - Dst: TPM_StoredData_GenerateDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1781,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1786,1
    - Dst: TPM_Digest_Compare
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1787,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1792,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1805,1
    - Dst: TPM_PCRInfo_CheckDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1814,1
    - Dst: TPM_PCRInfoLong_CheckDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1830,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1842,1
    - Dst: TPM_Auth2data_Check
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1854,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1869,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1878,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1894,1
    - Dst: TPM_SealCryptCommon
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1896,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1909,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1921,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1923,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1931,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1935,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1941,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1952,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1961,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1970,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1977,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1984,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1990,1
    - Dst: TPM_StoredData_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1995,1
    - Dst: TPM_SealedData_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1996,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_storage.c:1997,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 187
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1538
    functionDepth: 7
    functionLinenumber: 1538
    functionLinenumberEnd: 1999
    functionName: TPM_Process_Unseal
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_StoredData_Init
    - TPM_StoredData_Delete
    - TPM_Auth2data_Check
    - TPM_AuthSessions_GetData
    - TPM_Sbuffer_Append
    - TPM_StoredData_Load
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_StoredData_GenerateDigest
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_SealedData_Delete
    - TPM_Digest_Compare
    - TPM_CheckRequestTag21
    - TPM_SizedBuffer_Delete
    - TPM_PrintFour
    - printf
    - TPM_SealedData_DecryptEncData
    - TPM_PCRInfo_CheckDigest
    - TPM_Secret_Compare
    - TPM_PCRInfoLong_CheckDigest
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_SealedData_Init
    - TPM_AuthParams_Get
    - TPM_SealCryptCommon
    - TPM_CheckState
    - TPM_Load32
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_Unseal(tpm_state_t *tpm_state,\n\t\t\t      TPM_STORE_BUFFER
      *response,\n\t\t\t      TPM_TAG tag,\n\t\t\t      uint32_t paramSize,\n\t\t\t
      \     TPM_COMMAND_CODE ordinal,\n\t\t\t      unsigned char *command,\n\t\t\t
      \     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2061,1
    - Dst: TPM_SizedBuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2062,1
    - Dst: TPM_BoundData_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2063,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2069,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2075,1
    - Dst: TPM_SizedBuffer_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2076,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2079,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2085,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2097,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2101,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2105,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2114,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2129,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2135,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2142,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2148,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2152,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2165,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2178,1
    - Dst: TPM_KeyParms_GetRSAKeyParms
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2184,1
    - Dst: TPM_RSAPrivateDecryptMalloc
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2189,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2201,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2214,1
    - Dst: TPM_BoundData_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2220,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2226,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2248,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2250,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2259,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2263,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2269,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2280,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2289,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2296,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2303,1
    - Dst: TPM_SizedBuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2308,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2309,1
    - Dst: TPM_BoundData_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2310,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 128
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2013
    functionDepth: 6
    functionLinenumber: 2013
    functionLinenumberEnd: 2312
    functionName: TPM_Process_UnBind
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_RSAPrivateDecryptMalloc
    - TPM_Sbuffer_Append
    - TPM_AuthSessions_GetData
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_KeyParms_GetRSAKeyParms
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - TPM_SizedBuffer_Init
    - TPM_SizedBuffer_Delete
    - TPM_BoundData_Load
    - printf
    - TPM_CheckRequestTag10
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_BoundData_Init
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_BoundData_Delete
    - TPM_Load32
    - TPM_SizedBuffer_Load
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_UnBind(tpm_state_t *tpm_state,\n\t\t\t      TPM_STORE_BUFFER
      *response,\n\t\t\t      TPM_TAG tag,\n\t\t\t      uint32_t paramSize,\n\t\t\t
      \     TPM_COMMAND_CODE ordinal,\n\t\t\t      unsigned char *command,\n\t\t\t
      \     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2373,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2374,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2375,1
    - Dst: TPM_PCRInfo_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2376,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2382,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2388,1
    - Dst: TPM_Authdata_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2389,1
    - Dst: TPM_Authdata_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2393,1
    - Dst: TPM_Key_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2397,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2403,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2415,1
    - Dst: TPM_CheckRequestTag1
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2419,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2423,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2432,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2446,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2454,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2469,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2470,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2483,1
    - Dst: TPM_Key_CheckProperties
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2484,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2489,1
    - Dst: TPM_KeyParms_GetRSAKeyParms
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2490,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2495,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2503,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2513,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2521,1
    - Dst: TPM_AuthSessionData_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2556,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2571,1
    - Dst: TPM_Key_GenerateRSA
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2572,1
    - Dst: TPM_Key_GetStoreAsymkey
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2585,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2590,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2594,1
    - Dst: TPM_Secret_Copy
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2599,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2602,1
    - Dst: TPM_Key_GenerateEncData
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2617,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2624,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2626,1
    - Dst: TPM_Key_Store
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2634,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2640,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2651,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2660,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2667,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2674,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2677,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2678,1
    - Dst: TPM_PCRInfo_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2679,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 136
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2322
    functionDepth: 7
    functionLinenumber: 2322
    functionLinenumberEnd: 2681
    functionName: TPM_Process_CreateWrapKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_CheckRequestTag1
    - TPM_Secret_Copy
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_Key_GetStoreAsymkey
    - TPM_Key_Store
    - TPM_Key_CheckProperties
    - TPM_AuthSessionData_Decrypt
    - TPM_Key_Load
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_KeyParms_GetRSAKeyParms
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Authdata_Load
    - TPM_PrintFour
    - TPM_Key_Delete
    - printf
    - TPM_PCRInfo_Delete
    - TPM_ProcessAudit
    - TPM_Key_Init
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_PCRInfo_Init
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Key_GenerateRSA
    - TPM_Load32
    - TPM_Key_GenerateEncData
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_CreateWrapKey(tpm_state_t *tpm_state,\n\t\t\t\t
      \    TPM_STORE_BUFFER *response,\n\t\t\t\t     TPM_TAG tag,\n\t\t\t\t     uint32_t
      paramSize,\n\t\t\t\t     TPM_COMMAND_CODE ordinal,\n\t\t\t\t     unsigned char
      *command,\n\t\t\t\t     TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2737,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2744,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2751,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2752,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2756,1
    - Dst: TPM_Key_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2757,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2760,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2766,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2778,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2782,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2786,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2795,1
    - Dst: TPM_LoadKeyCommon
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2808,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2828,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2830,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2838,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2844,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2855,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2864,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2871,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2878,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2885,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2886,1
    - Dst: TPM_KeyHandleEntries_DeleteHandle
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2890,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 75
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2894
      start: 2698
    functionDepth: 6
    functionLinenumber: 2698
    functionLinenumberEnd: 2894
    functionName: TPM_Process_LoadKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_Key_Load
    - TPM_KeyHandleEntries_DeleteHandle
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_GetOutParamDigest
    - TPM_PrintFour
    - TPM_Malloc
    - TPM_Key_Delete
    - printf
    - TPM_CheckRequestTag10
    - TPM_ProcessAudit
    - TPM_Key_Init
    - TPM_AuthParams_Set
    - TPM_LoadKeyCommon
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_LoadKey(tpm_state_t *tpm_state,\n\t\t\t       TPM_STORE_BUFFER
      *response,\n\t\t\t       TPM_TAG tag,\n\t\t\t       uint32_t paramSize,\n\t\t\t
      \      TPM_COMMAND_CODE ordinal,\n\t\t\t       unsigned char *command,\n\t\t\t
      \      TPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2972,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2979,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2986,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2987,1
    - Dst: TPM_Key_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2991,1
    - Dst: TPM_Key_Load
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2992,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_storage.c:2995,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3001,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3013,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3017,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3021,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3030,1
    - Dst: TPM_LoadKeyCommon
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3043,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3063,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3065,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3076,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3080,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3091,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3100,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3107,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3114,1
    - Dst: TPM_Key_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3121,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3122,1
    - Dst: TPM_KeyHandleEntries_DeleteHandle
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3126,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 75
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3130
      start: 2933
    functionDepth: 6
    functionLinenumber: 2933
    functionLinenumberEnd: 3130
    functionName: TPM_Process_LoadKey2
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_Key_Load
    - TPM_KeyHandleEntries_DeleteHandle
    - TPM_Sbuffer_Append32
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_GetOutParamDigest
    - TPM_PrintFour
    - TPM_Malloc
    - TPM_Key_Delete
    - printf
    - TPM_CheckRequestTag10
    - TPM_ProcessAudit
    - TPM_Key_Init
    - TPM_AuthParams_Set
    - TPM_LoadKeyCommon
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_LoadKey2(tpm_state_t *tpm_state,\n\t\t\t\tTPM_STORE_BUFFER
      *response,\n\t\t\t\tTPM_TAG tag,\n\t\t\t\tuint32_t paramSize,\n\t\t\t\tTPM_COMMAND_CODE
      ordinal,\n\t\t\t\tunsigned char *command,\n\t\t\t\tTPM_TRANSPORT_INTERNAL *transportInternal)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3160,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3165,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3174,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3180,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3184,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3197,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3209,1
    - Dst: TPM_Key_CheckProperties
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3218,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3219,1
    - Dst: TPM_Key_DecryptEncData
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3228,1
    - Dst: TPM_Key_CheckPubDataDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3235,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3252,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3259,1
    - Dst: TPM_Secret_Compare
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3267,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3270,1
    - Dst: TPM_KeyHandleEntries_AddKeyEntry
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3317,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3324,1
    - Dst: TPM_Key_GetPCRUsage
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3332,1
    - Dst: TPM_KeyHandleEntries_SetParentPCRStatus
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3336,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 77
    argCount: 14
    argNames:
    - inKeyHandle
    - key_added
    - hmacKey
    - auth_session_data
    - tpm_state
    - tag
    - ordinal
    - parentHandle
    - inKey
    - inParamDigest
    - authHandle
    - nonceOdd
    - continueAuthSession
    - parentAuth
    argTypes:
    - TPM_KEY_HANDLE*
    - TPM_BOOL*
    - TPM_SECRET**
    - TPM_AUTH_SESSION_DATA**
    - tpm_state_t*
    - TPM_TAG
    - TPM_COMMAND_CODE
    - TPM_KEY_HANDLE
    - TPM_KEY*
    - TPM_DIGEST
    - TPM_AUTHHANDLE
    - TPM_NONCE
    - TPM_BOOL
    - TPM_AUTHDATA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3341
      start: 3138
    functionDepth: 7
    functionLinenumber: 3138
    functionLinenumberEnd: 3341
    functionName: TPM_LoadKeyCommon
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 2
    functionsReached:
    - TPM_Key_GetPCRUsage
    - TPM_KeyHandleEntries_GetKey
    - TPM_KeyHandleEntries_AddKeyEntry
    - TPM_KeyHandleEntries_SetParentPCRStatus
    - TPM_Key_DecryptEncData
    - TPM_Authdata_Check
    - printf
    - TPM_Key_GetUsageAuth
    - TPM_Key_CheckProperties
    - TPM_Secret_Compare
    - TPM_AuthSessions_GetData
    - TPM_Key_CheckPubDataDigest
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_LoadKeyCommon(TPM_KEY_HANDLE\t*inKeyHandle,\t/* output
      */\n\t\t\t\t    TPM_BOOL\t\t*key_added,\t/* output */\n\t\t\t\t    TPM_SECRET\t\t**hmacKey,\t/*
      output */\n\t\t\t\t    TPM_AUTH_SESSION_DATA\t**auth_session_data, /* output
      */\n\t\t\t\t    tpm_state_t\t\t*tpm_state,\n\t\t\t\t    TPM_TAG\t\ttag,\n\t\t\t\t
      \   TPM_COMMAND_CODE\tordinal,\n\t\t\t\t    TPM_KEY_HANDLE\tparentHandle,\n\t\t\t\t
      \   TPM_KEY\t\t*inKey,\n\t\t\t\t    TPM_DIGEST\t\tinParamDigest,\n\t\t\t\t    TPM_AUTHHANDLE\tauthHandle,\n\t\t\t\t
      \   TPM_NONCE\t\tnonceOdd,\n\t\t\t\t    TPM_BOOL\t\tcontinueAuthSession,\n\t\t\t\t
      \   TPM_AUTHDATA\tparentAuth)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3390,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3391,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3397,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3402,1
    - Dst: TPM_GetInParamDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3408,1
    - Dst: TPM_CheckState
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3420,1
    - Dst: TPM_CheckRequestTag10
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3424,1
    - Dst: TPM_AuthParams_Get
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3428,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3437,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3451,1
    - Dst: TPM_KeyHandleEntries_GetKey
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3452,1
    - Dst: TPM_Key_GetUsageAuth
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3460,1
    - Dst: TPM_AuthSessions_GetData
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3464,1
    - Dst: TPM_Authdata_Check
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3480,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3496,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3501,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3512,1
    - Dst: TPM_Key_StorePubkey
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3526,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3536,1
    - Dst: TPM_Sbuffer_StoreInitialResponse
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3538,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3546,1
    - Dst: TPM_GetOutParamDigest
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3552,1
    - Dst: TPM_AuthParams_Set
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3563,1
    - Dst: TPM_ProcessAudit
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3572,1
    - Dst: TPM_Sbuffer_StoreFinalResponse
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3579,1
    - Dst: TPM_AuthSessions_TerminateHandle
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3586,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_storage.c:3591,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 90
    argCount: 7
    argNames:
    - tpm_state
    - response
    - tag
    - paramSize
    - ordinal
    - command
    - transportInternal
    argTypes:
    - tpm_state_t*
    - TPM_STORE_BUFFER*
    - TPM_TAG
    - uint32_t
    - TPM_COMMAND_CODE
    - unsigned char*
    - TPM_TRANSPORT_INTERNAL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3593
      start: 3349
    functionDepth: 6
    functionLinenumber: 3349
    functionLinenumberEnd: 3593
    functionName: TPM_Process_GetPubKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_storage.c
    functionUses: 0
    functionsReached:
    - TPM_Sbuffer_StoreFinalResponse
    - TPM_AuthSessions_TerminateHandle
    - TPM_Sbuffer_Append
    - TPM_Sbuffer_Init
    - TPM_AuthSessions_GetData
    - TPM_GetInParamDigest
    - TPM_Sbuffer_StoreInitialResponse
    - TPM_Authdata_Check
    - TPM_GetOutParamDigest
    - TPM_Key_GetUsageAuth
    - printf
    - TPM_Key_StorePubkey
    - TPM_CheckRequestTag10
    - TPM_ProcessAudit
    - TPM_AuthParams_Set
    - TPM_KeyHandleEntries_GetKey
    - TPM_Sbuffer_Delete
    - TPM_AuthParams_Get
    - TPM_CheckState
    - TPM_Load32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Process_GetPubKey(tpm_state_t *tpm_state,\n\t\t\t\t
      TPM_STORE_BUFFER *response,\n\t\t\t\t TPM_TAG tag,\n\t\t\t\t uint32_t paramSize,\n\t\t\t\t
      TPM_COMMAND_CODE ordinal,\n\t\t\t\t unsigned char *command,\n\t\t\t\t TPM_TRANSPORT_INTERNAL
      *transportInternal)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:178,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:181,1
    - Dst: RNG_RNGInit
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:182,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:184,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:190,1
    - Dst: RNG_SystemInfoForRNG
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:191,1
    - Dst: BL_Init
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:194,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:196,1
    - Dst: TPM_SHA1
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:203,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:206,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 209
    functionName: TPM_Crypto_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - TPM_SHA1
    - RNG_SystemInfoForRNG
    - TPM_PrintFour
    - BL_Init
    - RNG_RNGInit
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Crypto_Init()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:234,1
    - Dst: TPM_Sbuffer_Init
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:237,1
    - Dst: TPM_SHA1InitCmd
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:240,1
    - Dst: TPM_SHA1UpdateCmd
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:244,1
    - Dst: TPM_Sha1Context_Store
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:248,1
    - Dst: TPM_Sbuffer_Get
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:252,1
    - Dst: TPM_Sha1Context_Load
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:253,1
    - Dst: TPM_SHA1UpdateCmd
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:258,1
    - Dst: TPM_SHA1FinalCmd
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:262,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:266,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:268,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:269,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:270,1
    - Dst: TPM_SHA1Delete
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:274,1
    - Dst: TPM_SHA1Delete
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:275,1
    - Dst: TPM_Sbuffer_Delete
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:276,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 278
    functionName: TPM_Crypto_TestSpecific
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - TPM_Sha1Context_Store
    - TPM_Sbuffer_Get
    - TPM_PrintFour
    - TPM_Sha1Context_Load
    - TPM_SHA1FinalCmd
    - TPM_Sbuffer_Delete
    - memcmp
    - printf
    - TPM_SHA1Delete
    - TPM_SHA1InitCmd
    - TPM_SHA1UpdateCmd
    - TPM_Sbuffer_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Crypto_TestSpecific()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:292,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:295,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - buffer
    - bytes
    argTypes:
    - BYTE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 302
    functionName: TPM_Random
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 11
    functionsReached:
    - RNG_GenerateGlobalRandomBytes
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Random(BYTE *buffer, size_t bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:315,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:317,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - buffer
    - bytes
    argTypes:
    - BYTE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 330
    functionName: TPM_RandomNonZero
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 0
    functionsReached:
    - RNG_GenerateGlobalRandomBytes
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_RandomNonZero(BYTE *buffer, size_t bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:340,1
    - Dst: RNG_RandomUpdate
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:343,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - inData
    argTypes:
    - TPM_SIZED_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 350
    functionName: TPM_StirRandomCmd
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - RNG_RandomUpdate
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_StirRandomCmd(TPM_SIZED_BUFFER *inData)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - rsa_pri_key
    argTypes:
    - RSAPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 388
    functionName: TPM_RSAPrivateKeyInit
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TPM_RSAPrivateKeyInit(RSAPrivateKey *rsa_pri_key)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:408,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:418,1
    - Dst: TPM_LoadLong
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:425,1
    - Dst: TPM_RSA_exponent_verify
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:430,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:434,1
    - Dst: RSA_NewKey
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:439,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:441,1
    - Dst: TPM_memcpyPad
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:449,1
    - Dst: TPM_memcpyPad
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:456,1
    - Dst: TPM_memcpyPad
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:463,1
    - Dst: TPM_memcpyPad
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:470,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:477,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:478,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:479,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:480,1
    - Dst: PORT_FreeArena
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:487,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 7
    argNames:
    - n
    - p
    - q
    - d
    - num_bits
    - earr
    - e_size
    argTypes:
    - unsigned char**
    - unsigned char**
    - unsigned char**
    - unsigned char**
    - int
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 490
    functionName: TPM_RSAGenerateKeyPair
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 2
    functionsReached:
    - TPM_memcpyPad
    - TPM_LoadLong
    - printf
    - RSA_NewKey
    - PORT_FreeArena
    - TPM_RSA_exponent_verify
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAGenerateKeyPair(unsigned char **n,            /*
      public key - modulus */\n                                  unsigned char **p,
      \           /* private key prime */\n                                  unsigned
      char **q,            /* private key prime */\n                                  unsigned
      char **d,            /* private key (private exponent) */\n                                  int
      num_bits,                 /* key size in bits */\n                                  const
      unsigned char *earr,    /* public exponent as an array */\n                                  uint32_t
      e_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - rsaPublicKey
    - narr
    - nbytes
    - earr
    - ebytes
    argTypes:
    - RSAPublicKey*
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 517
    functionName: TPM_RSAGeneratePublicToken
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 3
    functionsReached:
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAGeneratePublicToken(RSAPublicKey *rsaPublicKey,\n\t\t\t\t\t
      \    unsigned char *narr,      \t/* public modulus */\n\t\t\t\t\t     uint32_t
      nbytes,\n\t\t\t\t\t     unsigned char *earr,      \t/* public exponent */\n\t\t\t\t\t
      \    uint32_t ebytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:533,1
    - Dst: RSA_PopulatePrivateKey
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:549,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 7
    argNames:
    - rsa_pri_key
    - narr
    - nbytes
    - earr
    - ebytes
    - darr
    - dbytes
    argTypes:
    - RSAPrivateKey*
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 556
    functionName: TPM_RSAGeneratePrivateToken
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 2
    functionsReached:
    - RSA_PopulatePrivateKey
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAGeneratePrivateToken(RSAPrivateKey *rsa_pri_key,
      /* freed by caller */\n\t\t\t\t\t      unsigned char *narr,      /* public modulus
      */\n\t\t\t\t\t      uint32_t nbytes,\n\t\t\t\t\t      unsigned char *earr,      /*
      public exponent */\n\t\t\t\t\t      uint32_t ebytes,\n\t\t\t\t\t      unsigned
      char *darr,\t/* private exponent */\n\t\t\t\t\t      uint32_t dbytes)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:584,1
    - Dst: TPM_RSAPrivateKeyInit
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:585,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:589,1
    - Dst: TPM_RSAGeneratePrivateToken
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:596,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:608,1
    - Dst: RSA_PrivateKeyOp
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:613,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:617,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:622,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:623,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:624,1
    - Dst: TPM_RSA_padding_check_PKCS1_OAEP
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:633,1
    - Dst: TPM_PKCS1_PaddingType2Check
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:643,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:650,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:655,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:657,1
    - Dst: PORT_FreeArena
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:659,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:660,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 12
    argNames:
    - decrypt_data
    - decrypt_data_length
    - decrypt_data_size
    - encScheme
    - encrypt_data
    - encrypt_data_size
    - narr
    - nbytes
    - earr
    - ebytes
    - darr
    - dbytes
    argTypes:
    - unsigned char*
    - uint32_t*
    - size_t
    - TPM_ENC_SCHEME
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 564
    functionDepth: 4
    functionLinenumber: 564
    functionLinenumberEnd: 662
    functionName: TPM_RSAPrivateDecrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 2
    functionsReached:
    - TPM_PKCS1_PaddingType2Check
    - TPM_PrintFour
    - TPM_RSAGeneratePrivateToken
    - TPM_Malloc
    - TPM_RSAPrivateKeyInit
    - printf
    - TPM_RSA_padding_check_PKCS1_OAEP
    - PORT_FreeArena
    - RSA_PrivateKeyOp
    - TPM_PrintFourLimit
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAPrivateDecrypt(unsigned char *decrypt_data,   /*
      decrypted data */\n                                 uint32_t *decrypt_data_length,\t/*
      length of data put into\n                                                                   decrypt_data
      */\n                                 size_t decrypt_data_size,      /* size
      of decrypt_data buffer */\n                                 TPM_ENC_SCHEME encScheme,
      \     /* encryption scheme */\n                                 unsigned char*
      encrypt_data,   /* encrypted data */\n                                 uint32_t
      encrypt_data_size,\n                                 unsigned char *narr,           /*
      public modulus */\n                                 uint32_t nbytes,\n                                 unsigned
      char *earr,           /* public exponent */\n                                 uint32_t
      ebytes,\n                                 unsigned char *darr,           /*
      private exponent */\n                                 uint32_t dbytes)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:681,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:684,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:692,1
    - Dst: TPM_RSA_padding_add_PKCS1_OAEP
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:696,1
    - Dst: TPM_PKCS1_PaddingType2Add
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:705,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:711,1
    - Dst: TPM_RSAPublicEncryptRaw
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:717,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:726,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 9
    argNames:
    - encrypt_data
    - encrypt_data_size
    - encScheme
    - decrypt_data
    - decrypt_data_size
    - narr
    - nbytes
    - earr
    - ebytes
    argTypes:
    - unsigned char*
    - size_t
    - TPM_ENC_SCHEME
    - unsigned char*
    - size_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 668
    functionDepth: 4
    functionLinenumber: 668
    functionLinenumberEnd: 728
    functionName: TPM_RSAPublicEncrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 2
    functionsReached:
    - TPM_Malloc
    - printf
    - TPM_Random
    - TPM_RSA_padding_add_PKCS1_OAEP
    - TPM_RSAPublicEncryptRaw
    - free
    - TPM_PKCS1_PaddingType2Add
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAPublicEncrypt(unsigned char *encrypt_data,    /*
      encrypted data */\n                                size_t encrypt_data_size,
      \      /* size of encrypted data buffer */\n                                TPM_ENC_SCHEME
      encScheme,\t/* padding type */\n                                const unsigned
      char *decrypt_data,      /* decrypted data */\n                                size_t
      decrypt_data_size,\n                                unsigned char *narr,           /*
      public modulus */\n                                uint32_t nbytes,\n                                unsigned
      char *earr,           /* public exponent */\n                                uint32_t
      ebytes)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:747,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:751,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:759,1
    - Dst: TPM_RSAGeneratePublicToken
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:766,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:773,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:774,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:775,1
    - Dst: RSA_PublicKeyOp
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:777,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:781,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:786,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:788,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 8
    argNames:
    - encrypt_data
    - encrypt_data_size
    - decrypt_data
    - decrypt_data_size
    - narr
    - nbytes
    - earr
    - ebytes
    argTypes:
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 734
    functionDepth: 3
    functionLinenumber: 734
    functionLinenumberEnd: 793
    functionName: TPM_RSAPublicEncryptRaw
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 2
    functionsReached:
    - TPM_RSAGeneratePublicToken
    - TPM_PrintFour
    - printf
    - TPM_PrintAll
    - RSA_PublicKeyOp
    - TPM_PrintFourLimit
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAPublicEncryptRaw(unsigned char *encrypt_data,\t/*
      output */\n\t\t\t\t   uint32_t encrypt_data_size,\t/* input, size of enc buffer
      */\n\t\t\t\t   unsigned char *decrypt_data,\t/* input */\n\t\t\t\t   uint32_t
      decrypt_data_size,\t/* input, size of dec buffer */\n\t\t\t\t   unsigned char
      *narr,\t\t/* public modulus */\n\t\t\t\t   uint32_t nbytes,\n\t\t\t\t   unsigned
      char *earr,\t\t/* public exponent */\n\t\t\t\t   uint32_t ebytes)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:818,1
    - Dst: TPM_RSAPrivateKeyInit
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:819,1
    - Dst: TPM_RSAGeneratePrivateToken
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:822,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:833,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:842,1
    - Dst: TPM_RSASignSHA1
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:847,1
    - Dst: TPM_RSASignDER
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:854,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:861,1
    - Dst: PORT_FreeArena
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:866,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 12
    argNames:
    - signature
    - signature_length
    - signature_size
    - sigScheme
    - message
    - message_size
    - narr
    - nbytes
    - earr
    - ebytes
    - darr
    - dbytes
    argTypes:
    - unsigned char*
    - unsigned int*
    - unsigned int
    - TPM_SIG_SCHEME
    - unsigned char*
    - size_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 868
    functionName: TPM_RSASign
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 2
    functionsReached:
    - TPM_RSAGeneratePrivateToken
    - TPM_RSASignSHA1
    - TPM_RSAPrivateKeyInit
    - printf
    - TPM_RSASignDER
    - PORT_FreeArena
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSASign(unsigned char *signature,        /* output
      */\n                       unsigned int *signature_length,  /* output, size
      of signature */\n                       unsigned int signature_size,     /*
      input, size of signature buffer */\n                       TPM_SIG_SCHEME sigScheme,
      \       /* input, type of signature */\n                       const unsigned
      char *message,    /* input */\n                       size_t message_size,             /*
      input */\n                       unsigned char *narr,             /* public
      modulus */\n                       uint32_t nbytes,\n                       unsigned
      char *earr,             /* public exponent */\n                       uint32_t
      ebytes,\n                       unsigned char *darr,             /* private
      exponent */\n                       uint32_t dbytes)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:885,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:890,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:897,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:901,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:903,1
    - Dst: TPM_RSASignDER
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:905,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:911,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - signature
    - signature_length
    - message
    - message_size
    - rsa_pri_key
    argTypes:
    - unsigned char*
    - unsigned int*
    - unsigned char*
    - size_t
    - RSAPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 876
    functionDepth: 2
    functionLinenumber: 876
    functionLinenumberEnd: 913
    functionName: TPM_RSASignSHA1
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 2
    functionsReached:
    - memcpy
    - TPM_Malloc
    - printf
    - TPM_RSASignDER
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSASignSHA1(unsigned char *signature,             /*
      output */\n                                  unsigned int *signature_length,
      /* output, size of signature */\n                                  const unsigned
      char *message,         /* input */\n                                  size_t
      message_size,                  /* input */\n                                  RSAPrivateKey
      *rsa_pri_key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:933,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:938,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:942,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:944,1
    - Dst: TPM_PKCS1_PaddingType1Add
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:946,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:953,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:955,1
    - Dst: RSA_PrivateKeyOp
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:957,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:961,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:966,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:969,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - signature
    - signature_length
    - message
    - message_size
    - rsa_pri_key
    argTypes:
    - unsigned char*
    - unsigned int*
    - unsigned char*
    - size_t
    - RSAPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 923
    functionDepth: 3
    functionLinenumber: 923
    functionLinenumberEnd: 971
    functionName: TPM_RSASignDER
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 3
    functionsReached:
    - TPM_PKCS1_PaddingType1Add
    - TPM_PrintFour
    - TPM_Malloc
    - printf
    - RSA_PrivateKeyOp
    - TPM_PrintFourLimit
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSASignDER(unsigned char *signature,              /*
      output */\n                                 unsigned int *signature_length,
      /* output, size of signature */\n                                 const unsigned
      char *message,          /* input */\n                                 size_t
      message_size,                   /* input */\n                                 RSAPrivateKey
      *rsa_pri_key)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:995,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:998,1
    - Dst: TPM_RSAPublicEncryptRaw
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1002,1
    - Dst: TPM_PKCS1_PaddingType1Check
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1013,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1020,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1028,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1030,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1031,1
    - Dst: TPM_PrintFourLimit
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1032,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1040,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 8
    argNames:
    - signature
    - signature_size
    - message
    - message_size
    - narr
    - nbytes
    - earr
    - ebytes
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 980
    functionDepth: 2
    functionLinenumber: 980
    functionLinenumberEnd: 1042
    functionName: TPM_RSAVerifySHA1
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - TPM_PKCS1_PaddingType1Check
    - TPM_Malloc
    - memcmp
    - printf
    - TPM_PrintFourLimit
    - TPM_RSAPublicEncryptRaw
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAVerifySHA1(unsigned char *signature,          /*
      input */\n\t\t\t     unsigned int signature_size, \t/* input, size of signature\n\t\t\t\t\t\t\t\t
      \  buffer */\n\t\t\t     const unsigned char *message,      /* input */\n\t\t\t
      \    uint32_t message_size,\t\t/* input */\n\t\t\t     unsigned char *narr,\t\t/*
      public modulus */\n\t\t\t     uint32_t nbytes,\n\t\t\t     unsigned char *earr,\t\t/*
      public exponent */\n\t\t\t     uint32_t ebytes)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1061,1
    - Dst: TPM_RSAPrivateKeyInit
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1062,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1068,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1075,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1082,1
    - Dst: RSA_PopulatePrivateKey
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1098,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1100,1
    - Dst: TPM_memcpyPad
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1106,1
    - Dst: TPM_memcpyPad
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1113,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1119,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1120,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1121,1
    - Dst: PORT_FreeArena
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1124,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 10
    argNames:
    - qbytes
    - qarr
    - dbytes
    - darr
    - nbytes
    - narr
    - ebytes
    - earr
    - pbytes
    - parr
    argTypes:
    - uint32_t*
    - unsigned char**
    - uint32_t*
    - unsigned char**
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1050
    functionDepth: 3
    functionLinenumber: 1050
    functionLinenumberEnd: 1126
    functionName: TPM_RSAGetPrivateKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 3
    functionsReached:
    - TPM_memcpyPad
    - TPM_PrintFour
    - RSA_PopulatePrivateKey
    - TPM_RSAPrivateKeyInit
    - printf
    - PORT_FreeArena
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_RSAGetPrivateKey(uint32_t *qbytes, unsigned char **qarr,\n
      \                               uint32_t *dbytes, unsigned char **darr,\n                                uint32_t
      nbytes, unsigned char *narr,\n                                uint32_t ebytes,
      unsigned char *earr,\n                                uint32_t pbytes, unsigned
      char *parr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1147,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1150,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1168,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - output
    - outputLength
    - input
    - inputLength
    argTypes:
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1137
    functionDepth: 1
    functionLinenumber: 1137
    functionLinenumberEnd: 1179
    functionName: TPM_PKCS1_PaddingType1Add
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - printf
    - memcpy
    - memset
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PKCS1_PaddingType1Add(unsigned char *output,\t/* to
      */\n\t\t\t\t\t    uint32_t outputLength,\n\t\t\t\t\t    const unsigned char
      *input,\t/* from */\n\t\t\t\t\t    uint32_t inputLength)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1194,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1198,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1208,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1217,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1226,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1240,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1249,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1257,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1259,1
    - Dst: TPM_PrintAll
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1260,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 3
    argNames:
    - padLength
    - input
    - inputLength
    argTypes:
    - uint32_t*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1187
    functionDepth: 2
    functionLinenumber: 1187
    functionLinenumberEnd: 1267
    functionName: TPM_PKCS1_PaddingType1Check
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - memcmp
    - printf
    - TPM_PrintAll
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PKCS1_PaddingType1Check(uint32_t *padLength,\n\t\t\t\t\t
      \     unsigned char *input,\n\t\t\t\t\t      uint32_t inputLength)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1291,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1297,1
    - Dst: TPM_RandomNonZero
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1304,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - encodedMessage
    - encodedMessageLength
    - message
    - messageLength
    argTypes:
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1284
    functionDepth: 2
    functionLinenumber: 1284
    functionLinenumberEnd: 1315
    functionName: TPM_PKCS1_PaddingType2Add
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - printf
    - memcpy
    - TPM_RandomNonZero
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PKCS1_PaddingType2Add(unsigned char *encodedMessage,
      \   \t/* to */\n\t\t\t\t\t    uint32_t encodedMessageLength,    \t/* to length
      */\n\t\t\t\t\t    const unsigned char *message,\t/* from */\n\t\t\t\t\t    uint32_t
      messageLength)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1332,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1337,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1351,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1358,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1367,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1375,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 5
    argNames:
    - outputData
    - outputDataLength
    - outputDataSize
    - inputData
    - inputDataLength
    argTypes:
    - unsigned char*
    - uint32_t*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1378
    functionName: TPM_PKCS1_PaddingType2Check
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - printf
    - memcpy
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_PKCS1_PaddingType2Check(unsigned char *outputData,\t/*
      to */\n\t\t\t\t       uint32_t *outputDataLength,\t/* to length */\n\t\t\t\t
      \      uint32_t outputDataSize,  /* pre-allocated to length */\n\t\t\t\t       unsigned
      char *inputData,\t/* from - padded data */\n\t\t\t\t       uint32_t inputDataLength)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpz_cmp_ui
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1395,1
    - Dst: mpz_sizeinbase
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - numBytes
    - bn_in
    argTypes:
    - unsigned int*
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1389
    functionDepth: 0
    functionLinenumber: 1389
    functionLinenumberEnd: 1406
    functionName: TPM_BN_num_bytes
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 7
    functionsReached:
    - mpz_sizeinbase
    - mpz_cmp_ui
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_BN_num_bytes(unsigned int *numBytes, TPM_BIGNUM bn_in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpz_cmp_ui
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1419,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bn_in
    argTypes:
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1413
    functionDepth: 1
    functionLinenumber: 1413
    functionLinenumberEnd: 1425
    functionName: TPM_BN_is_one
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - mpz_cmp_ui
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_BN_is_one(TPM_BIGNUM bn_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpz_mod
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - rem_in
    - a_in
    - m_in
    argTypes:
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1433
    functionDepth: 0
    functionLinenumber: 1433
    functionLinenumberEnd: 1445
    functionName: TPM_BN_mod
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - mpz_mod
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BN_mod(TPM_BIGNUM rem_in,\n\t\t      const TPM_BIGNUM
      a_in,\n\t\t      const TPM_BIGNUM m_in)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BN_num_bytes
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1460,1
    - Dst: mpz_fdiv_r_2exp
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - bn_in
    - n
    argTypes:
    - TPM_BIGNUM
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1453
    functionDepth: 0
    functionLinenumber: 1453
    functionLinenumberEnd: 1470
    functionName: TPM_BN_mask_bits
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 5
    functionsReached:
    - mpz_fdiv_r_2exp
    - TPM_BN_num_bytes
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_BN_mask_bits(TPM_BIGNUM bn_in, unsigned int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1485,1
    - Dst: TPM_BN_new
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1487,1
    - Dst: mpz_fdiv_q_2exp
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - rBignum_in
    - aBignum_in
    - n
    argTypes:
    - TPM_BIGNUM*
    - TPM_BIGNUM
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1477
    functionDepth: 1
    functionLinenumber: 1477
    functionLinenumberEnd: 1494
    functionName: TPM_BN_rshift
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 5
    functionsReached:
    - TPM_BN_new
    - printf
    - mpz_fdiv_q_2exp
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BN_rshift(TPM_BIGNUM *rBignum_in,              /* freed
      by caller */\n                         TPM_BIGNUM aBignum_in,\n                         int
      n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1509,1
    - Dst: TPM_BN_new
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1511,1
    - Dst: mpz_mul_2exp
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - rBignum_in
    - aBignum_in
    - n
    argTypes:
    - TPM_BIGNUM*
    - TPM_BIGNUM
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1518
    functionName: TPM_BN_lshift
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - TPM_BN_new
    - printf
    - mpz_mul_2exp
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BN_lshift(TPM_BIGNUM *rBignum_in,              /* freed
      by caller */\n                         TPM_BIGNUM aBignum_in,\n                         int
      n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1534,1
    - Dst: mpz_add
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - rBignum_in
    - aBignum_in
    - bBignum_in
    argTypes:
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1525
    functionDepth: 1
    functionLinenumber: 1525
    functionLinenumberEnd: 1538
    functionName: TPM_BN_add
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 4
    functionsReached:
    - printf
    - mpz_add
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BN_add(TPM_BIGNUM rBignum_in,\n                      TPM_BIGNUM
      aBignum_in,\n                      TPM_BIGNUM bBignum_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1554,1
    - Dst: mpz_mul
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - rBignum_in
    - aBignum_in
    - bBignum_in
    argTypes:
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1545
    functionDepth: 1
    functionLinenumber: 1545
    functionLinenumberEnd: 1558
    functionName: TPM_BN_mul
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - mpz_mul
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BN_mul(TPM_BIGNUM rBignum_in,\n                      TPM_BIGNUM
      aBignum_in,\n                      TPM_BIGNUM bBignum_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1576,1
    - Dst: mpz_powm
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - rBignum_in
    - aBignum_in
    - pBignum_in
    - nBignum_in
    argTypes:
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1579
    functionName: TPM_BN_mod_exp
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - printf
    - mpz_powm
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BN_mod_exp(TPM_BIGNUM rBignum_in,\n                          TPM_BIGNUM
      aBignum_in,\n                          TPM_BIGNUM pBignum_in,\n                          TPM_BIGNUM
      nBignum_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1597,1
    - Dst: mpz_add
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1599,1
    - Dst: mpz_mod
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - rBignum_in
    - aBignum_in
    - bBignum_in
    - mBignum_in
    argTypes:
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1586
    functionDepth: 1
    functionLinenumber: 1586
    functionLinenumberEnd: 1603
    functionName: TPM_BN_mod_add
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - mpz_mod
    - printf
    - mpz_add
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BN_mod_add(TPM_BIGNUM rBignum_in,\n                          TPM_BIGNUM
      aBignum_in,\n                          TPM_BIGNUM bBignum_in,\n                          TPM_BIGNUM
      mBignum_in)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1621,1
    - Dst: mpz_mul
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1623,1
    - Dst: mpz_mod
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - rBignum_in
    - aBignum_in
    - bBignum_in
    - mBignum_in
    argTypes:
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1610
    functionDepth: 1
    functionLinenumber: 1610
    functionLinenumberEnd: 1627
    functionName: TPM_BN_mod_mul
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - mpz_mul
    - printf
    - mpz_mod
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_BN_mod_mul(TPM_BIGNUM rBignum_in,\n                          TPM_BIGNUM
      aBignum_in,\n                          TPM_BIGNUM bBignum_in,\n                          TPM_BIGNUM
      mBignum_in)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1640,1
    - Dst: mpz_init
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - bn_in
    argTypes:
    - TPM_BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1634
    functionDepth: 2
    functionLinenumber: 1634
    functionLinenumberEnd: 1647
    functionName: TPM_BN_new
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 11
    functionsReached:
    - TPM_Malloc
    - mpz_init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_BN_new(TPM_BIGNUM *bn_in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpz_clear
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1658,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - bn_in
    argTypes:
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1654
    functionDepth: 0
    functionLinenumber: 1654
    functionLinenumberEnd: 1662
    functionName: TPM_BN_free
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 24
    functionsReached:
    - mpz_clear
    - free
    linkageType: ''
    returnType: void
    signature: void TPM_BN_free(TPM_BIGNUM bn_in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpz_export
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bin
    - bn_in
    argTypes:
    - unsigned char*
    - TPM_BIGNUM
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1671
    functionDepth: 0
    functionLinenumber: 1671
    functionLinenumberEnd: 1685
    functionName: TPM_bn2bin
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - mpz_export
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_bn2bin(unsigned char *bin,\n\t\t      TPM_BIGNUM bn_in)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1703,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1712,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1717,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1722,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1725,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1726,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - bin_out
    - bin_in
    - bin_in_length
    - padBytes
    argTypes:
    - unsigned char**
    - unsigned char*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1696
    functionDepth: 2
    functionLinenumber: 1696
    functionLinenumberEnd: 1730
    functionName: TPM_memcpyPad
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 2
    functionsReached:
    - TPM_Malloc
    - printf
    - memcpy
    - memset
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_memcpyPad(unsigned char **bin_out,\n\t\t\t\tunsigned
      char *bin_in,\n\t\t\t\tuint32_t bin_in_length,\n\t\t\t\tuint32_t padBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_BN_new
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1744,1
    - Dst: mpz_import
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1748,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - bn_in
    - bin
    - bytes
    argTypes:
    - TPM_BIGNUM*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1757
    functionName: TPM_bin2bn
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 29
    functionsReached:
    - TPM_BN_new
    - mpz_import
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_bin2bn(TPM_BIGNUM *bn_in, const unsigned char *bin,
      unsigned int bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1772,1
    - Dst: SHA1_NewContext
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1775,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1777,1
    - Dst: SHA1_Begin
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1783,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - context
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1768
    functionDepth: 1
    functionLinenumber: 1768
    functionLinenumberEnd: 1786
    functionName: TPM_SHA1InitCmd
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 4
    functionsReached:
    - SHA1_Begin
    - printf
    - SHA1_NewContext
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SHA1InitCmd(void **context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1795,1
    - Dst: SHA1_Update
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1797,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - context
    - data
    - length
    argTypes:
    - void*
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1791
    functionDepth: 1
    functionLinenumber: 1791
    functionLinenumberEnd: 1804
    functionName: TPM_SHA1UpdateCmd
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 5
    functionsReached:
    - SHA1_Update
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SHA1UpdateCmd(void *context, const unsigned char *data,
      uint32_t length)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1814,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1817,1
    - Dst: SHA1_End
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1822,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - md
    - context
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1809
    functionDepth: 1
    functionLinenumber: 1809
    functionLinenumberEnd: 1830
    functionName: TPM_SHA1FinalCmd
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 4
    functionsReached:
    - SHA1_End
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SHA1FinalCmd(unsigned char *md, void *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1837,1
    - Dst: SHA1_DestroyContext
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - context
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1834
    functionDepth: 1
    functionLinenumber: 1834
    functionLinenumberEnd: 1843
    functionName: TPM_SHA1Delete
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 7
    functionsReached:
    - SHA1_DestroyContext
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_SHA1Delete(void **context)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1901,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1904,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1905,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1911,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1916,1
    - Dst: TPM_SHA1InitCmd
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1922,1
    - Dst: SHA1_FlattenSize
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1926,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1929,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1940,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1944,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1948,1
    - Dst: TPM_Load32
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1952,1
    - Dst: SHA1_Resurrect
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1958,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1960,1
    - Dst: TPM_SHA1Delete
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1964,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 3
    argNames:
    - context
    - stream
    - stream_size
    argTypes:
    - void**
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1889
    functionDepth: 3
    functionLinenumber: 1889
    functionLinenumberEnd: 1966
    functionName: TPM_Sha1Context_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 3
    functionsReached:
    - TPM_CheckTag
    - TPM_LoadBool
    - TPM_Loadn
    - printf
    - TPM_Load32
    - TPM_SHA1Delete
    - SHA1_Resurrect
    - TPM_SHA1InitCmd
    - SHA1_FlattenSize
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Sha1Context_Load(void **context,\n\t\t\t\tunsigned
      char **stream,\n\t\t\t\tuint32_t *stream_size)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1984,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1988,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1992,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1995,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:1996,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2000,1
    - Dst: SHA1_FlattenSize
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2004,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2007,1
    - Dst: SHA1_Flatten
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2016,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2018,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2027,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2031,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2034,1
    - Dst: TPM_Sbuffer_Append32
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2041,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 2
    argNames:
    - sbuffer
    - context
    argTypes:
    - TPM_STORE_BUFFER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 1974
    functionDepth: 4
    functionLinenumber: 1974
    functionLinenumberEnd: 2044
    functionName: TPM_Sha1Context_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 3
    functionsReached:
    - TPM_Sbuffer_Append32
    - TPM_Sbuffer_Append16
    - SHA1_Flatten
    - printf
    - SHA1_FlattenSize
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Sha1Context_Store(TPM_STORE_BUFFER *sbuffer,\n\t\t\t\t
      void *context)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2059,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2061,1
    - Dst: TPM_SymmetricKeyData_Init
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tpm_symmetric_key_data
    argTypes:
    - TPM_SYMMETRIC_KEY_TOKEN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2067
      start: 2055
    functionDepth: 2
    functionLinenumber: 2055
    functionLinenumberEnd: 2067
    functionName: TPM_SymmetricKeyData_New
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 4
    functionsReached:
    - TPM_Malloc
    - printf
    - TPM_SymmetricKeyData_Init
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SymmetricKeyData_New(TPM_SYMMETRIC_KEY_TOKEN *tpm_symmetric_key_data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2075,1
    - Dst: TPM_SymmetricKeyData_Init
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2077,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tpm_symmetric_key_data
    argTypes:
    - TPM_SYMMETRIC_KEY_TOKEN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2073
    functionDepth: 1
    functionLinenumber: 2073
    functionLinenumberEnd: 2082
    functionName: TPM_SymmetricKeyData_Free
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 4
    functionsReached:
    - TPM_SymmetricKeyData_Init
    - printf
    - free
    linkageType: ''
    returnType: void
    signature: void TPM_SymmetricKeyData_Free(TPM_SYMMETRIC_KEY_TOKEN *tpm_symmetric_key_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2094,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tpm_symmetric_key_token
    argTypes:
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2089
    functionDepth: 1
    functionLinenumber: 2089
    functionLinenumberEnd: 2101
    functionName: TPM_SymmetricKeyData_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 5
    functionsReached:
    - printf
    - memset
    linkageType: ''
    returnType: void
    signature: void TPM_SymmetricKeyData_Init(TPM_SYMMETRIC_KEY_TOKEN tpm_symmetric_key_token)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2116,1
    - Dst: TPM_CheckTag
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2119,1
    - Dst: TPM_LoadBool
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2123,1
    - Dst: TPM_Load8
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2127,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - tpm_symmetric_key_token
    - stream
    - stream_size
    argTypes:
    - TPM_SYMMETRIC_KEY_TOKEN
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2108
    functionDepth: 3
    functionLinenumber: 2108
    functionLinenumberEnd: 2135
    functionName: TPM_SymmetricKeyData_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - TPM_CheckTag
    - TPM_LoadBool
    - TPM_Loadn
    - printf
    - TPM_Load8
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_Load(TPM_SYMMETRIC_KEY_TOKEN tpm_symmetric_key_token,\n
      \                                    unsigned char **stream,\n                                     uint32_t
      *stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2149,1
    - Dst: TPM_Sbuffer_Append16
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2152,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2156,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2160,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sbuffer
    - tpm_symmetric_key_token
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2142
    functionDepth: 4
    functionLinenumber: 2142
    functionLinenumberEnd: 2169
    functionName: TPM_SymmetricKeyData_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 1
    functionsReached:
    - TPM_Sbuffer_Append
    - printf
    - TPM_Sbuffer_Append16
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_Store(TPM_STORE_BUFFER *sbuffer,\n
      \                                     const TPM_SYMMETRIC_KEY_TOKEN tpm_symmetric_key_token)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2182,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - tpm_symmetric_key_token
    argTypes:
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 2176
    functionDepth: 1
    functionLinenumber: 2176
    functionLinenumberEnd: 2191
    functionName: TPM_SymmetricKeyData_GenerateKey
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 3
    functionsReached:
    - TPM_Random
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_SymmetricKeyData_GenerateKey(TPM_SYMMETRIC_KEY_TOKEN
      tpm_symmetric_key_token)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2218,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2225,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2233,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2236,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2240,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2244,1
    - Dst: AES_CreateContext
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2246,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2253,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2260,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2262,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2264,1
    - Dst: AES_Encrypt
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2266,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2271,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2276,1
    - Dst: free
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2278,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2283,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2284,1
    - Dst: AES_InitContext
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2285,1
    - Dst: AES_DestroyContext
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2292,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 5
    argNames:
    - encrypt_data
    - encrypt_length
    - decrypt_data
    - decrypt_length
    - tpm_symmetric_key_token
    argTypes:
    - unsigned char**
    - uint32_t*
    - unsigned char*
    - uint32_t
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2201
    functionDepth: 3
    functionLinenumber: 2201
    functionLinenumberEnd: 2295
    functionName: TPM_SymmetricKeyData_Encrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 2
    functionsReached:
    - AES_Encrypt
    - memcpy
    - AES_InitContext
    - TPM_PrintFour
    - AES_DestroyContext
    - AES_CreateContext
    - memset
    - TPM_Malloc
    - printf
    - free
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_Encrypt(unsigned char **encrypt_data,
      \  /* output, caller frees */\n                                        uint32_t
      *encrypt_length,\t\t/* output */\n                                        const
      unsigned char *decrypt_data,\t/* input */\n                                        uint32_t
      decrypt_length,\t\t/* input */\n                                        const
      TPM_SYMMETRIC_KEY_TOKEN\n\t\t\t\t\ttpm_symmetric_key_token)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2323,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2329,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2336,1
    - Dst: TPM_Malloc
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2342,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2346,1
    - Dst: AES_CreateContext
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2348,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2355,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2361,1
    - Dst: AES_Decrypt
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2363,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2367,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2372,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2379,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2382,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2394,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2404,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2405,1
    - Dst: AES_InitContext
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2406,1
    - Dst: AES_DestroyContext
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2413,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 5
    argNames:
    - decrypt_data
    - decrypt_length
    - encrypt_data
    - encrypt_length
    - tpm_symmetric_key_token
    argTypes:
    - unsigned char**
    - uint32_t*
    - unsigned char*
    - uint32_t
    - TPM_SYMMETRIC_KEY_TOKEN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2416
      start: 2305
    functionDepth: 3
    functionLinenumber: 2305
    functionLinenumberEnd: 2416
    functionName: TPM_SymmetricKeyData_Decrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 6
    functionsReached:
    - AES_Decrypt
    - AES_InitContext
    - TPM_PrintFour
    - AES_DestroyContext
    - AES_CreateContext
    - memset
    - TPM_Malloc
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_Decrypt(unsigned char **decrypt_data,
      \  /* output, caller frees */\n                                        uint32_t
      *decrypt_length,\t\t/* output */\n                                        const
      unsigned char *encrypt_data,\t/* input */\n                                        uint32_t
      encrypt_length,\t\t/* input */\n                                        const
      TPM_SYMMETRIC_KEY_TOKEN\n\t\t\t\t\ttpm_symmetric_key_token)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2446,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2451,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2458,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2459,1
    - Dst: AES_CreateContext
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2463,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2470,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2475,1
    - Dst: AES_InitContext
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2478,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2486,1
    - Dst: AES_Encrypt
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2492,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2497,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2504,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2509,1
    - Dst: LOAD32
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2517,1
    - Dst: STORE32
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2519,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2526,1
    - Dst: AES_InitContext
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2527,1
    - Dst: AES_DestroyContext
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2534,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 7
    argNames:
    - data_out
    - data_in
    - data_size
    - symmetric_key
    - symmetric_key_size
    - ctr_in
    - ctr_in_size
    argTypes:
    - unsigned char*
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2537
      start: 2430
    functionDepth: 3
    functionLinenumber: 2430
    functionLinenumberEnd: 2537
    functionName: TPM_SymmetricKeyData_CtrCrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 4
    functionsReached:
    - AES_Encrypt
    - TPM_XOR
    - memcpy
    - LOAD32
    - AES_InitContext
    - TPM_PrintFour
    - AES_DestroyContext
    - AES_CreateContext
    - memset
    - printf
    - STORE32
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_CtrCrypt(unsigned char *data_out,
      \              /* output */\n                                         const
      unsigned char *data_in,          /* input */\n                                         uint32_t
      data_size,\t\t\t/* input */\n                                         const
      unsigned char *symmetric_key,    /* input */\n                                         uint32_t
      symmetric_key_size,\t\t/* input */\n\t\t\t\t\t const unsigned char *ctr_in,\t\t/*
      input */\n                                         uint32_t ctr_in_size)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2563,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2568,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2575,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2576,1
    - Dst: AES_CreateContext
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2580,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2587,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2592,1
    - Dst: AES_InitContext
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2595,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2603,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2609,1
    - Dst: AES_Encrypt
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2610,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2615,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2622,1
    - Dst: TPM_XOR
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2627,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2633,1
    - Dst: memset
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2639,1
    - Dst: AES_InitContext
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2640,1
    - Dst: AES_DestroyContext
      Src: /src/libtpms/src/tpm12/tpm_crypto_freebl.c:2647,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 7
    argNames:
    - data_out
    - data_in
    - data_size
    - symmetric_key
    - symmetric_key_size
    - ivec_in
    - ivec_in_size
    argTypes:
    - unsigned char*
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2650
      start: 2548
    functionDepth: 3
    functionLinenumber: 2548
    functionLinenumberEnd: 2650
    functionName: TPM_SymmetricKeyData_OfbCrypt
    functionSourceFile: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    functionUses: 2
    functionsReached:
    - AES_Encrypt
    - TPM_XOR
    - memcpy
    - AES_InitContext
    - TPM_PrintFour
    - AES_DestroyContext
    - AES_CreateContext
    - memset
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_SymmetricKeyData_OfbCrypt(unsigned char *data_out,
      \      \t/* output */\n                                         const unsigned
      char *data_in,  \t/* input */\n                                         uint32_t
      data_size,\t\t\t/* input */\n                                         const
      unsigned char *symmetric_key,    /* in */\n                                         uint32_t
      symmetric_key_size,\t\t/* in */\n                                         unsigned
      char *ivec_in,        \t/* input */\n                                         uint32_t
      ivec_in_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nonce.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tpm_nonce
    argTypes:
    - TPM_NONCE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: TPM_Nonce_Init
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nonce.c
    functionUses: 15
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_Nonce_Init(TPM_NONCE tpm_nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nonce.c:77,1
    - Dst: TPM_Loadn
      Src: /src/libtpms/src/tpm12/tpm_nonce.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - tpm_nonce
    - stream
    - stream_size
    argTypes:
    - TPM_NONCE
    - unsigned char**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: TPM_Nonce_Load
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nonce.c
    functionUses: 31
    functionsReached:
    - printf
    - TPM_Loadn
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Nonce_Load(TPM_NONCE tpm_nonce,\n                          unsigned
      char **stream,\n                          uint32_t *stream_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nonce.c:95,1
    - Dst: TPM_Sbuffer_Append
      Src: /src/libtpms/src/tpm12/tpm_nonce.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sbuffer
    - tpm_nonce
    argTypes:
    - TPM_STORE_BUFFER*
    - TPM_NONCE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: TPM_Nonce_Store
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nonce.c
    functionUses: 21
    functionsReached:
    - printf
    - TPM_Sbuffer_Append
    linkageType: ''
    returnType: TPM_RESULT
    signature: "TPM_RESULT TPM_Nonce_Store(TPM_STORE_BUFFER *sbuffer,\n                           const
      TPM_NONCE tpm_nonce)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nonce.c:105,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm12/tpm_nonce.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - destination
    - source
    argTypes:
    - TPM_NONCE
    - TPM_NONCE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: TPM_Nonce_Copy
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nonce.c
    functionUses: 17
    functionsReached:
    - printf
    - memcpy
    linkageType: ''
    returnType: void
    signature: void TPM_Nonce_Copy(TPM_NONCE destination, const TPM_NONCE source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nonce.c:119,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm12/tpm_nonce.c:120,1
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nonce.c:122,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_nonce.c:123,1
    - Dst: TPM_PrintFour
      Src: /src/libtpms/src/tpm12/tpm_nonce.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - expect
    - actual
    argTypes:
    - TPM_NONCE
    - TPM_NONCE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 128
    functionName: TPM_Nonce_Compare
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nonce.c
    functionUses: 6
    functionsReached:
    - memcmp
    - printf
    - TPM_PrintFour
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Nonce_Compare(TPM_NONCE expect, const TPM_NONCE actual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nonce.c:137,1
    - Dst: TPM_Random
      Src: /src/libtpms/src/tpm12/tpm_nonce.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tpm_nonce
    argTypes:
    - TPM_NONCE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: TPM_Nonce_Generate
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nonce.c
    functionUses: 16
    functionsReached:
    - TPM_Random
    - printf
    linkageType: ''
    returnType: TPM_RESULT
    signature: TPM_RESULT TPM_Nonce_Generate(TPM_NONCE tpm_nonce)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm12/tpm_nonce.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - isZero
    - tpm_nonce
    argTypes:
    - TPM_BOOL*
    - TPM_NONCE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 156
    functionName: TPM_Nonce_IsZero
    functionSourceFile: /src/libtpms/src/tpm12/tpm_nonce.c
    functionUses: 3
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void TPM_Nonce_IsZero(TPM_BOOL *isZero, TPM_NONCE tpm_nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 987
    functionName: TPMA_ALGORITHM_TO_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_ALGORITHM_TO_UINT32(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 988
    functionName: UINT32_TO_TPMA_ALGORITHM
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT32_TO_TPMA_ALGORITHM(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 990
    functionName: TPMA_ALGORITHM_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_ALGORITHM_TO_BYTE_ARRAY(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 995
    functionName: BYTE_ARRAY_TO_TPMA_ALGORITHM
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_TPMA_ALGORITHM(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - asymmetric
    - ','
    - symmetric
    - ','
    - hash
    - ','
    - object
    - ','
    - bits_at_4
    - ','
    - signing
    - ','
    - encrypting
    - ','
    - method
    - ','
    - bits_at_11
    - )
    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: 1023
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1023
    functionName: TPMA_ALGORITHM_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_ALGORITHM_INITIALIZER(asymmetric,                               \\\n
      \                                    symmetric,                                \\\n
      \                                    hash,                                     \\\n
      \                                    object,                                   \\\n
      \                                    bits_at_4,                                \\\n
      \                                    signing,                                  \\\n
      \                                    encrypting,                               \\\n
      \                                    method,                                   \\\n
      \                                    bits_at_11)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - asymmetric
    - ','
    - symmetric
    - ','
    - hash
    - ','
    - object
    - ','
    - bits_at_4
    - ','
    - signing
    - ','
    - encrypting
    - ','
    - method
    - ','
    - bits_at_11
    - )
    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: 1049
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1049
    functionName: TPMA_ALGORITHM_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_ALGORITHM_INITIALIZER(asymmetric,                            \\\n
      \                                    symmetric,                             \\\n
      \                                    hash,                                  \\\n
      \                                    object,                                \\\n
      \                                    bits_at_4,                             \\\n
      \                                    signing,                               \\\n
      \                                    encrypting,                            \\\n
      \                                    method,                                \\\n
      \                                    bits_at_11)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1054
    functionDepth: 0
    functionLinenumber: 1054
    functionLinenumberEnd: 1055
    functionName: TPMA_OBJECT_TO_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_OBJECT_TO_UINT32(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1056
    functionName: UINT32_TO_TPMA_OBJECT
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT32_TO_TPMA_OBJECT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1058
    functionName: TPMA_OBJECT_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_OBJECT_TO_BYTE_ARRAY(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1063
    functionName: BYTE_ARRAY_TO_TPMA_OBJECT
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_TPMA_OBJECT(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1111
    functionName: TPMA_SESSION_TO_UINT8
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_SESSION_TO_UINT8(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1112
    functionName: UINT8_TO_TPMA_SESSION
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT8_TO_TPMA_SESSION(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1114
    functionName: TPMA_SESSION_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_SESSION_TO_BYTE_ARRAY(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1119
    functionName: BYTE_ARRAY_TO_TPMA_SESSION
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_TPMA_SESSION(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - continuesession
    - ','
    - auditexclusive
    - ','
    - auditreset
    - ','
    - bits_at_3
    - ','
    - decrypt
    - ','
    - encrypt
    - ','
    - audit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1143
    functionName: TPMA_SESSION_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_SESSION_INITIALIZER(continuesession,                                 \\\n
      \                                  auditexclusive,                                  \\\n
      \                                  auditreset,                                      \\\n
      \                                  bits_at_3,                                       \\\n
      \                                  decrypt,                                         \\\n
      \                                  encrypt,                                         \\\n
      \                                  audit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - continuesession
    - ','
    - auditexclusive
    - ','
    - auditreset
    - ','
    - bits_at_3
    - ','
    - decrypt
    - ','
    - encrypt
    - ','
    - audit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1156
    functionDepth: 0
    functionLinenumber: 1156
    functionLinenumberEnd: 1166
    functionName: TPMA_SESSION_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_SESSION_INITIALIZER(continuesession,                        \\\n
      \                                  auditexclusive,                         \\\n
      \                                  auditreset,                             \\\n
      \                                  bits_at_3,                              \\\n
      \                                  decrypt,                                \\\n
      \                                  encrypt,                                \\\n
      \                                  audit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1172
    functionName: TPMA_LOCALITY_TO_UINT8
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_LOCALITY_TO_UINT8(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1173
    functionName: UINT8_TO_TPMA_LOCALITY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT8_TO_TPMA_LOCALITY(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1175
    functionName: TPMA_LOCALITY_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_LOCALITY_TO_BYTE_ARRAY(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1175
    functionDepth: 0
    functionLinenumber: 1175
    functionLinenumberEnd: 1180
    functionName: BYTE_ARRAY_TO_TPMA_LOCALITY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_TPMA_LOCALITY(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - tpm_loc_zero
    - ','
    - tpm_loc_one
    - ','
    - tpm_loc_two
    - ','
    - tpm_loc_three
    - ','
    - tpm_loc_four
    - ','
    - extended
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1192
    functionDepth: 0
    functionLinenumber: 1192
    functionLinenumberEnd: 1198
    functionName: TPMA_LOCALITY_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_LOCALITY_INITIALIZER(                                                 \\\n
      \     tpm_loc_zero, tpm_loc_one, tpm_loc_two, tpm_loc_three, tpm_loc_four, extended)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - tpm_loc_zero
    - ','
    - tpm_loc_one
    - ','
    - tpm_loc_two
    - ','
    - tpm_loc_three
    - ','
    - tpm_loc_four
    - ','
    - extended
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1211
    functionDepth: 0
    functionLinenumber: 1211
    functionLinenumberEnd: 1216
    functionName: TPMA_LOCALITY_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_LOCALITY_INITIALIZER(                                                 \\\n
      \     tpm_loc_zero, tpm_loc_one, tpm_loc_two, tpm_loc_three, tpm_loc_four, extended)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1222
    functionName: TPMA_PERMANENT_TO_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_PERMANENT_TO_UINT32(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1222
    functionDepth: 0
    functionLinenumber: 1222
    functionLinenumberEnd: 1223
    functionName: UINT32_TO_TPMA_PERMANENT
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT32_TO_TPMA_PERMANENT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1223
    functionDepth: 0
    functionLinenumber: 1223
    functionLinenumberEnd: 1225
    functionName: TPMA_PERMANENT_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_PERMANENT_TO_BYTE_ARRAY(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1225
    functionDepth: 0
    functionLinenumber: 1225
    functionLinenumberEnd: 1230
    functionName: BYTE_ARRAY_TO_TPMA_PERMANENT
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_TPMA_PERMANENT(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - ownerauthset
    - ','
    - endorsementauthset
    - ','
    - lockoutauthset
    - ','
    - bits_at_3
    - ','
    - disableclear
    - ','
    - inlockout
    - ','
    - tpmgeneratedeps
    - ','
    - bits_at_11
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1244
    functionDepth: 0
    functionLinenumber: 1244
    functionLinenumberEnd: 1256
    functionName: TPMA_PERMANENT_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_PERMANENT_INITIALIZER(ownerauthset,                                   \\\n
      \                                    endorsementauthset,                             \\\n
      \                                    lockoutauthset,                                 \\\n
      \                                    bits_at_3,                                      \\\n
      \                                    disableclear,                                   \\\n
      \                                    inlockout,                                      \\\n
      \                                    tpmgeneratedeps,                                \\\n
      \                                    bits_at_11)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - ownerauthset
    - ','
    - endorsementauthset
    - ','
    - lockoutauthset
    - ','
    - bits_at_3
    - ','
    - disableclear
    - ','
    - inlockout
    - ','
    - tpmgeneratedeps
    - ','
    - bits_at_11
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1279
    functionName: TPMA_PERMANENT_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_PERMANENT_INITIALIZER(ownerauthset,                     \\\n
      \                                    endorsementauthset,               \\\n
      \                                    lockoutauthset,                   \\\n
      \                                    bits_at_3,                        \\\n
      \                                    disableclear,                     \\\n
      \                                    inlockout,                        \\\n
      \                                    tpmgeneratedeps,                  \\\n
      \                                    bits_at_11)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1285
    functionName: TPMA_STARTUP_CLEAR_TO_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_STARTUP_CLEAR_TO_UINT32(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1285
    functionDepth: 0
    functionLinenumber: 1285
    functionLinenumberEnd: 1286
    functionName: UINT32_TO_TPMA_STARTUP_CLEAR
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT32_TO_TPMA_STARTUP_CLEAR(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1286
    functionDepth: 0
    functionLinenumber: 1286
    functionLinenumberEnd: 1288
    functionName: TPMA_STARTUP_CLEAR_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_STARTUP_CLEAR_TO_BYTE_ARRAY(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1293
    functionName: BYTE_ARRAY_TO_TPMA_STARTUP_CLEAR
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_TPMA_STARTUP_CLEAR(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - phenable
    - ','
    - shenable
    - ','
    - ehenable
    - ','
    - phenablenv
    - ','
    - bits_at_4
    - ','
    - orderly
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1310
    functionName: TPMA_STARTUP_CLEAR_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_STARTUP_CLEAR_INITIALIZER(                              \\\n
      \     phenable, shenable, ehenable, phenablenv, bits_at_4, orderly)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - phenable
    - ','
    - shenable
    - ','
    - ehenable
    - ','
    - phenablenv
    - ','
    - bits_at_4
    - ','
    - orderly
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1321
    functionDepth: 0
    functionLinenumber: 1321
    functionLinenumberEnd: 1325
    functionName: TPMA_STARTUP_CLEAR_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_STARTUP_CLEAR_INITIALIZER(                                      \\\n
      \     phenable, shenable, ehenable, phenablenv, bits_at_4, orderly)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1331
    functionName: TPMA_MEMORY_TO_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_MEMORY_TO_UINT32(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1331
    functionDepth: 0
    functionLinenumber: 1331
    functionLinenumberEnd: 1332
    functionName: UINT32_TO_TPMA_MEMORY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT32_TO_TPMA_MEMORY(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1332
    functionDepth: 0
    functionLinenumber: 1332
    functionLinenumberEnd: 1334
    functionName: TPMA_MEMORY_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_MEMORY_TO_BYTE_ARRAY(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1339
    functionName: BYTE_ARRAY_TO_TPMA_MEMORY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_TPMA_MEMORY(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - sharedram
    - ','
    - sharednv
    - ','
    - objectcopiedtoram
    - ','
    - bits_at_3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1353
    functionName: TPMA_MEMORY_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_MEMORY_INITIALIZER(sharedram, sharednv, objectcopiedtoram, bits_at_3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - sharedram
    - ','
    - sharednv
    - ','
    - objectcopiedtoram
    - ','
    - bits_at_3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1362
    functionDepth: 0
    functionLinenumber: 1362
    functionLinenumberEnd: 1364
    functionName: TPMA_MEMORY_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_MEMORY_INITIALIZER(sharedram, sharednv, objectcopiedtoram, bits_at_3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1369
    functionDepth: 0
    functionLinenumber: 1369
    functionLinenumberEnd: 1370
    functionName: TPMA_CC_TO_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_CC_TO_UINT32(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1371
    functionName: UINT32_TO_TPMA_CC
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT32_TO_TPMA_CC(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1371
    functionDepth: 0
    functionLinenumber: 1371
    functionLinenumberEnd: 1372
    functionName: TPMA_CC_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_CC_TO_BYTE_ARRAY(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1377
    functionName: BYTE_ARRAY_TO_TPMA_CC
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_TPMA_CC(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - commandindex
    - ','
    - bits_at_16
    - ','
    - nv
    - ','
    - extensive
    - ','
    - flushed
    - ','
    - chandles
    - ','
    - rhandle
    - ','
    - v
    - ','
    - bits_at_30
    - )
    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: 1405
      start: 1392
    functionDepth: 0
    functionLinenumber: 1392
    functionLinenumberEnd: 1405
    functionName: TPMA_CC_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_CC_INITIALIZER(commandindex,                                       \\\n
      \                             bits_at_16,                                         \\\n
      \                             nv,                                                 \\\n
      \                             extensive,                                          \\\n
      \                             flushed,                                            \\\n
      \                             chandles,                                           \\\n
      \                             rhandle,                                            \\\n
      \                             v,                                                  \\\n
      \                             bits_at_30)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - commandindex
    - ','
    - bits_at_16
    - ','
    - nv
    - ','
    - extensive
    - ','
    - flushed
    - ','
    - chandles
    - ','
    - rhandle
    - ','
    - v
    - ','
    - bits_at_30
    - )
    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: 1432
      start: 1421
    functionDepth: 0
    functionLinenumber: 1421
    functionLinenumberEnd: 1432
    functionName: TPMA_CC_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_CC_INITIALIZER(commandindex,                          \\\n                              bits_at_16,
      \                           \\\n                              nv,                                    \\\n
      \                             extensive,                             \\\n                              flushed,
      \                              \\\n                              chandles,                              \\\n
      \                             rhandle,                               \\\n                              v,
      \                                    \\\n                              bits_at_30)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1437
    functionDepth: 0
    functionLinenumber: 1437
    functionLinenumberEnd: 1438
    functionName: TPMA_MODES_TO_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_MODES_TO_UINT32(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1438
    functionDepth: 0
    functionLinenumber: 1438
    functionLinenumberEnd: 1439
    functionName: UINT32_TO_TPMA_MODES
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT32_TO_TPMA_MODES(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1439
    functionDepth: 0
    functionLinenumber: 1439
    functionLinenumberEnd: 1441
    functionName: TPMA_MODES_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_MODES_TO_BYTE_ARRAY(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1446
    functionName: BYTE_ARRAY_TO_TPMA_MODES
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_TPMA_MODES(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - fips_140_2
    - ','
    - fips_140_3
    - ','
    - fips_140_3_indicator
    - ','
    - bits_at_4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1456
    functionDepth: 0
    functionLinenumber: 1456
    functionLinenumberEnd: 1461
    functionName: TPMA_MODES_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_MODES_INITIALIZER(                                 \\\n      fips_140_2,
      fips_140_3, fips_140_3_indicator, bits_at_4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - fips_140_2
    - ','
    - fips_140_3
    - ','
    - fips_140_3_indicator
    - ','
    - bits_at_4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1471
    functionDepth: 0
    functionLinenumber: 1471
    functionLinenumberEnd: 1475
    functionName: TPMA_MODES_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_MODES_INITIALIZER(                              \\\n      fips_140_2,
      fips_140_3, fips_140_3_indicator, bits_at_4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1481
    functionName: TPMA_X509_KEY_USAGE_TO_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_X509_KEY_USAGE_TO_UINT32(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1481
    functionDepth: 0
    functionLinenumber: 1481
    functionLinenumberEnd: 1482
    functionName: UINT32_TO_TPMA_X509_KEY_USAGE
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT32_TO_TPMA_X509_KEY_USAGE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1482
    functionDepth: 0
    functionLinenumber: 1482
    functionLinenumberEnd: 1484
    functionName: TPMA_X509_KEY_USAGE_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_X509_KEY_USAGE_TO_BYTE_ARRAY(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1484
    functionDepth: 0
    functionLinenumber: 1484
    functionLinenumberEnd: 1489
    functionName: BYTE_ARRAY_TO_TPMA_X509_KEY_USAGE
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_TPMA_X509_KEY_USAGE(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - bits_at_0
    - ','
    - decipheronly
    - ','
    - encipheronly
    - ','
    - crlsign
    - ','
    - keycertsign
    - ','
    - keyagreement
    - ','
    - dataencipherment
    - ','
    - keyencipherment
    - ','
    - nonrepudiation
    - ','
    - digitalsignature
    - )
    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: 1520
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1520
    functionName: TPMA_X509_KEY_USAGE_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_X509_KEY_USAGE_INITIALIZER(bits_at_0,                                 \\\n
      \                                         decipheronly,                              \\\n
      \                                         encipheronly,                              \\\n
      \                                         crlsign,                                   \\\n
      \                                         keycertsign,                               \\\n
      \                                         keyagreement,                              \\\n
      \                                         dataencipherment,                          \\\n
      \                                         keyencipherment,                           \\\n
      \                                         nonrepudiation,                            \\\n
      \                                         digitalsignature)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - bits_at_0
    - ','
    - decipheronly
    - ','
    - encipheronly
    - ','
    - crlsign
    - ','
    - keycertsign
    - ','
    - keyagreement
    - ','
    - dataencipherment
    - ','
    - keyencipherment
    - ','
    - nonrepudiation
    - ','
    - digitalsignature
    - )
    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: 1550
      start: 1535
    functionDepth: 0
    functionLinenumber: 1535
    functionLinenumberEnd: 1550
    functionName: TPMA_X509_KEY_USAGE_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_X509_KEY_USAGE_INITIALIZER(bits_at_0,                           \\\n
      \                                         decipheronly,                        \\\n
      \                                         encipheronly,                        \\\n
      \                                         crlsign,                             \\\n
      \                                         keycertsign,                         \\\n
      \                                         keyagreement,                        \\\n
      \                                         dataencipherment,                    \\\n
      \                                         keyencipherment,                     \\\n
      \                                         nonrepudiation,                      \\\n
      \                                         digitalsignature)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1555
    functionDepth: 0
    functionLinenumber: 1555
    functionLinenumberEnd: 1556
    functionName: TPMA_ACT_TO_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_ACT_TO_UINT32(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1556
    functionDepth: 0
    functionLinenumber: 1556
    functionLinenumberEnd: 1557
    functionName: UINT32_TO_TPMA_ACT
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT32_TO_TPMA_ACT(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1557
    functionDepth: 0
    functionLinenumber: 1557
    functionLinenumberEnd: 1559
    functionName: TPMA_ACT_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_ACT_TO_BYTE_ARRAY(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1559
    functionDepth: 0
    functionLinenumber: 1559
    functionLinenumberEnd: 1564
    functionName: BYTE_ARRAY_TO_TPMA_ACT
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_TPMA_ACT(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - signaled
    - ','
    - preservesignaled
    - ','
    - bits_at_2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1573
    functionDepth: 0
    functionLinenumber: 1573
    functionLinenumberEnd: 1577
    functionName: TPMA_ACT_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_ACT_INITIALIZER(signaled, preservesignaled, bits_at_2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - signaled
    - ','
    - preservesignaled
    - ','
    - bits_at_2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1585
    functionDepth: 0
    functionLinenumber: 1585
    functionLinenumberEnd: 1587
    functionName: TPMA_ACT_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_ACT_INITIALIZER(signaled, preservesignaled, bits_at_2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2786
      start: 2785
    functionDepth: 0
    functionLinenumber: 2785
    functionLinenumberEnd: 2786
    functionName: TPM_NV_INDEX_TO_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_NV_INDEX_TO_UINT32(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2787
      start: 2786
    functionDepth: 0
    functionLinenumber: 2786
    functionLinenumberEnd: 2787
    functionName: UINT32_TO_TPM_NV_INDEX
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT32_TO_TPM_NV_INDEX(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2789
      start: 2787
    functionDepth: 0
    functionLinenumber: 2787
    functionLinenumberEnd: 2789
    functionName: TPM_NV_INDEX_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_NV_INDEX_TO_BYTE_ARRAY(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2794
      start: 2789
    functionDepth: 0
    functionLinenumber: 2789
    functionLinenumberEnd: 2794
    functionName: BYTE_ARRAY_TO_TPM_NV_INDEX
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_TPM_NV_INDEX(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - index
    - ','
    - rh_nv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2802
    functionDepth: 0
    functionLinenumber: 2802
    functionLinenumberEnd: 2806
    functionName: TPM_NV_INDEX_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_NV_INDEX_INITIALIZER(index, rh_nv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - index
    - ','
    - rh_nv
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2818
      start: 2816
    functionDepth: 0
    functionLinenumber: 2816
    functionLinenumberEnd: 2818
    functionName: TPM_NV_INDEX_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_NV_INDEX_INITIALIZER(index, rh_nv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2840
      start: 2839
    functionDepth: 0
    functionLinenumber: 2839
    functionLinenumberEnd: 2840
    functionName: TPMA_NV_TO_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_NV_TO_UINT32(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2840
    functionDepth: 0
    functionLinenumber: 2840
    functionLinenumberEnd: 2841
    functionName: UINT32_TO_TPMA_NV
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT32_TO_TPMA_NV(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2841
    functionDepth: 0
    functionLinenumber: 2841
    functionLinenumberEnd: 2842
    functionName: TPMA_NV_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_NV_TO_BYTE_ARRAY(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2847
      start: 2842
    functionDepth: 0
    functionLinenumber: 2842
    functionLinenumberEnd: 2847
    functionName: BYTE_ARRAY_TO_TPMA_NV
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_TPMA_NV(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - ppwrite
    - ','
    - ownerwrite
    - ','
    - authwrite
    - ','
    - policywrite
    - ','
    - tpm_nt
    - ','
    - bits_at_8
    - ','
    - policy_delete
    - ','
    - writelocked
    - ','
    - writeall
    - ','
    - writedefine
    - ','
    - write_stclear
    - ','
    - globallock
    - ','
    - ppread
    - ','
    - ownerread
    - ','
    - authread
    - ','
    - policyread
    - ','
    - bits_at_20
    - ','
    - no_da
    - ','
    - orderly
    - ','
    - clear_stclear
    - ','
    - readlocked
    - ','
    - written
    - ','
    - platformcreate
    - ','
    - read_stclear
    - )
    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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2908
      start: 2877
    functionDepth: 0
    functionLinenumber: 2877
    functionLinenumberEnd: 2908
    functionName: TPMA_NV_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_NV_INITIALIZER(ppwrite,                                            \\\n
      \                             ownerwrite,                                         \\\n
      \                             authwrite,                                          \\\n
      \                             policywrite,                                        \\\n
      \                             tpm_nt,                                             \\\n
      \                             bits_at_8,                                          \\\n
      \                             policy_delete,                                      \\\n
      \                             writelocked,                                        \\\n
      \                             writeall,                                           \\\n
      \                             writedefine,                                        \\\n
      \                             write_stclear,                                      \\\n
      \                             globallock,                                         \\\n
      \                             ppread,                                             \\\n
      \                             ownerread,                                          \\\n
      \                             authread,                                           \\\n
      \                             policyread,                                         \\\n
      \                             bits_at_20,                                         \\\n
      \                             no_da,                                              \\\n
      \                             orderly,                                            \\\n
      \                             clear_stclear,                                      \\\n
      \                             readlocked,                                         \\\n
      \                             written,                                            \\\n
      \                             platformcreate,                                     \\\n
      \                             read_stclear)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - ppwrite
    - ','
    - ownerwrite
    - ','
    - authwrite
    - ','
    - policywrite
    - ','
    - tpm_nt
    - ','
    - bits_at_8
    - ','
    - policy_delete
    - ','
    - writelocked
    - ','
    - writeall
    - ','
    - writedefine
    - ','
    - write_stclear
    - ','
    - globallock
    - ','
    - ppread
    - ','
    - ownerread
    - ','
    - authread
    - ','
    - policyread
    - ','
    - bits_at_20
    - ','
    - no_da
    - ','
    - orderly
    - ','
    - clear_stclear
    - ','
    - readlocked
    - ','
    - written
    - ','
    - platformcreate
    - ','
    - read_stclear
    - )
    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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2970
      start: 2938
    functionDepth: 0
    functionLinenumber: 2938
    functionLinenumberEnd: 2970
    functionName: TPMA_NV_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_NV_INITIALIZER(ppwrite,                                          \\\n
      \                             ownerwrite,                                       \\\n
      \                             authwrite,                                        \\\n
      \                             policywrite,                                      \\\n
      \                             tpm_nt,                                           \\\n
      \                             bits_at_8,                                        \\\n
      \                             policy_delete,                                    \\\n
      \                             writelocked,                                      \\\n
      \                             writeall,                                         \\\n
      \                             writedefine,                                      \\\n
      \                             write_stclear,                                    \\\n
      \                             globallock,                                       \\\n
      \                             ppread,                                           \\\n
      \                             ownerread,                                        \\\n
      \                             authread,                                         \\\n
      \                             policyread,                                       \\\n
      \                             bits_at_20,                                       \\\n
      \                             no_da,                                            \\\n
      \                             orderly,                                          \\\n
      \                             clear_stclear,                                    \\\n
      \                             readlocked,                                       \\\n
      \                             written,                                          \\\n
      \                             platformcreate,                                   \\\n
      \                             read_stclear)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2976
      start: 2975
    functionDepth: 0
    functionLinenumber: 2975
    functionLinenumberEnd: 2976
    functionName: TPMA_NV_EXP_TO_UINT64
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_NV_EXP_TO_UINT64(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2977
      start: 2976
    functionDepth: 0
    functionLinenumber: 2976
    functionLinenumberEnd: 2977
    functionName: UINT64_TO_TPMA_NV_EXP
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT64_TO_TPMA_NV_EXP(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2979
      start: 2977
    functionDepth: 0
    functionLinenumber: 2977
    functionLinenumberEnd: 2979
    functionName: TPMA_NV_EXP_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_NV_EXP_TO_BYTE_ARRAY(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2984
      start: 2979
    functionDepth: 0
    functionLinenumber: 2979
    functionLinenumberEnd: 2984
    functionName: BYTE_ARRAY_TO_TPMA_NV_EXP
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_TPMA_NV_EXP(i, a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 57
    argNames:
    - (
    - tpma_nv_ppwrite
    - ','
    - tpma_nv_ownerwrite
    - ','
    - tpma_nv_authwrite
    - ','
    - tpma_nv_policywrite
    - ','
    - tpm_nt
    - ','
    - bits_at_8
    - ','
    - tpma_nv_policy_delete
    - ','
    - tpma_nv_writelocked
    - ','
    - tpma_nv_writeall
    - ','
    - tpma_nv_writedefine
    - ','
    - tpma_nv_write_stclear
    - ','
    - tpma_nv_globallock
    - ','
    - tpma_nv_ppread
    - ','
    - tpma_nv_ownerread
    - ','
    - tpma_nv_authread
    - ','
    - tpma_nv_policyread
    - ','
    - bits_at_20
    - ','
    - tpma_nv_no_da
    - ','
    - tpma_nv_orderly
    - ','
    - tpma_nv_clear_stclear
    - ','
    - tpma_nv_readlocked
    - ','
    - tpma_nv_written
    - ','
    - tpma_nv_platformcreate
    - ','
    - tpma_nv_read_stclear
    - ','
    - tpma_external_nv_encryption
    - ','
    - tpma_external_nv_integrity
    - ','
    - tpma_external_nv_antirollback
    - ','
    - bits_at_35
    - )
    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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3057
      start: 3018
    functionDepth: 0
    functionLinenumber: 3018
    functionLinenumberEnd: 3057
    functionName: TPMA_NV_EXP_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_NV_EXP_INITIALIZER(tpma_nv_ppwrite,                                  \\\n
      \                                 tpma_nv_ownerwrite,                               \\\n
      \                                 tpma_nv_authwrite,                                \\\n
      \                                 tpma_nv_policywrite,                              \\\n
      \                                 tpm_nt,                                           \\\n
      \                                 bits_at_8,                                        \\\n
      \                                 tpma_nv_policy_delete,                            \\\n
      \                                 tpma_nv_writelocked,                              \\\n
      \                                 tpma_nv_writeall,                                 \\\n
      \                                 tpma_nv_writedefine,                              \\\n
      \                                 tpma_nv_write_stclear,                            \\\n
      \                                 tpma_nv_globallock,                               \\\n
      \                                 tpma_nv_ppread,                                   \\\n
      \                                 tpma_nv_ownerread,                                \\\n
      \                                 tpma_nv_authread,                                 \\\n
      \                                 tpma_nv_policyread,                               \\\n
      \                                 bits_at_20,                                       \\\n
      \                                 tpma_nv_no_da,                                    \\\n
      \                                 tpma_nv_orderly,                                  \\\n
      \                                 tpma_nv_clear_stclear,                            \\\n
      \                                 tpma_nv_readlocked,                               \\\n
      \                                 tpma_nv_written,                                  \\\n
      \                                 tpma_nv_platformcreate,                           \\\n
      \                                 tpma_nv_read_stclear,                             \\\n
      \                                 tpma_external_nv_encryption,                      \\\n
      \                                 tpma_external_nv_integrity,                       \\\n
      \                                 tpma_external_nv_antirollback,                    \\\n
      \                                 bits_at_35)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 57
    argNames:
    - (
    - tpma_nv_ppwrite
    - ','
    - tpma_nv_ownerwrite
    - ','
    - tpma_nv_authwrite
    - ','
    - tpma_nv_policywrite
    - ','
    - tpm_nt
    - ','
    - bits_at_8
    - ','
    - tpma_nv_policy_delete
    - ','
    - tpma_nv_writelocked
    - ','
    - tpma_nv_writeall
    - ','
    - tpma_nv_writedefine
    - ','
    - tpma_nv_write_stclear
    - ','
    - tpma_nv_globallock
    - ','
    - tpma_nv_ppread
    - ','
    - tpma_nv_ownerread
    - ','
    - tpma_nv_authread
    - ','
    - tpma_nv_policyread
    - ','
    - bits_at_20
    - ','
    - tpma_nv_no_da
    - ','
    - tpma_nv_orderly
    - ','
    - tpma_nv_clear_stclear
    - ','
    - tpma_nv_readlocked
    - ','
    - tpma_nv_written
    - ','
    - tpma_nv_platformcreate
    - ','
    - tpma_nv_read_stclear
    - ','
    - tpma_external_nv_encryption
    - ','
    - tpma_external_nv_integrity
    - ','
    - tpma_external_nv_antirollback
    - ','
    - bits_at_35
    - )
    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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3128
      start: 3090
    functionDepth: 0
    functionLinenumber: 3090
    functionLinenumberEnd: 3128
    functionName: TPMA_NV_EXP_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/TpmTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "TPMA_NV_EXP_INITIALIZER(tpma_nv_ppwrite,                                  \\\n
      \                                 tpma_nv_ownerwrite,                               \\\n
      \                                 tpma_nv_authwrite,                                \\\n
      \                                 tpma_nv_policywrite,                              \\\n
      \                                 tpm_nt,                                           \\\n
      \                                 bits_at_8,                                        \\\n
      \                                 tpma_nv_policy_delete,                            \\\n
      \                                 tpma_nv_writelocked,                              \\\n
      \                                 tpma_nv_writeall,                                 \\\n
      \                                 tpma_nv_writedefine,                              \\\n
      \                                 tpma_nv_write_stclear,                            \\\n
      \                                 tpma_nv_globallock,                               \\\n
      \                                 tpma_nv_ppread,                                   \\\n
      \                                 tpma_nv_ownerread,                                \\\n
      \                                 tpma_nv_authread,                                 \\\n
      \                                 tpma_nv_policyread,                               \\\n
      \                                 bits_at_20,                                       \\\n
      \                                 tpma_nv_no_da,                                    \\\n
      \                                 tpma_nv_orderly,                                  \\\n
      \                                 tpma_nv_clear_stclear,                            \\\n
      \                                 tpma_nv_readlocked,                               \\\n
      \                                 tpma_nv_written,                                  \\\n
      \                                 tpma_nv_platformcreate,                           \\\n
      \                                 tpma_nv_read_stclear,                             \\\n
      \                                 tpma_external_nv_encryption,                      \\\n
      \                                 tpma_external_nv_integrity,                       \\\n
      \                                 tpma_external_nv_antirollback,                    \\\n
      \                                 bits_at_35)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - RuntimeAttributes
    argTypes:
    - struct RuntimeAttributes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: RuntimeAttributesFree
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAttributes.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT RuntimeAttributesFree(struct RuntimeAttributes *RuntimeAttributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:96,1
    - Dst: RuntimeAttributesFree
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - RuntimeAttributes
    argTypes:
    - struct RuntimeAttributes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: RuntimeAttributesInit
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAttributes.c
    functionUses: 0
    functionsReached:
    - MemorySet
    - RuntimeAttributesFree
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT RuntimeAttributesInit(struct RuntimeAttributes *RuntimeAttributes)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAttributesInit
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:112,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:115,1
    - Dst: strchr
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:120,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:124,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:127,1
    - Dst: MAX
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:128,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:128,1
    - Dst: strncmp
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:129,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:131,1
    - Dst: SET_BIT
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:138,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:140,1
    - Dst: MAX
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:141,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:149,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:160,1
    - Dst: strdup
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:161,1
    - Dst: RuntimeAttributesInit
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:167,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 4
    argNames:
    - RuntimeAttributes
    - newProfile
    - stateFormatLevel
    - maxStateFormatLevel
    argTypes:
    - struct RuntimeAttributes*
    - char*
    - unsigned int*
    - unsigned int
    assertStmts:
    - condition: (s_AttributeProperties[idx].stateFormatLevel > 0)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/libtpms/src/tpm2/RuntimeAttributes.c
    constantsTouched: []
    func_position:
      end: 170
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 170
    functionName: RuntimeAttributesSetProfile
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAttributes.c
    functionUses: 0
    functionsReached:
    - strchr
    - strlen
    - free
    - strdup
    - ARRAY_SIZE
    - assert
    - TPMLIB_LogTPM2Error
    - strncmp
    - MAX
    - SET_BIT
    - RuntimeAttributesInit
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT RuntimeAttributesSetProfile(struct RuntimeAttributes *RuntimeAttributes,\n\t\t\t
      \   const char\t\t     *newProfile,\t\t// IN: colon-separated list of algorithm
      names\n\t\t\t    unsigned int             *stateFormatLevel,\t\t// IN/OUT: stateFormatLevel\n\t\t\t
      \   unsigned int              maxStateFormatLevel\t// IN: maximum allowed stateFormatLevel\n\t\t\t
      \   )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAttributesSetProfile
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:184,1
    - Dst: RuntimeAttributesSetProfile
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - RuntimeAttributes
    - newProfile
    - maxStateFormatLevel
    - oldProfile
    argTypes:
    - struct RuntimeAttributes*
    - char*
    - unsigned int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 192
    functionName: RuntimeAttributesSwitchProfile
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAttributes.c
    functionUses: 0
    functionsReached:
    - RuntimeAttributesSetProfile
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT RuntimeAttributesSwitchProfile(struct RuntimeAttributes
      *RuntimeAttributes,\n\t\t\t       const char               *newProfile,\n\t\t\t
      \      unsigned int              maxStateFormatLevel,\n\t\t\t       char                    **oldProfile)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:203,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:207,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:217,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:222,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:228,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:232,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:240,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeAttributes.c:241,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 2
    argNames:
    - RuntimeAttributes
    - rat
    argTypes:
    - struct RuntimeAttributes*
    - enum RuntimeAttributeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 246
    functionName: RuntimeAttributesGet
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAttributes.c
    functionUses: 1
    functionsReached:
    - strdup
    - ARRAY_SIZE
    - asprintf
    - free
    - TEST_BIT
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT *\nRuntimeAttributesGet(struct RuntimeAttributes   *RuntimeAttributes,\n\t\t
      \    enum RuntimeAttributeType  rat)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - RuntimeAttributes
    - attributeFlags
    argTypes:
    - struct RuntimeAttributes*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: RuntimeAttributeCheckRequired
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAttributes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT RuntimeAttributeCheckRequired(struct RuntimeAttributes
      *RuntimeAttributes,\n\t\t\t      unsigned int              attributeFlags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ST_Marshal
      Src: /src/libtpms/src/tpm2/Response.c:96,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Response.c:97,1
    - Dst: TPM_RC_Marshal
      Src: /src/libtpms/src/tpm2/Response.c:98,1
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/Response.c:102,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Response.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - command
    - buffer
    - result
    argTypes:
    - COMMAND*
    - BYTE*
    - TPM_RC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 107
    functionName: BuildResponseHeader
    functionSourceFile: /src/libtpms/src/tpm2/Response.c
    functionUses: 0
    functionsReached:
    - TPM_RC_Marshal
    - UINT32_Marshal
    - TPM_HANDLE_Marshal
    - TPM_ST_Marshal
    linkageType: ''
    returnType: void
    signature: "void BuildResponseHeader(COMMAND* command,  // IN: main control structure\n
      \                        BYTE*    buffer,   // OUT: the output buffer\n                         TPM_RC
      \  result    // IN: the response code\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtpms_plat__PhysicalPresenceAsserted
      Src: /src/libtpms/src/tpm2/PPPlat.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: _plat__PhysicalPresenceAsserted
    functionSourceFile: /src/libtpms/src/tpm2/PPPlat.c
    functionUses: 1
    functionsReached:
    - libtpms_plat__PhysicalPresenceAsserted
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__PhysicalPresenceAsserted(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: _plat__Signal_PhysicalPresenceOn
    functionSourceFile: /src/libtpms/src/tpm2/PPPlat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__Signal_PhysicalPresenceOn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: _plat__Signal_PhysicalPresenceOff
    functionSourceFile: /src/libtpms/src/tpm2/PPPlat.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__Signal_PhysicalPresenceOff(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ks
    argTypes:
    - struct KeySizes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 221
    functionName: KeySizesGetMinimum
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int KeySizesGetMinimum(const struct KeySizes *ks)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:229,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:231,1
    - Dst: SET_BIT
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:235,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:238,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:240,1
    - Dst: SET_BIT
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:243,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - RuntimeAlgorithm
    argTypes:
    - struct RuntimeAlgorithm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 245
    functionName: RuntimeAlgorithmEnableAllAlgorithms
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    functionUses: 0
    functionsReached:
    - MemorySet
    - ARRAY_SIZE
    - SET_BIT
    linkageType: ''
    returnType: void
    signature: void RuntimeAlgorithmEnableAllAlgorithms(struct RuntimeAlgorithm *RuntimeAlgorithm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:253,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:255,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:257,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:257,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:258,1
    - Dst: KeySizesGetMinimum
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - RuntimeAlgorithm
    argTypes:
    - struct RuntimeAlgorithm*
    assertStmts:
    - condition: (s_AlgorithmProperties[algId].u.keySizes != NULL)
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    - condition: (algId < ARRAY_SIZE(RuntimeAlgorithm->algosMinimumKeySizes))
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    constantsTouched: []
    func_position:
      end: 261
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 261
    functionName: RuntimeAlgorithmInit
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    functionUses: 0
    functionsReached:
    - MemorySet
    - ARRAY_SIZE
    - KeySizesGetMinimum
    - assert
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT RuntimeAlgorithmInit(struct RuntimeAlgorithm *RuntimeAlgorithm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - RuntimeAlgorithm
    argTypes:
    - struct RuntimeAlgorithm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: RuntimeAlgorithmFree
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT RuntimeAlgorithmFree(struct RuntimeAlgorithm *RuntimeAlgorithm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmFree
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:274,1
    - Dst: RuntimeAlgorithmInit
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:275,1
    - Dst: RuntimeAlgorithmEnableAllAlgorithms
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - RuntimeAlgorithm
    argTypes:
    - struct RuntimeAlgorithm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 277
    functionName: RuntimeAlgorithmSetDefault
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmInit
    - RuntimeAlgorithmEnableAllAlgorithms
    - RuntimeAlgorithmFree
    linkageType: ''
    returnType: void
    signature: void RuntimeAlgorithmSetDefault(struct RuntimeAlgorithm *RuntimeAlgorithm)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmSetDefault
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:305,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:309,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:310,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:311,1
    - Dst: strchr
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:315,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:319,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:322,1
    - Dst: MAX
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:326,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:326,1
    - Dst: strncmp
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:327,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:329,1
    - Dst: SET_BIT
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:336,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:337,1
    - Dst: MAX
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:338,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:343,1
    - Dst: strncmp
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:344,1
    - Dst: strncmp
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:347,1
    - Dst: strtoul
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:349,1
    - Dst: MAX
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:356,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:361,1
    - Dst: strncmp
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:362,1
    - Dst: strncmp
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:363,1
    - Dst: strtoul
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:365,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:377,1
    - Dst: MAX
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:378,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:393,1
    - Dst: MAX
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:394,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:394,1
    - Dst: strncmp
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:395,1
    - Dst: SET_BIT
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:396,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:399,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:407,1
    - Dst: MAX
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:412,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:412,1
    - Dst: strncmp
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:416,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:420,1
    - Dst: MAX
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:429,1
    - Dst: SET_BIT
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:431,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:438,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:450,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:455,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:456,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:462,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:466,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:467,1
    - Dst: CLEAR_BIT
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:476,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:483,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:490,1
    - Dst: strdup
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:491,1
    - Dst: RuntimeAlgorithmSetDefault
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:497,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 151
    argCount: 4
    argNames:
    - RuntimeAlgorithm
    - newProfile
    - stateFormatLevel
    - maxStateFormatLevel
    argTypes:
    - struct RuntimeAlgorithm*
    - char*
    - unsigned int*
    - unsigned int
    assertStmts:
    - condition: (keysizes[i].stateFormatLevel > 0)
      pos:
        line_end: 376
        line_start: 376
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    - condition: (s_AlgorithmProperties[algId].stateFormatLevel > 0)
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    constantsTouched: []
    func_position:
      end: 500
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 500
    functionName: RuntimeAlgorithmSetProfile
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    functionUses: 0
    functionsReached:
    - CLEAR_BIT
    - strchr
    - RuntimeAlgorithmSetDefault
    - strlen
    - free
    - TEST_BIT
    - strdup
    - strtoul
    - ARRAY_SIZE
    - assert
    - MemorySet
    - TPMLIB_LogTPM2Error
    - strncmp
    - MAX
    - SET_BIT
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT RuntimeAlgorithmSetProfile(struct RuntimeAlgorithm  *RuntimeAlgorithm,\n\t\t\t
      \  const char\t\t    *newProfile,\t\t// IN: colon-separated list of algorithm
      names\n\t\t\t   unsigned int             *stateFormatLevel,\t\t// IN/OUT: stateFormatLevel\n\t\t\t
      \  unsigned int\t             maxStateFormatLevel\t// IN: maximum allowed stateFormatLevel\n\t\t\t
      \  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmSetProfile
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:514,1
    - Dst: RuntimeAlgorithmSetProfile
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - RuntimeAlgorithm
    - newProfile
    - maxStateFormatLevel
    - oldProfile
    argTypes:
    - struct RuntimeAlgorithm*
    - char*
    - unsigned int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 502
    functionDepth: 4
    functionLinenumber: 502
    functionLinenumberEnd: 522
    functionName: RuntimeAlgorithmSwitchProfile
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmSetProfile
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT RuntimeAlgorithmSwitchProfile(struct RuntimeAlgorithm  *RuntimeAlgorithm,\n\t\t\t
      \     const char               *newProfile,\n\t\t\t      unsigned int              maxStateFormatLevel,\n\t\t\t
      \     char                    **oldProfile)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TestBit
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - RuntimeAlgorithm
    - algId
    argTypes:
    - struct RuntimeAlgorithm*
    - TPM_ALG_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 535
    functionName: RuntimeAlgorithmCheckEnabled
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    functionUses: 0
    functionsReached:
    - TestBit
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT RuntimeAlgorithmCheckEnabled(struct RuntimeAlgorithm *RuntimeAlgorithm,\n\t\t\t
      \    TPM_ALG_ID\t              algId      // IN: the algorithm to check\n\t\t\t
      \    )"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:559,1
    - Dst: TestBit
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:571,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 5
    argNames:
    - RuntimeAlgorithm
    - algId
    - keySizeInBits
    - curveId
    - maxStateFormatLevel
    argTypes:
    - struct RuntimeAlgorithm*
    - TPM_ALG_ID
    - UINT16
    - TPM_ECC_CURVE
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 589
    functionName: RuntimeAlgorithmKeySizeCheckEnabled
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - TestBit
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT RuntimeAlgorithmKeySizeCheckEnabled(struct RuntimeAlgorithm
      *RuntimeAlgorithm,\n\t\t\t\t    TPM_ALG_ID               algId,\t\t\t// IN:
      the algorithm to check\n\t\t\t\t    UINT16                   keySizeInBits,\t\t//
      IN: size of the key in bits\n\t\t\t\t    TPM_ECC_CURVE            curveId,\t\t\t//
      IN: curve Id if algId == TPM_ALG_ECC\n\t\t\t\t    unsigned int             maxStateFormatLevel\t//
      IN: maximum stateFormatLevel\n\t\t\t\t    )"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:602,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:612,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:616,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:622,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:626,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:633,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:646,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:650,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:656,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:660,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 56
    argCount: 4
    argNames:
    - RuntimeAlgorithm
    - rat
    - buffer
    - first
    argTypes:
    - struct RuntimeAlgorithm*
    - enum RuntimeAlgorithmType
    - char*
    - BOOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 668
    functionName: RuntimeAlgorithmGetEcc
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - asprintf
    - free
    - TEST_BIT
    linkageType: ''
    returnType: char
    signature: "char *\nRuntimeAlgorithmGetEcc(struct RuntimeAlgorithm   *RuntimeAlgorithm,\n\t\t
      \      enum RuntimeAlgorithmType rat,\n\t\t       char                      *buffer,\n\t\t
      \      BOOL                      *first)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:680,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:684,1
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:698,1
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:703,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:709,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:713,1
    - Dst: KeySizesGetMinimum
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:725,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:745,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:751,1
    - Dst: RuntimeAlgorithmGetEcc
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:760,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:763,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:764,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 71
    argCount: 2
    argNames:
    - RuntimeAlgorithm
    - rat
    argTypes:
    - struct RuntimeAlgorithm*
    - enum RuntimeAlgorithmType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 769
    functionName: RuntimeAlgorithmPrint
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    functionUses: 1
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - KeySizesGetMinimum
    - strdup
    - RuntimeAlgorithmGetEcc
    - ARRAY_SIZE
    - asprintf
    - free
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT *\nRuntimeAlgorithmPrint(struct RuntimeAlgorithm   *RuntimeAlgorithm,\n\t\t
      \     enum RuntimeAlgorithmType rat)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:778,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/RuntimeAlgorithm.c:782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pcrSelection
    argTypes:
    - TPML_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 790
    functionName: RuntimeAlgorithmsFilterPCRSelection
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    functionUses: 0
    functionsReached:
    - MemoryCopy
    - RuntimeAlgorithmCheckEnabled
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT RuntimeAlgorithmsFilterPCRSelection(TPML_PCR_SELECTION
      *pcrSelection // IN/OUT: PCRSelection to filter\n\t\t\t\t    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: _plat__IsCanceled
    functionSourceFile: /src/libtpms/src/tpm2/Cancel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__IsCanceled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: _plat__SetCancel
    functionSourceFile: /src/libtpms/src/tpm2/Cancel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__SetCancel(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: _plat__ClearCancel
    functionSourceFile: /src/libtpms/src/tpm2/Cancel.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__ClearCancel(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmSwitchProfile
      Src: /src/libtpms/src/tpm2/Volatile.c:71,1
    - Dst: CryptHashBlock
      Src: /src/libtpms/src/tpm2/Volatile.c:79,1
    - Dst: VolatileState_Unmarshal
      Src: /src/libtpms/src/tpm2/Volatile.c:81,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/Volatile.c:94,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/Volatile.c:96,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm2/Volatile.c:101,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/Volatile.c:103,1
    - Dst: RuntimeAlgorithmSetProfile
      Src: /src/libtpms/src/tpm2/Volatile.c:108,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/Volatile.c:110,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 118
    functionName: VolatileState_Load
    functionSourceFile: /src/libtpms/src/tpm2/Volatile.c
    functionUses: 1
    functionsReached:
    - Array_Unmarshal
    - VolatileState_Unmarshal
    - RuntimeAlgorithmSwitchProfile
    - memcmp
    - CryptHashBlock
    - TPMLIB_LogTPM2Error
    - free
    - RuntimeAlgorithmSetProfile
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC VolatileState_Load(BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VolatileState_Marshal
      Src: /src/libtpms/src/tpm2/Volatile.c:129,1
    - Dst: CryptHashBlock
      Src: /src/libtpms/src/tpm2/Volatile.c:132,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/Volatile.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 136
    functionName: VolatileState_Save
    functionSourceFile: /src/libtpms/src/tpm2/Volatile.c
    functionUses: 0
    functionsReached:
    - VolatileState_Marshal
    - Array_Marshal
    - CryptHashBlock
    linkageType: ''
    returnType: UINT16
    signature: UINT16 VolatileState_Save(BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/libtpms/src/tpm2/NVMem.c:101,1
    - Dst: fopen
      Src: /src/libtpms/src/tpm2/NVMem.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - mode
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: NvFileOpen
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 0
    functionsReached:
    - fopen
    - fopen_s
    linkageType: ''
    returnType: int
    signature: int NvFileOpen(const char* mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fseek
      Src: /src/libtpms/src/tpm2/NVMem.c:123,1
    - Dst: fwrite
      Src: /src/libtpms/src/tpm2/NVMem.c:124,1
    - Dst: fflush
      Src: /src/libtpms/src/tpm2/NVMem.c:125,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMem.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (OK)
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/libtpms/src/tpm2/NVMem.c
    constantsTouched: []
    func_position:
      end: 128
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 128
    functionName: NvFileCommit
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 0
    functionsReached:
    - fseek
    - fflush
    - fwrite
    - assert
    linkageType: ''
    returnType: int
    signature: int NvFileCommit(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMem.c:140,1
    - Dst: ftell
      Src: /src/libtpms/src/tpm2/NVMem.c:142,1
    - Dst: fseek
      Src: /src/libtpms/src/tpm2/NVMem.c:146,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/NVMem.c:147,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMem.c:148,1
    - Dst: ftell
      Src: /src/libtpms/src/tpm2/NVMem.c:149,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMem.c:150,1
    - Dst: fseek
      Src: /src/libtpms/src/tpm2/NVMem.c:157,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMem.c:158,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMem.c:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - leaveAt
    argTypes:
    - int
    assertStmts:
    - condition: (NULL != s_NvFile)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/libtpms/src/tpm2/NVMem.c
    - condition: (fseek_result == 0)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/libtpms/src/tpm2/NVMem.c
    - condition: (fileSize >= 0)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/libtpms/src/tpm2/NVMem.c
    - condition: (irc == 0)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/libtpms/src/tpm2/NVMem.c
    - condition: (FALSE)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/libtpms/src/tpm2/NVMem.c
    constantsTouched: []
    func_position:
      end: 167
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 167
    functionName: NvFileSize
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 0
    functionsReached:
    - ftell
    - assert
    - NOT_REFERENCED
    - fseek
    linkageType: ''
    returnType: long
    signature: long NvFileSize(int leaveAt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - recoverable
    - unrecoverable
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: _plat__NvErrors
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__NvErrors(int recoverable, int unrecoverable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/NVMem.c:205,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/NVMem.c:206,1
    - Dst: libtpms_plat__NVEnable
      Src: /src/libtpms/src/tpm2/NVMem.c:216,1
    - Dst: _plat__NVEnable_NVChipFile
      Src: /src/libtpms/src/tpm2/NVMem.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - platParameter
    - paramSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 221
    functionName: _plat__NVEnable
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 2
    functionsReached:
    - NOT_REFERENCED
    - libtpms_plat__NVEnable
    - _plat__NVEnable_NVChipFile
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _plat__NVEnable(\n    void*  platParameter,  // platform
      specific parameter\n    size_t paramSize       // size of parameter. If size
      == 0, then\n                           // parameter is a sizeof(void*) scalar
      and should\n                           // be cast to an integer (intptr_t),
      not dereferenced.\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/NVMem.c:228,1
    - Dst: _plat__NvMemoryClear
      Src: /src/libtpms/src/tpm2/NVMem.c:237,1
    - Dst: NvFileOpen
      Src: /src/libtpms/src/tpm2/NVMem.c:240,1
    - Dst: NvFileSize
      Src: /src/libtpms/src/tpm2/NVMem.c:242,1
    - Dst: fread
      Src: /src/libtpms/src/tpm2/NVMem.c:248,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMem.c:253,1
    - Dst: strerror
      Src: /src/libtpms/src/tpm2/NVMem.c:254,1
    - Dst: NvFileCommit
      Src: /src/libtpms/src/tpm2/NVMem.c:259,1
    - Dst: NvFileOpen
      Src: /src/libtpms/src/tpm2/NVMem.c:264,1
    - Dst: NvFileCommit
      Src: /src/libtpms/src/tpm2/NVMem.c:266,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMem.c:269,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - platParameter
    argTypes:
    - void*
    assertStmts:
    - condition: (NULL != s_NvFile)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/libtpms/src/tpm2/NVMem.c
    constantsTouched: []
    func_position:
      end: 278
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 278
    functionName: _plat__NVEnable_NVChipFile
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 2
    functionsReached:
    - NvFileSize
    - NOT_REFERENCED
    - NvFileOpen
    - NvFileCommit
    - fread
    - _plat__NvMemoryClear
    - strerror
    - assert
    - TPMLIB_LogTPM2Error
    linkageType: ''
    returnType: int
    signature: "int _plat__NVEnable_NVChipFile(\n\t\tvoid            *platParameter
      \ // IN: platform specific parameters\n\t\t)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/NVMem.c:289,1
    - Dst: libtpms_plat__NVDisable
      Src: /src/libtpms/src/tpm2/NVMem.c:295,1
    - Dst: fclose
      Src: /src/libtpms/src/tpm2/NVMem.c:303,1
    - Dst: NvFileOpen
      Src: /src/libtpms/src/tpm2/NVMem.c:309,1
    - Dst: fflush
      Src: /src/libtpms/src/tpm2/NVMem.c:311,1
    - Dst: fclose
      Src: /src/libtpms/src/tpm2/NVMem.c:312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - platParameter
    - paramSize
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 320
    functionName: _plat__NVDisable
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 1
    functionsReached:
    - NOT_REFERENCED
    - NvFileOpen
    - libtpms_plat__NVDisable
    - fclose
    - fflush
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _plat__NVDisable(\n    void*  platParameter,  // platform
      specific parameter\n    size_t paramSize       // size of parameter. If size
      == 0, then\n                           // parameter is a sizeof(void*) scalar
      and should\n                           // be cast to an integer (intptr_t),
      not dereferenced.\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libtpms_plat__IsNvAvailable
      Src: /src/libtpms/src/tpm2/NVMem.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 344
    functionName: _plat__GetNvReadyState
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 0
    functionsReached:
    - libtpms_plat__IsNvAvailable
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__GetNvReadyState(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMem.c:356,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/NVMem.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - startOffset
    - size
    - data
    argTypes:
    - unsigned int
    - unsigned int
    - void*
    assertStmts:
    - condition: (startOffset + size <= NV_MEMORY_SIZE)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/libtpms/src/tpm2/NVMem.c
    constantsTouched: []
    func_position:
      end: 363
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 363
    functionName: _plat__NvMemoryRead
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _plat__NvMemoryRead(unsigned int startOffset,  // IN: read
      start\n                                   unsigned int size,  // IN: size of
      bytes to read\n                                   void*        data   // OUT:
      data buffer\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMem.c:378,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm2/NVMem.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - startOffset
    - size
    - data
    argTypes:
    - unsigned int
    - unsigned int
    - void*
    assertStmts:
    - condition: (startOffset + size <= NV_MEMORY_SIZE)
      pos:
        line_end: 377
        line_start: 377
        source_file: /src/libtpms/src/tpm2/NVMem.c
    constantsTouched: []
    func_position:
      end: 386
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 386
    functionName: _plat__NvGetChangedStatus
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 0
    functionsReached:
    - assert
    - memcmp
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _plat__NvGetChangedStatus(\n    unsigned int startOffset,
      \ // IN: read start\n    unsigned int size,         // IN: size of bytes to
      read\n    void*        data          // IN: data buffer\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMem.c:403,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/NVMem.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - startOffset
    - size
    - data
    argTypes:
    - unsigned int
    - unsigned int
    - void*
    assertStmts:
    - condition: (startOffset + size <= NV_MEMORY_SIZE)
      pos:
        line_end: 402
        line_start: 402
        source_file: /src/libtpms/src/tpm2/NVMem.c
    constantsTouched: []
    func_position:
      end: 410
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 410
    functionName: _plat__NvMemoryWrite
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _plat__NvMemoryWrite(unsigned int startOffset,  // IN:
      write start\n                                    unsigned int size,  // IN:
      size of bytes to write\n                                    void*        data
      \  // OUT: data buffer\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMem.c:419,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/NVMem.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - startOffset
    - size
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts:
    - condition: (startOffset + size <= NV_MEMORY_SIZE)
      pos:
        line_end: 418
        line_start: 418
        source_file: /src/libtpms/src/tpm2/NVMem.c
    constantsTouched: []
    func_position:
      end: 427
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 427
    functionName: _plat__NvMemoryClear
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 1
    functionsReached:
    - assert
    - memset
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _plat__NvMemoryClear(unsigned int startOffset,  // IN:
      clear start\n                                    unsigned int size  // IN: number
      of bytes to clear\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMem.c:438,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMem.c:439,1
    - Dst: memmove
      Src: /src/libtpms/src/tpm2/NVMem.c:442,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/NVMem.c:445,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/NVMem.c:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - sourceOffset
    - destOffset
    - size
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts:
    - condition: (sourceOffset + size <= NV_MEMORY_SIZE)
      pos:
        line_end: 437
        line_start: 437
        source_file: /src/libtpms/src/tpm2/NVMem.c
    - condition: (destOffset + size <= NV_MEMORY_SIZE)
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/libtpms/src/tpm2/NVMem.c
    constantsTouched: []
    func_position:
      end: 452
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 452
    functionName: _plat__NvMemoryMove
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 0
    functionsReached:
    - assert
    - memmove
    - memset
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _plat__NvMemoryMove(unsigned int sourceOffset,  // IN:
      source offset\n                                   unsigned int destOffset,  //
      IN: destination offset\n                                   unsigned int size
      \ // IN: size of data being moved\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libtpms_plat__NvCommit
      Src: /src/libtpms/src/tpm2/NVMem.c:463,1
    - Dst: NvFileCommit
      Src: /src/libtpms/src/tpm2/NVMem.c:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 473
    functionName: _plat__NvCommit
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 1
    functionsReached:
    - libtpms_plat__NvCommit
    - NvFileCommit
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__NvCommit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 484
    functionName: _plat__TearDown
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__TearDown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 494
    functionName: _plat__SetNvAvail
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__SetNvAvail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 504
    functionName: _plat__ClearNvAvail
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__ClearNvAvail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 516
    functionName: _plat__NVNeedsManufacture
    functionSourceFile: /src/libtpms/src/tpm2/NVMem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__NVNeedsManufacture(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NvDynamic.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - iter
    - handle
    argTypes:
    - NV_REF*
    - TPM_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 148
    functionName: NvNext
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvRead
    linkageType: ''
    returnType: NV_REF
    signature: "NV_REF NvNext(NV_REF*     iter,   // IN/OUT: the list iterator\n                     TPM_HANDLE*
      handle  // OUT: the handle of the next item.\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NvNext
      Src: /src/libtpms/src/tpm2/NvDynamic.c:164,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/NvDynamic.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - iter
    - type
    argTypes:
    - TPM_HANDLE*
    - NV_REF*
    - TPM_HT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 174
    functionName: NvNextByType
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvNext
    - HandleGetType
    linkageType: ''
    returnType: NV_REF
    signature: "NV_REF NvNextByType(\n    TPM_HANDLE* handle,  // OUT: the handle
      of the found type or 0\n    NV_REF*     iter,    // IN: the iterator\n    TPM_HT
      \     type     // IN: the handle type to look for\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - handle
    - ','
    - iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: NvNextIndex
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NvNextIndex(handle, iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - handle
    - ','
    - iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: NvNextEvict
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NvNextEvict(handle, iter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvNext
      Src: /src/libtpms/src/tpm2/NvDynamic.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 200
    functionName: NvGetEnd
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvNext
    linkageType: ''
    returnType: NV_REF
    signature: NV_REF NvGetEnd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvGetEnd
      Src: /src/libtpms/src/tpm2/NvDynamic.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 211
    functionName: NvGetFreeBytes
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvGetEnd
    linkageType: ''
    returnType: UINT32
    signature: UINT32 NvGetFreeBytes(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NvGetFreeBytes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:223,1
    - Dst: NvCapGetPersistentNumber
      Src: /src/libtpms/src/tpm2/NvDynamic.c:238,1
    - Dst: NvCapGetCounterNumber
      Src: /src/libtpms/src/tpm2/NvDynamic.c:253,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 3
    argNames:
    - size
    - isIndex
    - isCounter
    argTypes:
    - UINT32
    - BOOL
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 264
    functionName: NvTestSpace
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvCapGetCounterNumber
    - NvCapGetPersistentNumber
    - NvGetFreeBytes
    linkageType: ''
    returnType: BOOL
    signature: "BOOL NvTestSpace(UINT32 size,      // IN: size of the entity to be
      added\n                        BOOL   isIndex,   // IN: TRUE if the entity is
      an index\n                        BOOL   isCounter  // IN: TRUE if the index
      is a counter\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvReadMaxCount
      Src: /src/libtpms/src/tpm2/NvDynamic.c:273,1
    - Dst: MUST_BE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:276,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/NvDynamic.c:279,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:280,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NvDynamic.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - end
    argTypes:
    - NV_REF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 285
    functionName: NvWriteNvListEnd
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - MemoryCopy
    - NvWrite
    - pAssert
    - NvReadMaxCount
    - MUST_BE
    linkageType: ''
    returnType: NV_REF
    signature: NV_REF NvWriteNvListEnd(NV_REF end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NvGetEnd
      Src: /src/libtpms/src/tpm2/NvDynamic.c:311,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NvDynamic.c:320,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NvDynamic.c:324,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NvDynamic.c:335,1
    - Dst: NvWriteNvListEnd
      Src: /src/libtpms/src/tpm2/NvDynamic.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - totalSize
    - bufferSize
    - handle
    - entity
    argTypes:
    - UINT32
    - UINT32
    - TPM_HANDLE
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 341
    functionName: NvAdd
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvGetEnd
    - NvWrite
    - NvWriteNvListEnd
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NvAdd(UINT32 totalSize,  // IN: total size needed for this
      entity For\n                                       //     evict object, totalSize
      is the same as\n                                       //     bufferSize.  For
      NV Index, totalSize is\n                                       //     bufferSize
      plus index data size\n                    UINT32     bufferSize,  // IN: size
      of initial buffer\n                    TPM_HANDLE handle,      // IN: optional
      handle\n                    BYTE*      entity       // IN: initial buffer\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NvGetEnd
      Src: /src/libtpms/src/tpm2/NvDynamic.c:351,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NvDynamic.c:358,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:367,1
    - Dst: _plat__NvMemoryMove
      Src: /src/libtpms/src/tpm2/NvDynamic.c:368,1
    - Dst: NvWriteNvListEnd
      Src: /src/libtpms/src/tpm2/NvDynamic.c:378,1
    - Dst: _plat__NvMemoryClear
      Src: /src/libtpms/src/tpm2/NvDynamic.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - entityRef
    argTypes:
    - NV_REF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 384
    functionName: NvDelete
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvWriteNvListEnd
    - _plat__NvMemoryMove
    - pAssert
    - _plat__NvMemoryClear
    - NvGetEnd
    - NvRead
    linkageType: ''
    returnType: TPM_RC
    signature: 'TPM_RC NvDelete(NV_REF entityRef  // IN: reference to entity to be
      deleted

      )'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/NvDynamic.c:423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - iter
    - handle
    argTypes:
    - NV_RAM_REF*
    - TPM_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 435
    functionName: NvRamNext
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: NV_RAM_REF
    signature: "NV_RAM_REF NvRamNext(NV_RAM_REF* iter,   // IN/OUT: the list iterator\n
      \                           TPM_HANDLE* handle  // OUT: the handle of the next
      item.\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvRamNext
      Src: /src/libtpms/src/tpm2/NvDynamic.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 448
    functionName: NvRamGetEnd
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvRamNext
    linkageType: ''
    returnType: NV_RAM_REF
    signature: NV_RAM_REF NvRamGetEnd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvRamGetEnd
      Src: /src/libtpms/src/tpm2/NvDynamic.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 465
    functionName: NvRamTestSpaceIndex
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvRamGetEnd
    linkageType: ''
    returnType: BOOL
    signature: "BOOL NvRamTestSpaceIndex(\n    UINT32 size  // IN: size of the data
      to be added to RAM\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NvRamNext
      Src: /src/libtpms/src/tpm2/NvDynamic.c:479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_RH_NV_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 485
    functionName: NvRamGetIndex
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvRamNext
    linkageType: ''
    returnType: NV_RAM_REF
    signature: 'NV_RAM_REF NvRamGetIndex(TPMI_RH_NV_INDEX handle  // IN: NV handle

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NvDynamic.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 494
    functionName: NvUpdateIndexOrderlyData
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvWrite
    linkageType: ''
    returnType: void
    signature: void NvUpdateIndexOrderlyData(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NvRamGetEnd
      Src: /src/libtpms/src/tpm2/NvDynamic.c:509,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/NvDynamic.c:513,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:515,1
    - Dst: ORDERLY_RAM_ADDRESS_OK
      Src: /src/libtpms/src/tpm2/NvDynamic.c:515,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/NvDynamic.c:518,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/NvDynamic.c:521,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/NvDynamic.c:528,1
    - Dst: SET_NV_UPDATE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - index
    argTypes:
    - TPMS_NV_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 533
    functionName: NvAddRAM
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - MemoryCopy
    - NvRamGetEnd
    - ORDERLY_RAM_ADDRESS_OK
    - pAssert
    - SET_NV_UPDATE
    - MemorySet
    linkageType: ''
    returnType: void
    signature: 'void NvAddRAM(TPMS_NV_PUBLIC* index  // IN: the index descriptor

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvRamGetEnd
      Src: /src/libtpms/src/tpm2/NvDynamic.c:551,1
    - Dst: NvRamGetIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:553,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:555,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/NvDynamic.c:558,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/NvDynamic.c:564,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/NvDynamic.c:567,1
    - Dst: SET_NV_UPDATE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_RH_NV_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 573
    functionName: NvDeleteRAM
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - MemoryCopy
    - NvRamGetEnd
    - NvRamGetIndex
    - pAssert
    - SET_NV_UPDATE
    - MemorySet
    linkageType: ''
    returnType: void
    signature: 'void NvDeleteRAM(TPMI_RH_NV_INDEX handle  // IN: NV handle

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:584,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NvDynamic.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ref
    - nvIndex
    argTypes:
    - NV_REF
    - NV_INDEX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 587
    functionName: NvReadNvIndexInfo
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvRead
    - pAssert
    linkageType: ''
    returnType: void
    signature: "void NvReadNvIndexInfo(NV_REF    ref,     // IN: points to NV where
      index is located\n                       NV_INDEX* nvIndex  // OUT: place to
      receive index data\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:595,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NvDynamic.c:611,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/NvDynamic.c:613,1
    - Dst: ANY_OBJECT_Marshal
      Src: /src/libtpms/src/tpm2/NvDynamic.c:617,1
    - Dst: OBJECT_To_Buffer_As_RSA3072_OBJECT
      Src: /src/libtpms/src/tpm2/NvDynamic.c:619,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - object
    - buffer
    - size
    argTypes:
    - OBJECT*
    - BYTE*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 620
    functionName: NvObjectToBuffer
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - OBJECT_To_Buffer_As_RSA3072_OBJECT
    - pAssert
    - ANY_OBJECT_Marshal
    - FAIL
    - TPMLIB_LogTPM2Error
    linkageType: ''
    returnType: UINT32
    signature: UINT32 NvObjectToBuffer(OBJECT* object, BYTE* buffer, UINT32 size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ANY_OBJECT_Unmarshal
      Src: /src/libtpms/src/tpm2/NvDynamic.c:635,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:637,1
    - Dst: RSA3072_OBJECT_Buffer_To_OBJECT
      Src: /src/libtpms/src/tpm2/NvDynamic.c:640,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - object
    - buf
    - buf_size
    argTypes:
    - OBJECT*
    - BYTE*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 643
    functionName: NvObjectFromBuffer
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - ANY_OBJECT_Unmarshal
    - RSA3072_OBJECT_Buffer_To_OBJECT
    - pAssert
    linkageType: ''
    returnType: void
    signature: void NvObjectFromBuffer(OBJECT* object, BYTE* buf, UINT32 buf_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NvDynamic.c:654,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NvDynamic.c:660,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:664,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NvDynamic.c:665,1
    - Dst: NvObjectFromBuffer
      Src: /src/libtpms/src/tpm2/NvDynamic.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ref
    - object
    argTypes:
    - NV_REF
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 670
    functionName: NvReadObject
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvRead
    - pAssert
    - NvObjectFromBuffer
    linkageType: ''
    returnType: void
    signature: "void NvReadObject(NV_REF  ref,    // IN: points to NV where index
      is located\n                  OBJECT* object  // OUT: place to receive the object
      data\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NvFindHandle
      Src: /src/libtpms/src/tpm2/NvDynamic.c:679,1
    - Dst: NvReadObject
      Src: /src/libtpms/src/tpm2/NvDynamic.c:683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nvHandle
    - object
    argTypes:
    - TPM_HANDLE
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 677
    functionDepth: 3
    functionLinenumber: 677
    functionLinenumberEnd: 685
    functionName: NvFindEvict
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvFindHandle
    - NvReadObject
    linkageType: ''
    returnType: NV_REF
    signature: NV_REF NvFindEvict(TPM_HANDLE nvHandle, OBJECT* object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvFindHandle
      Src: /src/libtpms/src/tpm2/NvDynamic.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nvHandle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 693
    functionName: NvIndexIsDefined
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvFindHandle
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL NvIndexIsDefined(TPM_HANDLE nvHandle  // IN: Index to look for

      )'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _plat__NvGetChangedStatus
      Src: /src/libtpms/src/tpm2/NvDynamic.c:707,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NvDynamic.c:718,1
    - Dst: FAIL_RC
      Src: /src/libtpms/src/tpm2/NvDynamic.c:727,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - entryAddr
    - size
    - data
    argTypes:
    - NV_REF
    - UINT32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 728
    functionName: NvConditionallyWrite
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvWrite
    - FAIL_RC
    - _plat__NvGetChangedStatus
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NvConditionallyWrite(NV_REF entryAddr,  // IN: stating address\n
      \                                  UINT32 size,       // IN: size of the data
      to write\n                                   void*  data        // IN: the data
      to write\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NvDynamic.c:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - locator
    argTypes:
    - NV_REF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 741
    functionName: NvReadNvIndexAttributes
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvRead
    linkageType: ''
    returnType: TPMA_NV
    signature: 'TPMA_NV NvReadNvIndexAttributes(NV_REF locator  // IN: reference to
      an NV index

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/NvDynamic.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ref
    argTypes:
    - NV_RAM_REF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 755
    functionName: NvReadRamIndexAttributes
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - MemoryCopy
    linkageType: ''
    returnType: TPMA_NV
    signature: "TPMA_NV NvReadRamIndexAttributes(\n    NV_RAM_REF ref  // IN: pointer
      to a NV_RAM_HEADER\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvConditionallyWrite
      Src: /src/libtpms/src/tpm2/NvDynamic.c:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - locator
    - attributes
    argTypes:
    - NV_REF
    - TPMA_NV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 762
    functionDepth: 2
    functionLinenumber: 762
    functionLinenumberEnd: 769
    functionName: NvWriteNvIndexAttributes
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvConditionallyWrite
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NvWriteNvIndexAttributes(NV_REF  locator,  // IN: location
      of the index\n                                       TPMA_NV attributes  //
      IN: attributes to write\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/NvDynamic.c:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ref
    - attributes
    argTypes:
    - NV_RAM_REF
    - TPMA_NV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 781
    functionName: NvWriteRamIndexAttributes
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - MemoryCopy
    linkageType: ''
    returnType: void
    signature: "void NvWriteRamIndexAttributes(\n    NV_RAM_REF ref,        // IN:
      address of the header\n    TPMA_NV    attributes  // IN: the attributes to write\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 797
    functionName: NvIsPlatformPersistentHandle
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL NvIsPlatformPersistentHandle(TPM_HANDLE handle  // IN: handle

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 810
    functionName: NvIsOwnerPersistentHandle
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL NvIsOwnerPersistentHandle(TPM_HANDLE handle  // IN: handle

      )'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/NvDynamic.c:830,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:839,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:851,1
    - Dst: IsWriteOperation
      Src: /src/libtpms/src/tpm2/NvDynamic.c:852,1
    - Dst: GetCommandCode
      Src: /src/libtpms/src/tpm2/NvDynamic.c:855,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:862,1
    - Dst: IsReadOperation
      Src: /src/libtpms/src/tpm2/NvDynamic.c:863,1
    - Dst: GetCommandCode
      Src: /src/libtpms/src/tpm2/NvDynamic.c:866,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_RH_NV_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 872
    functionName: NvIndexIsAccessible
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - IsWriteOperation
    - IsReadOperation
    - GetCommandCode
    - NvGetIndexInfo
    linkageType: ''
    returnType: TPM_RC
    signature: 'TPM_RC NvIndexIsAccessible(TPMI_RH_NV_INDEX handle  // IN: handle

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NvFindEvict
      Src: /src/libtpms/src/tpm2/NvDynamic.c:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - handle
    - object
    argTypes:
    - TPM_HANDLE
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 880
    functionDepth: 4
    functionLinenumber: 880
    functionLinenumberEnd: 899
    functionName: NvGetEvictObject
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvFindEvict
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NvGetEvictObject(TPM_HANDLE handle,  // IN: handle\n                 OBJECT*
      \   object   // OUT: object data\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 909
    functionName: NvIndexCacheInit
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NvIndexCacheInit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:927,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:931,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:931,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:933,1
    - Dst: NvRamGetIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:936,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:937,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/NvDynamic.c:940,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:945,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NvDynamic.c:947,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - nvIndex
    - locator
    - offset
    - size
    - data
    argTypes:
    - NV_INDEX*
    - NV_REF
    - UINT32
    - UINT16
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 918
    functionDepth: 2
    functionLinenumber: 918
    functionLinenumberEnd: 950
    functionName: NvGetIndexData
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - MemoryCopy
    - NvRamGetIndex
    - pAssert
    - NvRead
    linkageType: ''
    returnType: void
    signature: "void NvGetIndexData(NV_INDEX* nvIndex,  // IN: the in RAM index descriptor\n
      \                   NV_REF    locator,  // IN: where the data is located\n                    UINT32
      \   offset,   // IN: offset of NV data\n                    UINT16    size,
      \    // IN: number of octets of NV data to read\n                    void*     data
      \     // OUT: data buffer\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexData
      Src: /src/libtpms/src/tpm2/NvDynamic.c:970,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/NvDynamic.c:971,1
    - Dst: NvGetIndexData
      Src: /src/libtpms/src/tpm2/NvDynamic.c:980,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/NvDynamic.c:981,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - hashState
    - nvIndex
    - locator
    - offset
    - size
    argTypes:
    - HASH_STATE*
    - NV_INDEX*
    - NV_REF
    - UINT32
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 955
    functionDepth: 3
    functionLinenumber: 955
    functionLinenumberEnd: 986
    functionName: NvHashIndexData
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvGetIndexData
    - CryptDigestUpdate
    linkageType: ''
    returnType: void
    signature: "void NvHashIndexData(HASH_STATE* hashState,  // IN: Initialized hash
      state\n                     NV_INDEX*   nvIndex,    // IN: Index\n                     NV_REF
      \     locator,    // IN: where the data is located\n                     UINT32
      \     offset,     // IN: starting offset\n                     UINT16      size
      \       // IN: amount to hash\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexData
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1001,1
    - Dst: BYTE_ARRAY_TO_UINT64
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nvIndex
    - locator
    argTypes:
    - NV_INDEX*
    - NV_REF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 993
    functionDepth: 3
    functionLinenumber: 993
    functionLinenumberEnd: 1003
    functionName: NvGetUINT64Data
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvGetIndexData
    - BYTE_ARRAY_TO_UINT64
    linkageType: ''
    returnType: UINT64
    signature: "UINT64 NvGetUINT64Data(NV_INDEX* nvIndex,  // IN: the in RAM index
      descriptor\n                NV_REF    locator   // IN: where index exists in
      NV\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1018,1
    - Dst: NvRamGetIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1020,1
    - Dst: NvWriteRamIndexAttributes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1021,1
    - Dst: NvWriteNvIndexAttributes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - locator
    - attributes
    argTypes:
    - TPM_HANDLE
    - NV_REF
    - TPMA_NV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1010
    functionDepth: 3
    functionLinenumber: 1010
    functionLinenumberEnd: 1029
    functionName: NvWriteIndexAttributes
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - NvWriteNvIndexAttributes
    - NvRamGetIndex
    - NvWriteRamIndexAttributes
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NvWriteIndexAttributes(TPM_HANDLE handle,\n                       NV_REF
      \    locator,    // IN: location of the index\n                       TPMA_NV
      \   attributes  // IN: attributes to write\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1049,1
    - Dst: NvConditionallyWrite
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - locator
    - authValue
    argTypes:
    - NV_REF
    - TPM2B_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1037
    functionDepth: 2
    functionLinenumber: 1037
    functionLinenumberEnd: 1057
    functionName: NvWriteIndexAuth
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - MemoryCopy2B
    - NvConditionallyWrite
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NvWriteIndexAuth(NV_REF      locator,   // IN: location of
      the index\n                 TPM2B_AUTH* authValue  // IN: the authValue to write\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NvFindHandle
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1075,1
    - Dst: NvReadNvIndexInfo
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1078,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1079,1
    - Dst: NvRamGetIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1081,1
    - Dst: NvReadRamIndexAttributes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1083,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - nvHandle
    - locator
    argTypes:
    - TPM_HANDLE
    - NV_REF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1067
    functionDepth: 2
    functionLinenumber: 1067
    functionLinenumberEnd: 1089
    functionName: NvGetIndexInfo
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 1
    functionsReached:
    - IS_ATTRIBUTE
    - NvReadRamIndexAttributes
    - NvFindHandle
    - NvRamGetIndex
    - NvReadNvIndexInfo
    linkageType: ''
    returnType: NV_INDEX
    signature: "NV_INDEX * NvGetIndexInfo(TPM_HANDLE nvHandle,  // IN: the index handle\n
      \                        NV_REF*    locator    // OUT: location of the index\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1115,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1119,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1122,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1126,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1129,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1133,1
    - Dst: NvWriteNvIndexAttributes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1135,1
    - Dst: IsNvOrdinaryIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1141,1
    - Dst: _plat__NvMemoryClear
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1143,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1149,1
    - Dst: IsNvCounterIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1154,1
    - Dst: SET_NV_UPDATE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1155,1
    - Dst: IsNvOrdinaryIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1160,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1161,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1167,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1174,1
    - Dst: NvConditionallyWrite
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1182,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - nvIndex
    - offset
    - size
    - data
    argTypes:
    - NV_INDEX*
    - UINT32
    - UINT32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1106
    functionDepth: 3
    functionLinenumber: 1106
    functionLinenumberEnd: 1186
    functionName: NvWriteIndexData
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - IsNvOrdinaryIndex
    - MemoryCopy
    - pAssert
    - IsNvCounterIndex
    - _plat__NvMemoryClear
    - SET_NV_UPDATE
    - SET_ATTRIBUTE
    - NvWriteNvIndexAttributes
    - NvConditionallyWrite
    - MemorySet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NvWriteIndexData(NV_INDEX* nvIndex,  // IN: the description
      of the index\n                 UINT32    offset,   // IN: offset of NV data\n
      \                UINT32    size,     // IN: size of NV data\n                 void*
      \    data      // IN: data buffer\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1203,1
    - Dst: NvWriteIndexData
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - nvIndex
    - intValue
    argTypes:
    - NV_INDEX*
    - UINT64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1197
    functionDepth: 4
    functionLinenumber: 1197
    functionLinenumberEnd: 1206
    functionName: NvWriteUINT64Data
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - UINT64_TO_BYTE_ARRAY
    - NvWriteIndexData
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NvWriteUINT64Data(NV_INDEX* nvIndex,  // IN: the description
      of the index\n                  UINT64    intValue  // IN: the value to write\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1220,1
    - Dst: NvGetIndexName
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - name
    argTypes:
    - TPMI_RH_NV_INDEX
    - TPM2B_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1215
    functionDepth: 3
    functionLinenumber: 1215
    functionLinenumberEnd: 1223
    functionName: NvGetNameByIndexHandle
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvGetIndexInfo
    - NvGetIndexName
    linkageType: ''
    returnType: TPM2B_NAME
    signature: "TPM2B_NAME * NvGetNameByIndexHandle(\n    TPMI_RH_NV_INDEX handle,
      \ // IN: handle of the index\n    TPM2B_NAME*      name     // OUT: name of
      the index\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1244,1
    - Dst: NvTestSpace
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1250,1
    - Dst: IsNvCounterIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1250,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1255,1
    - Dst: NvRamTestSpaceIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1256,1
    - Dst: NvAdd
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1265,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1269,1
    - Dst: NvAddRAM
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1270,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - publicArea
    - authValue
    argTypes:
    - TPMS_NV_PUBLIC*
    - TPM2B_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1230
    functionDepth: 5
    functionLinenumber: 1230
    functionLinenumberEnd: 1273
    functionName: NvDefineIndex
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - NvAddRAM
    - NvRamTestSpaceIndex
    - IsNvCounterIndex
    - NvAdd
    - NvTestSpace
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NvDefineIndex(TPMS_NV_PUBLIC* publicArea,  // IN: A template
      for an area to create.\n              TPM2B_AUTH*     authValue    // IN: The
      initial authorization value\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NvObjectToBuffer
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1281,1
    - Dst: NvTestSpace
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1283,1
    - Dst: NvAdd
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1275
    functionDepth: 5
    functionLinenumber: 1275
    functionLinenumberEnd: 1288
    functionName: NvWriteObject
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvObjectToBuffer
    - NvTestSpace
    - NvAdd
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC NvWriteObject(OBJECT* object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NvTestSpace
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1309,1
    - Dst: NvWriteObject
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - evictHandle
    - object
    argTypes:
    - TPMI_DH_OBJECT
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1295
    functionDepth: 6
    functionLinenumber: 1295
    functionLinenumberEnd: 1325
    functionName: NvAddEvictObject
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvTestSpace
    - NvWriteObject
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NvAddEvictObject(TPMI_DH_OBJECT evictHandle,  // IN: new evict
      handle\n                 OBJECT*        object        // IN: object to be added\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IsNvCounterIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1343,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1344,1
    - Dst: NvUpdateMaxCount
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1345,1
    - Dst: NvGetUINT64Data
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1345,1
    - Dst: NvDelete
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1346,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1350,1
    - Dst: NvDeleteRAM
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1351,1
    - Dst: NvIndexCacheInit
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - nvIndex
    - entityAddr
    argTypes:
    - NV_INDEX*
    - NV_REF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1332
    functionDepth: 4
    functionLinenumber: 1332
    functionLinenumberEnd: 1355
    functionName: NvDeleteIndex
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - NvIndexCacheInit
    - NvDelete
    - IsNvCounterIndex
    - NvUpdateMaxCount
    - NvGetUINT64Data
    - NvDeleteRAM
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NvDeleteIndex(NV_INDEX* nvIndex,    // IN: an in RAM index
      descriptor\n              NV_REF    entityAddr  // IN: location in NV\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NvFindEvict
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1365,1
    - Dst: NvDelete
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1361
    functionDepth: 4
    functionLinenumber: 1361
    functionLinenumberEnd: 1371
    functionName: NvDeleteEvict
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvFindEvict
    - NvDelete
    linkageType: ''
    returnType: TPM_RC
    signature: 'TPM_RC NvDeleteEvict(TPM_HANDLE handle  // IN: handle of entity to
      be deleted

      )'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NvNext
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1389,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1391,1
    - Dst: NvReadNvIndexInfo
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1400,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1403,1
    - Dst: NvDeleteIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1406,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1413,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1417,1
    - Dst: NvDelete
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1427,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1436,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 26
    argCount: 1
    argNames:
    - hierarchy
    argTypes:
    - TPMI_RH_HIERARCHY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1380
    functionDepth: 5
    functionLinenumber: 1380
    functionLinenumberEnd: 1440
    functionName: NvFlushHierarchy
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvNext
    - NvDeleteIndex
    - IS_ATTRIBUTE
    - NvReadNvIndexInfo
    - NvDelete
    - HandleGetType
    - NvRead
    - FAIL
    linkageType: ''
    returnType: TPM_RC
    signature: 'TPM_RC NvFlushHierarchy(TPMI_RH_HIERARCHY hierarchy  // IN: hierarchy
      to be flushed.

      )'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NvNextIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1459,1
    - Dst: NvReadNvIndexAttributes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1461,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1464,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1465,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1467,1
    - Dst: NvWriteNvIndexAttributes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1468,1
    - Dst: NvRamNext
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1474,1
    - Dst: NvReadRamIndexAttributes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1477,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1478,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1480,1
    - Dst: NvWriteRamIndexAttributes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1481,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1449
    functionDepth: 3
    functionLinenumber: 1449
    functionLinenumberEnd: 1485
    functionName: NvSetGlobalLock
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - NvReadRamIndexAttributes
    - NvReadNvIndexAttributes
    - NvWriteRamIndexAttributes
    - SET_ATTRIBUTE
    - NvWriteNvIndexAttributes
    - NvNextIndex
    - NvRamNext
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC NvSetGlobalLock(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - handleList
    - count
    - entityHandle
    argTypes:
    - TPML_HANDLE*
    - UINT32
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1490
    functionDepth: 0
    functionLinenumber: 1490
    functionLinenumberEnd: 1528
    functionName: InsertSort
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void InsertSort(TPML_HANDLE* handleList,  // IN/OUT: sorted handle
      list\n                       UINT32       count,  // IN: maximum count in the
      handle list\n                       TPM_HANDLE   entityHandle  // IN: handle
      to be inserted\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1550,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1550,1
    - Dst: NvNextEvict
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1559,1
    - Dst: InsertSort
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1574,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - handle
    - count
    - handleList
    argTypes:
    - TPMI_DH_OBJECT
    - UINT32
    - TPML_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1539
    functionDepth: 1
    functionLinenumber: 1539
    functionLinenumberEnd: 1577
    functionName: NvCapGetPersistent
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvNextEvict
    - pAssert
    - InsertSort
    - HandleGetType
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO NvCapGetPersistent(TPMI_DH_OBJECT handle,  // IN: start
      handle\n                   UINT32         count,   // IN: maximum number of
      returned handles\n                   TPML_HANDLE*   handleList  // OUT: list
      of handle\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1589,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1589,1
    - Dst: NvNextEvict
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1591,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_OBJECT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1583
    functionDepth: 1
    functionLinenumber: 1583
    functionLinenumberEnd: 1599
    functionName: NvCapGetOnePersistent
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvNextEvict
    - pAssert
    - HandleGetType
    linkageType: ''
    returnType: BOOL
    signature: BOOL NvCapGetOnePersistent(TPMI_DH_OBJECT handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1619,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1619,1
    - Dst: NvNextIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1628,1
    - Dst: InsertSort
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1643,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - handle
    - count
    - handleList
    argTypes:
    - TPMI_DH_OBJECT
    - UINT32
    - TPML_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1608
    functionDepth: 1
    functionLinenumber: 1608
    functionLinenumberEnd: 1646
    functionName: NvCapGetIndex
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - pAssert
    - NvNextIndex
    - HandleGetType
    - InsertSort
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO NvCapGetIndex(TPMI_DH_OBJECT handle,     // IN: start
      handle\n              UINT32         count,      // IN: max number of returned
      handles\n              TPML_HANDLE*   handleList  // OUT: list of handle\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1656,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1656,1
    - Dst: NvNextIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_OBJECT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1650
    functionDepth: 1
    functionLinenumber: 1650
    functionLinenumberEnd: 1666
    functionName: NvCapGetOneIndex
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - pAssert
    - NvNextIndex
    - HandleGetType
    linkageType: ''
    returnType: BOOL
    signature: BOOL NvCapGetOneIndex(TPMI_DH_OBJECT handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvNextIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1670
    functionDepth: 1
    functionLinenumber: 1670
    functionLinenumberEnd: 1679
    functionName: NvCapGetIndexNumber
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvNextIndex
    linkageType: ''
    returnType: UINT32
    signature: UINT32 NvCapGetIndexNumber(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvNextEvict
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1683
    functionDepth: 1
    functionLinenumber: 1683
    functionLinenumberEnd: 1693
    functionName: NvCapGetPersistentNumber
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 1
    functionsReached:
    - NvNextEvict
    linkageType: ''
    returnType: UINT32
    signature: UINT32 NvCapGetPersistentNumber(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NvCapGetCounterNumber
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1702,1
    - Dst: NvGetFreeBytes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1698
    functionDepth: 4
    functionLinenumber: 1698
    functionLinenumberEnd: 1718
    functionName: NvCapGetPersistentAvail
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvGetFreeBytes
    - NvCapGetCounterNumber
    linkageType: ''
    returnType: UINT32
    signature: UINT32 NvCapGetPersistentAvail(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NvNextIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1729,1
    - Dst: NvReadNvIndexAttributes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1731,1
    - Dst: IsNvCounterIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1732,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1722
    functionDepth: 2
    functionLinenumber: 1722
    functionLinenumberEnd: 1736
    functionName: NvCapGetCounterNumber
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 2
    functionsReached:
    - NvNextIndex
    - NvReadNvIndexAttributes
    - IsNvCounterIndex
    linkageType: ''
    returnType: UINT32
    signature: UINT32 NvCapGetCounterNumber(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1745,1
    - Dst: IsNvCounterIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1750,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1752,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1753,1
    - Dst: CLEAR_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1754,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1758,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1759,1
    - Dst: CLEAR_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1760,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - attributes
    - type
    argTypes:
    - TPMA_NV
    - STARTUP_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1740
    functionDepth: 1
    functionLinenumber: 1740
    functionLinenumberEnd: 1762
    functionName: NvSetStartupAttributes
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - IsNvCounterIndex
    - CLEAR_ATTRIBUTE
    linkageType: ''
    returnType: TPMA_NV
    signature: "TPMA_NV NvSetStartupAttributes(TPMA_NV attributes,  // IN: attributes
      to change\n                                      STARTUP_TYPE type    // IN:
      start up type\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1785,1
    - Dst: NvSetMaxCount
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1788,1
    - Dst: NvGetMaxCount
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1788,1
    - Dst: NvNextIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1794,1
    - Dst: NvReadNvIndexAttributes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1796,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1799,1
    - Dst: NvSetStartupAttributes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1802,1
    - Dst: NvWriteNvIndexAttributes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1803,1
    - Dst: NvRamNext
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1806,1
    - Dst: NvReadRamIndexAttributes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1808,1
    - Dst: NvSetStartupAttributes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1810,1
    - Dst: NvWriteRamIndexAttributes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1813,1
    - Dst: IsNvCounterIndex
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1816,1
    - Dst: BYTE_ARRAY_TO_UINT64
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1821,1
    - Dst: UINT64_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1829,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - type
    argTypes:
    - STARTUP_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1774
    functionDepth: 3
    functionLinenumber: 1774
    functionLinenumberEnd: 1833
    functionName: NvEntityStartup
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - NvReadRamIndexAttributes
    - NvSetMaxCount
    - NvReadNvIndexAttributes
    - NvWriteRamIndexAttributes
    - IsNvCounterIndex
    - UINT64_TO_BYTE_ARRAY
    - NvSetStartupAttributes
    - BYTE_ARRAY_TO_UINT64
    - NvRead
    - NvGetMaxCount
    - NvWriteNvIndexAttributes
    - NvNextIndex
    - NvRamNext
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL NvEntityStartup(STARTUP_TYPE type  // IN: start up type

      )'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NvCapGetPersistentNumber
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1843,1
    - Dst: NvGetFreeBytes
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1847,1
    - Dst: NvRamGetEnd
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1859,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1838
    functionDepth: 4
    functionLinenumber: 1838
    functionLinenumberEnd: 1867
    functionName: NvCapGetCounterAvail
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 0
    functionsReached:
    - NvRamGetEnd
    - NvCapGetPersistentNumber
    - NvGetFreeBytes
    linkageType: ''
    returnType: UINT32
    signature: UINT32 NvCapGetCounterAvail(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NvNext
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1880,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1873
    functionDepth: 2
    functionLinenumber: 1873
    functionLinenumberEnd: 1886
    functionName: NvFindHandle
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 3
    functionsReached:
    - NvNext
    linkageType: ''
    returnType: NV_REF
    signature: NV_REF NvFindHandle(TPM_HANDLE handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1906
    functionDepth: 0
    functionLinenumber: 1906
    functionLinenumberEnd: 1910
    functionName: NvReadMaxCount
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: UINT64
    signature: UINT64 NvReadMaxCount(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - count
    argTypes:
    - UINT64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1916
    functionDepth: 0
    functionLinenumber: 1916
    functionLinenumberEnd: 1920
    functionName: NvUpdateMaxCount
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NvUpdateMaxCount(UINT64 count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - UINT64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1925
    functionDepth: 0
    functionLinenumber: 1925
    functionLinenumberEnd: 1928
    functionName: NvSetMaxCount
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NvSetMaxCount(UINT64 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvNext
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1940,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NvDynamic.c:1944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1932
    functionDepth: 2
    functionLinenumber: 1932
    functionLinenumberEnd: 1947
    functionName: NvGetMaxCount
    functionSourceFile: /src/libtpms/src/tpm2/NvDynamic.c
    functionUses: 1
    functionsReached:
    - NvNext
    - NvRead
    linkageType: ''
    returnType: UINT64
    signature: UINT64 NvGetMaxCount(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: StringToUint32
    functionSourceFile: /src/libtpms/src/tpm2/VendorInfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t StringToUint32(const char s[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringToUint32
      Src: /src/libtpms/src/tpm2/VendorInfo.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: _plat__GetManufacturerCapabilityCode
    functionSourceFile: /src/libtpms/src/tpm2/VendorInfo.c
    functionUses: 0
    functionsReached:
    - StringToUint32
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__GetManufacturerCapabilityCode()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: StringToUint32
      Src: /src/libtpms/src/tpm2/VendorInfo.c:108,1
    - Dst: StringToUint32
      Src: /src/libtpms/src/tpm2/VendorInfo.c:110,1
    - Dst: StringToUint32
      Src: /src/libtpms/src/tpm2/VendorInfo.c:112,1
    - Dst: StringToUint32
      Src: /src/libtpms/src/tpm2/VendorInfo.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - index
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: _plat__GetVendorCapabilityCode
    functionSourceFile: /src/libtpms/src/tpm2/VendorInfo.c
    functionUses: 0
    functionsReached:
    - StringToUint32
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__GetVendorCapabilityCode(int index)
  - 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: _plat__GetTpmFirmwareVersionHigh
    functionSourceFile: /src/libtpms/src/tpm2/VendorInfo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__GetTpmFirmwareVersionHigh()
  - 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: _plat__GetTpmFirmwareVersionLow
    functionSourceFile: /src/libtpms/src/tpm2/VendorInfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__GetTpmFirmwareVersionLow()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: _plat__GetTpmFirmwareSvn
    functionSourceFile: /src/libtpms/src/tpm2/VendorInfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__GetTpmFirmwareSvn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: _plat__GetTpmFirmwareMaxSvn
    functionSourceFile: /src/libtpms/src/tpm2/VendorInfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__GetTpmFirmwareMaxSvn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: _plat__SetTpmFirmwareHash
    functionSourceFile: /src/libtpms/src/tpm2/VendorInfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__SetTpmFirmwareHash(uint32_t hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/libtpms/src/tpm2/VendorInfo.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - svn
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: _plat__SetTpmFirmwareSvn
    functionSourceFile: /src/libtpms/src/tpm2/VendorInfo.c
    functionUses: 0
    functionsReached:
    - MIN
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__SetTpmFirmwareSvn(uint16_t svn)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - svn
    - secret_buf_size
    - secret_buf
    - secret_size
    argTypes:
    - uint16_t
    - uint16_t
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 185
    functionName: _plat__GetTpmFirmwareSvnSecret
    functionSourceFile: /src/libtpms/src/tpm2/VendorInfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _plat__GetTpmFirmwareSvnSecret(uint16_t  svn,\n                                              uint16_t
      \ secret_buf_size,\n                                              uint8_t*  secret_buf,\n
      \                                             uint16_t* secret_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - secret_buf_size
    - secret_buf
    - secret_size
    argTypes:
    - uint16_t
    - uint8_t*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 206
    functionName: _plat__GetTpmFirmwareSecret
    functionSourceFile: /src/libtpms/src/tpm2/VendorInfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _plat__GetTpmFirmwareSecret(\n    uint16_t secret_buf_size,
      uint8_t* secret_buf, uint16_t* secret_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    functionName: _plat__GetTpmType
    functionSourceFile: /src/libtpms/src/tpm2/VendorInfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__GetTpmType()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - result
    - op1
    - op2
    - count
    argTypes:
    - crypt_uword_t*
    - crypt_uword_t*
    - crypt_uword_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 130
    functionName: AddSame
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: "BOOL AddSame(crypt_uword_t*       result,\n                    const
      crypt_uword_t* op1,\n                    const crypt_uword_t* op2,\n                    int
      \                 count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - result
    - op
    - count
    - carry
    argTypes:
    - crypt_uword_t*
    - crypt_uword_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: CarryProp
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int CarryProp(\n    crypt_uword_t* result, const crypt_uword_t* op,
      int count, int carry)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BnMath.c:146,1
    - Dst: BnSetTop
      Src: /src/libtpms/src/tpm2/BnMath.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - result
    - stop
    - carry
    argTypes:
    - bigNum
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: CarryResolve
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - pAssert
    - BnSetTop
    linkageType: ''
    returnType: void
    signature: void CarryResolve(bigNum result, int stop, int carry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BnMath.c:167,1
    - Dst: MIN
      Src: /src/libtpms/src/tpm2/BnMath.c:168,1
    - Dst: AddSame
      Src: /src/libtpms/src/tpm2/BnMath.c:169,1
    - Dst: CarryProp
      Src: /src/libtpms/src/tpm2/BnMath.c:172,1
    - Dst: CarryResolve
      Src: /src/libtpms/src/tpm2/BnMath.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - result
    - op1
    - op2
    argTypes:
    - bigNum
    - bigConst
    - bigConst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 175
    functionName: BnAdd
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - CarryProp
    - pAssert
    - CarryResolve
    - AddSame
    - MIN
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnAdd(bigNum result, bigConst op1, bigConst op2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CarryProp
      Src: /src/libtpms/src/tpm2/BnMath.c:184,1
    - Dst: CarryResolve
      Src: /src/libtpms/src/tpm2/BnMath.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - result
    - op
    - word
    argTypes:
    - bigNum
    - bigConst
    - crypt_uword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: BnAddWord
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - CarryProp
    - CarryResolve
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnAddWord(bigNum result, bigConst op, crypt_uword_t word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - result
    - op1
    - op2
    - count
    argTypes:
    - crypt_uword_t*
    - crypt_uword_t*
    - crypt_uword_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 207
    functionName: SubSame
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int SubSame(crypt_uword_t*       result,\n                   const
      crypt_uword_t* op1,\n                   const crypt_uword_t* op2,\n                   int
      \                 count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - result
    - op
    - size
    - borrow
    argTypes:
    - crypt_uword_t*
    - crypt_uword_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: BorrowProp
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int BorrowProp(\n    crypt_uword_t* result, const crypt_uword_t* op,
      int size, int borrow)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/libtpms/src/tpm2/BnMath.c:231,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BnMath.c:234,1
    - Dst: SubSame
      Src: /src/libtpms/src/tpm2/BnMath.c:235,1
    - Dst: BorrowProp
      Src: /src/libtpms/src/tpm2/BnMath.c:237,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BnMath.c:239,1
    - Dst: BnSetTop
      Src: /src/libtpms/src/tpm2/BnMath.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - result
    - op1
    - op2
    argTypes:
    - bigNum
    - bigConst
    - bigConst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 242
    functionName: BnSub
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - pAssert
    - SubSame
    - MIN
    - BnSetTop
    - BorrowProp
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnSub(bigNum result, bigConst op1, bigConst op2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BnMath.c:251,1
    - Dst: BorrowProp
      Src: /src/libtpms/src/tpm2/BnMath.c:254,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BnMath.c:255,1
    - Dst: BnSetTop
      Src: /src/libtpms/src/tpm2/BnMath.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - result
    - op
    - word
    argTypes:
    - bigNum
    - bigConst
    - crypt_uword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 258
    functionName: BnSubWord
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - BorrowProp
    - pAssert
    - BnSetTop
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnSubWord(bigNum result, bigConst op, crypt_uword_t word)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BnMath.c:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - op1
    - op2
    argTypes:
    - bigConst
    - bigConst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 287
    functionName: BnUnsignedCmp
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - pAssert
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnUnsignedCmp(bigConst op1, bigConst op2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - op1
    - word
    argTypes:
    - bigConst
    - crypt_uword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 304
    functionName: BnUnsignedCmpWord
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnUnsignedCmpWord(bigConst op1, crypt_uword_t word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_MAX
      Src: /src/libtpms/src/tpm2/BnMath.c:311,1
    - Dst: BN_VAR
      Src: /src/libtpms/src/tpm2/BnMath.c:312,1
    - Dst: BnDiv
      Src: /src/libtpms/src/tpm2/BnMath.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - numerator
    - modulus
    argTypes:
    - bigConst
    - crypt_word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 318
    functionName: crypt_word_t::BnModWord
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - BnDiv
    - BN_MAX
    - BN_VAR
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT crypt_word_t BnModWord(bigConst numerator, crypt_word_t
      modulus)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - word
    argTypes:
    - crypt_uword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 364
    functionName: Msb
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Msb(crypt_uword_t word)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Msb
      Src: /src/libtpms/src/tpm2/BnMath.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bn
    argTypes:
    - bigConst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 382
    functionName: BnMsb
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - Msb
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnMsb(bigConst bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnMsb
      Src: /src/libtpms/src/tpm2/BnMath.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - bigConst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 388
    functionDepth: 2
    functionLinenumber: 388
    functionLinenumberEnd: 393
    functionName: BnSizeInBits
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - BnMsb
    linkageType: ''
    returnType: LIB_EXPORT unsigned
    signature: LIB_EXPORT unsigned BnSizeInBits(bigConst n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BnMath.c:401,1
    - Dst: BnSetTop
      Src: /src/libtpms/src/tpm2/BnMath.c:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - n
    - w
    argTypes:
    - bigNum
    - crypt_uword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 406
    functionName: BnSetWord
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - pAssert
    - BnSetTop
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnSetWord(bigNum n, crypt_uword_t w)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RADIX_MOD
      Src: /src/libtpms/src/tpm2/BnMath.c:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bn
    - bitNum
    argTypes:
    - bigNum
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 426
    functionName: BnSetBit
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - RADIX_MOD
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT BnSetBit(bigNum       bn,     // IN/OUT: big number to
      modify\n                         unsigned int bitNum  // IN: Bit number to SET\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RADIX_DIV
      Src: /src/libtpms/src/tpm2/BnMath.c:438,1
    - Dst: RADIX_MOD
      Src: /src/libtpms/src/tpm2/BnMath.c:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bn
    - bitNum
    argTypes:
    - bigNum
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 444
    functionName: BnTestBit
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - RADIX_DIV
    - RADIX_MOD
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT BnTestBit(bigNum       bn,     // IN: number to check\n
      \                         unsigned int bitNum  // IN: bit to test\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_CRYPT_WORDS
      Src: /src/libtpms/src/tpm2/BnMath.c:461,1
    - Dst: RADIX_MOD
      Src: /src/libtpms/src/tpm2/BnMath.c:466,1
    - Dst: BnSetTop
      Src: /src/libtpms/src/tpm2/BnMath.c:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bn
    - maskBit
    argTypes:
    - bigNum
    - crypt_uword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 471
    functionName: BnMaskBits
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - BITS_TO_CRYPT_WORDS
    - BnSetTop
    - RADIX_MOD
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT BnMaskBits(bigNum        bn,      // IN/OUT: number to
      mask\n                           crypt_uword_t maskBit  // IN: the bit number
      for the mask.\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BnMath.c:496,1
    - Dst: BnSetTop
      Src: /src/libtpms/src/tpm2/BnMath.c:507,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - result
    - toShift
    - shiftAmount
    argTypes:
    - bigNum
    - bigConst
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 509
    functionName: BnShiftRight
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - pAssert
    - BnSetTop
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnShiftRight(bigNum result, bigConst toShift, uint32_t shiftAmount)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_VAR
      Src: /src/libtpms/src/tpm2/BnMath.c:515,1
    - Dst: BN_VAR
      Src: /src/libtpms/src/tpm2/BnMath.c:516,1
    - Dst: BnCurveGetPrime
      Src: /src/libtpms/src/tpm2/BnMath.c:517,1
    - Dst: BnMult
      Src: /src/libtpms/src/tpm2/BnMath.c:522,1
    - Dst: BnMod
      Src: /src/libtpms/src/tpm2/BnMath.c:524,1
    - Dst: BnMult
      Src: /src/libtpms/src/tpm2/BnMath.c:526,1
    - Dst: BnAdd
      Src: /src/libtpms/src/tpm2/BnMath.c:529,1
    - Dst: BnCurveGet_a
      Src: /src/libtpms/src/tpm2/BnMath.c:529,1
    - Dst: BnMult
      Src: /src/libtpms/src/tpm2/BnMath.c:533,1
    - Dst: BnAdd
      Src: /src/libtpms/src/tpm2/BnMath.c:536,1
    - Dst: BnCurveGet_b
      Src: /src/libtpms/src/tpm2/BnMath.c:536,1
    - Dst: BnMod
      Src: /src/libtpms/src/tpm2/BnMath.c:538,1
    - Dst: BnUnsignedCmp
      Src: /src/libtpms/src/tpm2/BnMath.c:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - Q
    - C
    argTypes:
    - pointConst
    - TPMBN_ECC_CURVE_CONSTANTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 543
    functionName: BnIsPointOnCurve
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - BnUnsignedCmp
    - BnCurveGet_b
    - BnCurveGet_a
    - BnMult
    - BnMod
    - BnCurveGetPrime
    - BN_VAR
    - BnAdd
    linkageType: ''
    returnType: BOOL
    signature: BOOL BnIsPointOnCurve(pointConst Q, const TPMBN_ECC_CURVE_CONSTANTS*
      C)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BnSizeInBits
      Src: /src/libtpms/src/tpm2/BnMath.c:553,1
    - Dst: Msb
      Src: /src/libtpms/src/tpm2/BnMath.c:568,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - n
    argTypes:
    - bigConst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 550
    functionDepth: 3
    functionLinenumber: 550
    functionLinenumberEnd: 571
    functionName: BnSizeInBitsSkipLeadingZeros
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - Msb
    - BnSizeInBits
    linkageType: ''
    returnType: unsigned
    signature: unsigned BnSizeInBitsSkipLeadingZeros(bigConst n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TpmMath_GetRandomInRange
      Src: /src/libtpms/src/tpm2/BnMath.c:591,1
    - Dst: BnSizeInBitsSkipLeadingZeros
      Src: /src/libtpms/src/tpm2/BnMath.c:594,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/BnMath.c:595,1
    - Dst: TpmMath_GetRandomInRange
      Src: /src/libtpms/src/tpm2/BnMath.c:601,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/BnMath.c:605,1
    - Dst: BnSizeInBitsSkipLeadingZeros
      Src: /src/libtpms/src/tpm2/BnMath.c:605,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - dest
    - limit
    - rand
    argTypes:
    - bigNum
    - bigConst
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 578
    functionDepth: 4
    functionLinenumber: 578
    functionLinenumberEnd: 615
    functionName: BnGenerateRandomInRangeAllBytes
    functionSourceFile: /src/libtpms/src/tpm2/BnMath.c
    functionUses: 0
    functionsReached:
    - TpmMath_GetRandomInRange
    - BnSizeInBitsSkipLeadingZeros
    - BITS_TO_BYTES
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT BnGenerateRandomInRangeAllBytes(bigNum      dest,\n\t\t\t\t\t\tbigConst
      \   limit,\n\t\t\t\t\t\tRAND_STATE* rand\n\t\t\t\t\t\t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeCommandsCheckEnabled
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:103,1
    - Dst: GET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - commandIndex
    argTypes:
    - COMMAND_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: NextImplementedIndex
    functionSourceFile: /src/libtpms/src/tpm2/CommandCodeAttributes.c
    functionUses: 0
    functionsReached:
    - RuntimeCommandsCheckEnabled
    - GET_ATTRIBUTE
    linkageType: ''
    returnType: COMMAND_INDEX
    signature: COMMAND_INDEX NextImplementedIndex(COMMAND_INDEX commandIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: NextImplementedIndex
    functionSourceFile: /src/libtpms/src/tpm2/CommandCodeAttributes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NextImplementedIndex(x)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: GET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:152,1
    - Dst: GET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:160,1
    - Dst: GET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:174,1
    - Dst: GET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:202,1
    - Dst: GET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:222,1
    - Dst: NextImplementedIndex
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:224,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:239,1
    - Dst: GET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:245,1
    - Dst: NextImplementedIndex
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:269,1
    - Dst: GET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:270,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 1
    argNames:
    - commandCode
    argTypes:
    - TPM_CC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 273
    functionName: GetClosestCommandIndex
    functionSourceFile: /src/libtpms/src/tpm2/CommandCodeAttributes.c
    functionUses: 0
    functionsReached:
    - pAssert
    - NextImplementedIndex
    - GET_ATTRIBUTE
    linkageType: ''
    returnType: COMMAND_INDEX
    signature: 'COMMAND_INDEX GetClosestCommandIndex(TPM_CC commandCode  // IN: the
      command code to start at

      )'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:292,1
    - Dst: RuntimeCommandsCheckEnabled
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:300,1
    - Dst: GetClosestCommandIndex
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:307,1
    - Dst: GET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:314,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:316,1
    - Dst: RuntimeCommandsCheckEnabled
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:317,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - commandCode
    argTypes:
    - TPM_CC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 322
    functionName: CommandCodeToCommandIndex
    functionSourceFile: /src/libtpms/src/tpm2/CommandCodeAttributes.c
    functionUses: 0
    functionsReached:
    - RuntimeCommandsCheckEnabled
    - GetClosestCommandIndex
    - IS_ATTRIBUTE
    - GET_ATTRIBUTE
    linkageType: ''
    returnType: COMMAND_INDEX
    signature: 'COMMAND_INDEX CommandCodeToCommandIndex(TPM_CC commandCode  // IN:
      the command code to look up

      )'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeCommandsCheckEnabled
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:335,1
    - Dst: GET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - commandIndex
    argTypes:
    - COMMAND_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 345
    functionName: GetNextCommandIndex
    functionSourceFile: /src/libtpms/src/tpm2/CommandCodeAttributes.c
    functionUses: 0
    functionsReached:
    - RuntimeCommandsCheckEnabled
    - GET_ATTRIBUTE
    linkageType: ''
    returnType: COMMAND_INDEX
    signature: 'COMMAND_INDEX GetNextCommandIndex(COMMAND_INDEX commandIndex  // IN:
      the starting index

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:353,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - commandIndex
    argTypes:
    - COMMAND_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 357
    functionName: GetCommandCode
    functionSourceFile: /src/libtpms/src/tpm2/CommandCodeAttributes.c
    functionUses: 1
    functionsReached:
    - IS_ATTRIBUTE
    - GET_ATTRIBUTE
    linkageType: ''
    returnType: TPM_CC
    signature: 'TPM_CC GetCommandCode(COMMAND_INDEX commandIndex  // IN: the command
      index

      )'
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - commandIndex
    - handleIndex
    argTypes:
    - COMMAND_INDEX
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 391
    functionName: CommandAuthRole
    functionSourceFile: /src/libtpms/src/tpm2/CommandCodeAttributes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: AUTH_ROLE
    signature: "AUTH_ROLE CommandAuthRole(COMMAND_INDEX commandIndex,  // IN: command
      index\n                UINT32        handleIndex    // IN: handle index (zero
      based)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - commandIndex
    argTypes:
    - COMMAND_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 406
    functionName: EncryptSize
    functionSourceFile: /src/libtpms/src/tpm2/CommandCodeAttributes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int EncryptSize(COMMAND_INDEX commandIndex  // IN: command index

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - commandIndex
    argTypes:
    - COMMAND_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 421
    functionName: DecryptSize
    functionSourceFile: /src/libtpms/src/tpm2/CommandCodeAttributes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: 'int DecryptSize(COMMAND_INDEX commandIndex  // IN: command index

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - commandIndex
    argTypes:
    - COMMAND_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: IsSessionAllowed
    functionSourceFile: /src/libtpms/src/tpm2/CommandCodeAttributes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL IsSessionAllowed(COMMAND_INDEX commandIndex  // IN: the command
      to be checked

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - commandIndex
    argTypes:
    - COMMAND_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 443
    functionName: IsHandleInResponse
    functionSourceFile: /src/libtpms/src/tpm2/CommandCodeAttributes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL IsHandleInResponse(COMMAND_INDEX commandIndex)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:454,1
    - Dst: GET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - commandIndex
    argTypes:
    - COMMAND_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 482
    functionName: IsWriteOperation
    functionSourceFile: /src/libtpms/src/tpm2/CommandCodeAttributes.c
    functionUses: 1
    functionsReached:
    - IS_ATTRIBUTE
    - GET_ATTRIBUTE
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL IsWriteOperation(COMMAND_INDEX commandIndex  // IN: Command to
      check

      )'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:494,1
    - Dst: GET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - commandIndex
    argTypes:
    - COMMAND_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 512
    functionName: IsReadOperation
    functionSourceFile: /src/libtpms/src/tpm2/CommandCodeAttributes.c
    functionUses: 1
    functionsReached:
    - IS_ATTRIBUTE
    - GET_ATTRIBUTE
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL IsReadOperation(COMMAND_INDEX commandIndex  // IN: Command to
      check

      )'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetClosestCommandIndex
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:533,1
    - Dst: GetNextCommandIndex
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:535,1
    - Dst: RuntimeCommandsCheckEnabled
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:542,1
    - Dst: GET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:543,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - commandCode
    - count
    - commandList
    argTypes:
    - TPM_CC
    - UINT32
    - TPML_CCA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 562
    functionName: CommandCapGetCCList
    functionSourceFile: /src/libtpms/src/tpm2/CommandCodeAttributes.c
    functionUses: 0
    functionsReached:
    - RuntimeCommandsCheckEnabled
    - GetClosestCommandIndex
    - GetNextCommandIndex
    - GET_ATTRIBUTE
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO CommandCapGetCCList(TPM_CC commandCode,  // IN: start
      command code\n                    UINT32 count,        // IN: maximum count
      for number of entries in\n                                         //     'commandList'\n
      \                   TPML_CCA* commandList  // OUT: list of TPMA_CC\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CommandCodeToCommandIndex
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - commandCode
    - commandAttributes
    argTypes:
    - TPM_CC
    - TPMA_CC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 567
    functionDepth: 4
    functionLinenumber: 567
    functionLinenumberEnd: 578
    functionName: CommandCapGetOneCC
    functionSourceFile: /src/libtpms/src/tpm2/CommandCodeAttributes.c
    functionUses: 0
    functionsReached:
    - CommandCodeToCommandIndex
    linkageType: ''
    returnType: BOOL
    signature: "BOOL CommandCapGetOneCC(TPM_CC   commandCode,       // IN: command
      code\n                        TPMA_CC* commandAttributes  // OUT: command attributes\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandCodeAttributes.c:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - commandIndex
    argTypes:
    - COMMAND_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: IsVendorCommand
    functionSourceFile: /src/libtpms/src/tpm2/CommandCodeAttributes.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL IsVendorCommand(COMMAND_INDEX commandIndex  // IN: command index
      to check

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - context
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: CHECK_SIZE
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SIZE(context, length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: NEXT_OCTET
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT_OCTET(context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - context
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: PEEK_NEXT
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PEEK_NEXT(context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - context
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: CHECK_SPACE
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SPACE(context, length)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: TpmFailureMode
      Src: /src/libtpms/src/tpm2/ExecCommand.c:151,1
    - Dst: NvCheckState
      Src: /src/libtpms/src/tpm2/ExecCommand.c:160,1
    - Dst: TimeUpdateToCurrent
      Src: /src/libtpms/src/tpm2/ExecCommand.c:167,1
    - Dst: ObjectTerminateEvent
      Src: /src/libtpms/src/tpm2/ExecCommand.c:172,1
    - Dst: TPMI_ST_COMMAND_TAG_Unmarshal
      Src: /src/libtpms/src/tpm2/ExecCommand.c:182,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/ExecCommand.c:187,1
    - Dst: TPM_CC_Unmarshal
      Src: /src/libtpms/src/tpm2/ExecCommand.c:204,1
    - Dst: CommandCodeToCommandIndex
      Src: /src/libtpms/src/tpm2/ExecCommand.c:209,1
    - Dst: IsFieldUgradeMode
      Src: /src/libtpms/src/tpm2/ExecCommand.c:218,1
    - Dst: TPMIsStarted
      Src: /src/libtpms/src/tpm2/ExecCommand.c:228,1
    - Dst: TPMIsStarted
      Src: /src/libtpms/src/tpm2/ExecCommand.c:229,1
    - Dst: NvIndexCacheInit
      Src: /src/libtpms/src/tpm2/ExecCommand.c:235,1
    - Dst: ParseHandleBuffer
      Src: /src/libtpms/src/tpm2/ExecCommand.c:237,1
    - Dst: EntityGetLoadStatus
      Src: /src/libtpms/src/tpm2/ExecCommand.c:242,1
    - Dst: ClearCpRpHashes
      Src: /src/libtpms/src/tpm2/ExecCommand.c:246,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/ExecCommand.c:250,1
    - Dst: ParseSessionBuffer
      Src: /src/libtpms/src/tpm2/ExecCommand.c:271,1
    - Dst: CheckAuthNoSession
      Src: /src/libtpms/src/tpm2/ExecCommand.c:281,1
    - Dst: IsHandleInResponse
      Src: /src/libtpms/src/tpm2/ExecCommand.c:294,1
    - Dst: CommandDispatcher
      Src: /src/libtpms/src/tpm2/ExecCommand.c:300,1
    - Dst: BuildResponseSession
      Src: /src/libtpms/src/tpm2/ExecCommand.c:305,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/ExecCommand.c:319,1
    - Dst: ObjectCleanupEvict
      Src: /src/libtpms/src/tpm2/ExecCommand.c:325,1
    - Dst: BuildResponseHeader
      Src: /src/libtpms/src/tpm2/ExecCommand.c:329,1
    - Dst: NvUpdateIndexOrderlyData
      Src: /src/libtpms/src/tpm2/ExecCommand.c:339,1
    - Dst: NvCommit
      Src: /src/libtpms/src/tpm2/ExecCommand.c:340,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/ExecCommand.c:341,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/ExecCommand.c:344,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/ExecCommand.c:347,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 118
    argCount: 4
    argNames:
    - requestSize
    - request
    - responseSize
    - response
    argTypes:
    - uint32_t
    - unsigned char*
    - uint32_t*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 116
    functionDepth: 4
    functionLinenumber: 116
    functionLinenumberEnd: 353
    functionName: ExecuteCommand
    functionSourceFile: /src/libtpms/src/tpm2/ExecCommand.c
    functionUses: 0
    functionsReached:
    - TPMI_ST_COMMAND_TAG_Unmarshal
    - BuildResponseHeader
    - pAssert
    - CommandCodeToCommandIndex
    - ClearCpRpHashes
    - TimeUpdateToCurrent
    - UINT32_Unmarshal
    - BuildResponseSession
    - ParseSessionBuffer
    - ObjectTerminateEvent
    - TPMIsStarted
    - IsFieldUgradeMode
    - EntityGetLoadStatus
    - ParseHandleBuffer
    - NvIndexCacheInit
    - CheckAuthNoSession
    - NvCommit
    - TPM_CC_Unmarshal
    - TpmFailureMode
    - NvUpdateIndexOrderlyData
    - MemorySet
    - IsHandleInResponse
    - NvCheckState
    - NV_SYNC_PERSISTENT
    - ObjectCleanupEvict
    - FAIL
    - CommandDispatcher
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExecuteCommand(\n    uint32_t        requestSize,   //
      IN: command buffer size\n    unsigned char*  request,       // IN: command buffer\n
      \   uint32_t*       responseSize,  // IN/OUT: response buffer size\n    unsigned
      char** response       // IN/OUT: response buffer\n)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Entity.c:89,1
    - Dst: FOR_EACH_ACT
      Src: /src/libtpms/src/tpm2/Entity.c:113,1
    - Dst: ValidateHierarchy
      Src: /src/libtpms/src/tpm2/Entity.c:126,1
    - Dst: IsObjectPresent
      Src: /src/libtpms/src/tpm2/Entity.c:133,1
    - Dst: ObjectLoadEvict
      Src: /src/libtpms/src/tpm2/Entity.c:142,1
    - Dst: SessionIsLoaded
      Src: /src/libtpms/src/tpm2/Entity.c:148,1
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/Entity.c:151,1
    - Dst: SessionIsLoaded
      Src: /src/libtpms/src/tpm2/Entity.c:163,1
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/Entity.c:166,1
    - Dst: NvIndexIsAccessible
      Src: /src/libtpms/src/tpm2/Entity.c:177,1
    - Dst: AcIsAccessible
      Src: /src/libtpms/src/tpm2/Entity.c:186,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/Entity.c:196,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/Entity.c:204,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 66
    argCount: 1
    argNames:
    - command
    argTypes:
    - COMMAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 209
    functionName: EntityGetLoadStatus
    functionSourceFile: /src/libtpms/src/tpm2/Entity.c
    functionUses: 1
    functionsReached:
    - SessionIsLoaded
    - ObjectLoadEvict
    - ValidateHierarchy
    - RcSafeAddToResult
    - NvIndexIsAccessible
    - HandleGetType
    - SessionGet
    - FAIL
    - AcIsAccessible
    - IsObjectPresent
    - FOR_EACH_ACT
    linkageType: ''
    returnType: TPM_RC
    signature: 'TPM_RC EntityGetLoadStatus(COMMAND* command  // IN/OUT: command parsing
      structure

      )'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Entity.c:230,1
    - Dst: HierarchyNormalizeHandle
      Src: /src/libtpms/src/tpm2/Entity.c:234,1
    - Dst: FOR_EACH_ACT
      Src: /src/libtpms/src/tpm2/Entity.c:246,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/Entity.c:268,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/Entity.c:280,1
    - Dst: ObjectIsSequence
      Src: /src/libtpms/src/tpm2/Entity.c:282,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Entity.c:291,1
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/Entity.c:299,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Entity.c:300,1
    - Dst: PCRGetAuthValue
      Src: /src/libtpms/src/tpm2/Entity.c:306,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/Entity.c:311,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/Entity.c:315,1
    - Dst: MemoryRemoveTrailingZeros
      Src: /src/libtpms/src/tpm2/Entity.c:316,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 2
    argNames:
    - handle
    - auth
    argTypes:
    - TPMI_DH_ENTITY
    - TPM2B_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 318
    functionName: EntityGetAuthValue
    functionSourceFile: /src/libtpms/src/tpm2/Entity.c
    functionUses: 0
    functionsReached:
    - ObjectIsSequence
    - HierarchyNormalizeHandle
    - pAssert
    - PCRGetAuthValue
    - MemoryRemoveTrailingZeros
    - HandleToObject
    - HandleGetType
    - MemoryCopy2B
    - FAIL
    - NvGetIndexInfo
    - FOR_EACH_ACT
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 EntityGetAuthValue(TPMI_DH_ENTITY handle,  // IN: handle of
      entity\n                   TPM2B_AUTH*    auth     // OUT: authValue of the
      entity\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Entity.c:338,1
    - Dst: HierarchyNormalizeHandle
      Src: /src/libtpms/src/tpm2/Entity.c:341,1
    - Dst: FOR_EACH_ACT
      Src: /src/libtpms/src/tpm2/Entity.c:369,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/Entity.c:378,1
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/Entity.c:386,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Entity.c:387,1
    - Dst: PCRGetAuthPolicy
      Src: /src/libtpms/src/tpm2/Entity.c:394,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/Entity.c:398,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 2
    argNames:
    - handle
    - authPolicy
    argTypes:
    - TPMI_DH_ENTITY
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 330
    functionDepth: 3
    functionLinenumber: 330
    functionLinenumberEnd: 402
    functionName: EntityGetAuthPolicy
    functionSourceFile: /src/libtpms/src/tpm2/Entity.c
    functionUses: 0
    functionsReached:
    - HierarchyNormalizeHandle
    - PCRGetAuthPolicy
    - pAssert
    - HandleToObject
    - HandleGetType
    - FAIL
    - NvGetIndexInfo
    - FOR_EACH_ACT
    linkageType: ''
    returnType: TPMI_ALG_HASH
    signature: "TPMI_ALG_HASH EntityGetAuthPolicy(TPMI_DH_ENTITY handle,     // IN:
      handle of entity\n                    TPM2B_DIGEST*  authPolicy  // OUT: authPolicy
      of the entity\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 368
    functionName: ACT_GET_POLICY
    functionSourceFile: /src/libtpms/src/tpm2/Entity.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACT_GET_POLICY(N)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Entity.c:410,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/Entity.c:415,1
    - Dst: NvGetNameByIndexHandle
      Src: /src/libtpms/src/tpm2/Entity.c:425,1
    - Dst: UINT32_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/Entity.c:430,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - handle
    - name
    argTypes:
    - TPMI_DH_ENTITY
    - TPM2B_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 406
    functionDepth: 4
    functionLinenumber: 406
    functionLinenumberEnd: 434
    functionName: EntityGetName
    functionSourceFile: /src/libtpms/src/tpm2/Entity.c
    functionUses: 0
    functionsReached:
    - NvGetNameByIndexHandle
    - HandleToObject
    - HandleGetType
    - UINT32_TO_BYTE_ARRAY
    linkageType: ''
    returnType: TPM2B_NAME
    signature: "TPM2B_NAME * EntityGetName(TPMI_DH_ENTITY handle,  // IN: handle of
      entity\n                          TPM2B_NAME*    name     // OUT: name of entity\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Entity.c:448,1
    - Dst: HierarchyIsFirmwareLimited
      Src: /src/libtpms/src/tpm2/Entity.c:453,1
    - Dst: HierarchyIsSvnLimited
      Src: /src/libtpms/src/tpm2/Entity.c:453,1
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/Entity.c:476,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Entity.c:477,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Entity.c:482,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/Entity.c:493,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/Entity.c:512,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_ENTITY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 442
    functionDepth: 3
    functionLinenumber: 442
    functionLinenumberEnd: 518
    functionName: EntityGetHierarchy
    functionSourceFile: /src/libtpms/src/tpm2/Entity.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - pAssert
    - HandleToObject
    - HandleGetType
    - HierarchyIsFirmwareLimited
    - FAIL
    - NvGetIndexInfo
    - HierarchyIsSvnLimited
    linkageType: ''
    returnType: TPMI_RH_HIERARCHY
    signature: 'TPMI_RH_HIERARCHY EntityGetHierarchy(TPMI_DH_ENTITY handle  // IN
      :handle of entity

      )'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/ContextCommands.c:120,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/ContextCommands.c:123,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/ContextCommands.c:127,1
    - Dst: CryptRsaLoadPrivateExponent
      Src: /src/libtpms/src/tpm2/ContextCommands.c:147,1
    - Dst: ANY_OBJECT_Marshal
      Src: /src/libtpms/src/tpm2/ContextCommands.c:149,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/ContextCommands.c:154,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/ContextCommands.c:157,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/ContextCommands.c:162,1
    - Dst: ObjectIsSequence
      Src: /src/libtpms/src/tpm2/ContextCommands.c:169,1
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/ContextCommands.c:188,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/ContextCommands.c:198,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/ContextCommands.c:205,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/ContextCommands.c:207,1
    - Dst: SessionContextSave
      Src: /src/libtpms/src/tpm2/ContextCommands.c:216,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/ContextCommands.c:230,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/ContextCommands.c:236,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/ContextCommands.c:238,1
    - Dst: ComputeContextProtectionKey
      Src: /src/libtpms/src/tpm2/ContextCommands.c:243,1
    - Dst: CryptSymmetricEncrypt
      Src: /src/libtpms/src/tpm2/ContextCommands.c:248,1
    - Dst: ComputeContextIntegrity
      Src: /src/libtpms/src/tpm2/ContextCommands.c:260,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/ContextCommands.c:266,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - ContextSave_In*
    - ContextSave_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 273
    functionName: TPM2_ContextSave
    functionSourceFile: /src/libtpms/src/tpm2/ContextCommands.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - MemoryCopy
    - ObjectIsSequence
    - CryptRsaLoadPrivateExponent
    - SessionGet
    - SessionContextSave
    - TPM2B_DIGEST_Marshal
    - pAssert
    - CryptSymmetricEncrypt
    - HandleToObject
    - HandleGetType
    - ANY_OBJECT_Marshal
    - FAIL
    - ComputeContextIntegrity
    - ComputeContextProtectionKey
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ContextSave(ContextSave_In*  in,  // IN: input parameter
      list\n\t\t ContextSave_Out* out  // OUT: output parameter list\n\t\t )"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/ContextCommands.c:321,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/ContextCommands.c:326,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/ContextCommands.c:332,1
    - Dst: ComputeContextIntegrity
      Src: /src/libtpms/src/tpm2/ContextCommands.c:346,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/ContextCommands.c:351,1
    - Dst: ComputeContextProtectionKey
      Src: /src/libtpms/src/tpm2/ContextCommands.c:354,1
    - Dst: CryptSymmetricDecrypt
      Src: /src/libtpms/src/tpm2/ContextCommands.c:359,1
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/ContextCommands.c:369,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/ContextCommands.c:370,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/ContextCommands.c:386,1
    - Dst: HierarchyIsEnabled
      Src: /src/libtpms/src/tpm2/ContextCommands.c:393,1
    - Dst: ObjectContextLoadLibtpms
      Src: /src/libtpms/src/tpm2/ContextCommands.c:397,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/ContextCommands.c:408,1
    - Dst: SequenceNumberForSavedContextIsValid
      Src: /src/libtpms/src/tpm2/ContextCommands.c:417,1
    - Dst: SessionContextLoad
      Src: /src/libtpms/src/tpm2/ContextCommands.c:423,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/ContextCommands.c:438,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - ContextLoad_In*
    - ContextLoad_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 442
    functionName: TPM2_ContextLoad
    functionSourceFile: /src/libtpms/src/tpm2/ContextCommands.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - HierarchyIsEnabled
    - ObjectContextLoadLibtpms
    - SessionContextLoad
    - MemoryEqual2B
    - SequenceNumberForSavedContextIsValid
    - TPM2B_DIGEST_Unmarshal
    - HandleGetType
    - FAIL
    - CryptSymmetricDecrypt
    - ComputeContextIntegrity
    - MemoryEqual
    - ComputeContextProtectionKey
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ContextLoad(ContextLoad_In*  in,  // IN: input parameter
      list\n\t\t ContextLoad_Out* out  // OUT: output parameter list\n\t\t )"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/ContextCommands.c:456,1
    - Dst: IsObjectPresent
      Src: /src/libtpms/src/tpm2/ContextCommands.c:459,1
    - Dst: FlushObject
      Src: /src/libtpms/src/tpm2/ContextCommands.c:462,1
    - Dst: SessionIsLoaded
      Src: /src/libtpms/src/tpm2/ContextCommands.c:466,1
    - Dst: SessionIsSaved
      Src: /src/libtpms/src/tpm2/ContextCommands.c:467,1
    - Dst: SessionFlush
      Src: /src/libtpms/src/tpm2/ContextCommands.c:475,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/ContextCommands.c:480,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - in
    argTypes:
    - FlushContext_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 484
    functionName: TPM2_FlushContext
    functionSourceFile: /src/libtpms/src/tpm2/ContextCommands.c
    functionUses: 0
    functionsReached:
    - SessionIsLoaded
    - SessionFlush
    - HandleGetType
    - FlushObject
    - FAIL
    - SessionIsSaved
    - IsObjectPresent
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_FlushContext(\n\t\t  FlushContext_In     *in             //
      IN: input parameter list\n\t\t  )"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/ContextCommands.c:517,1
    - Dst: HierarchyIsFirmwareLimited
      Src: /src/libtpms/src/tpm2/ContextCommands.c:521,1
    - Dst: HierarchyIsSvnLimited
      Src: /src/libtpms/src/tpm2/ContextCommands.c:522,1
    - Dst: NvIsPlatformPersistentHandle
      Src: /src/libtpms/src/tpm2/ContextCommands.c:548,1
    - Dst: NvIsOwnerPersistentHandle
      Src: /src/libtpms/src/tpm2/ContextCommands.c:561,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/ContextCommands.c:568,1
    - Dst: NvFindHandle
      Src: /src/libtpms/src/tpm2/ContextCommands.c:575,1
    - Dst: NvAddEvictObject
      Src: /src/libtpms/src/tpm2/ContextCommands.c:579,1
    - Dst: NvDeleteEvict
      Src: /src/libtpms/src/tpm2/ContextCommands.c:584,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 1
    argNames:
    - in
    argTypes:
    - EvictControl_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 508
    functionDepth: 7
    functionLinenumber: 508
    functionLinenumberEnd: 587
    functionName: TPM2_EvictControl
    functionSourceFile: /src/libtpms/src/tpm2/ContextCommands.c
    functionUses: 0
    functionsReached:
    - NvFindHandle
    - NvAddEvictObject
    - HandleToObject
    - NvIsOwnerPersistentHandle
    - HierarchyIsFirmwareLimited
    - NvIsPlatformPersistentHandle
    - NvDeleteEvict
    - FAIL
    - HierarchyIsSvnLimited
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_EvictControl(EvictControl_In* in  // IN: input parameter
      list\n\t\t  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_INT_VAR
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Util.c:91,1
    - Dst: ExtMath_Divide
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Util.c:94,1
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Util.c:95,1
    - Dst: ExtMath_Multiply
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Util.c:99,1
    - Dst: ExtMath_Add
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Util.c:101,1
    - Dst: ExtMath_Divide
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Util.c:103,1
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Util.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - bnS
    - bnK
    - bnR
    - bnD
    - bnN
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 105
    functionName: TpmEcc_SchnorrCalculateS
    functionSourceFile: /src/libtpms/src/tpm2/TpmEcc_Signature_Util.c
    functionUses: 0
    functionsReached:
    - ExtMath_Add
    - ExtMath_Multiply
    - ExtMath_IsZero
    - CRYPT_INT_VAR
    - ExtMath_Divide
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TpmEcc_SchnorrCalculateS(\n    Crypt_Int*       bnS,  // OUT:
      's' component of the signature\n    const Crypt_Int* bnK,  // IN: a random value\n
      \   Crypt_Int*       bnR,  // IN: the signature 'r' value\n    const Crypt_Int*
      bnD,  // IN: the private key\n    const Crypt_Int* bnN   // IN: the order of
      the curve\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VolatileState_Save
      Src: /src/libtpms/src/tpm2/StateMarshal.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: VolatileSave
    functionSourceFile: /src/libtpms/src/tpm2/StateMarshal.c
    functionUses: 1
    functionsReached:
    - VolatileState_Save
    linkageType: ''
    returnType: UINT16
    signature: UINT16 VolatileSave(BYTE **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm2/StateMarshal.c:66,1
    - Dst: GetCachedState
      Src: /src/libtpms/src/tpm2/StateMarshal.c:73,1
    - Dst: struct libtpms_callbacks*::tpm_nvram_loaddata
      Src: /src/libtpms/src/tpm2/StateMarshal.c:81,1
    - Dst: VolatileState_Load
      Src: /src/libtpms/src/tpm2/StateMarshal.c:86,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/StateMarshal.c:91,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - restored
    argTypes:
    - BOOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 58
    functionDepth: 6
    functionLinenumber: 58
    functionLinenumberEnd: 98
    functionName: VolatileLoad
    functionSourceFile: /src/libtpms/src/tpm2/StateMarshal.c
    functionUses: 1
    functionsReached:
    - TPMLIB_GetCallbacks
    - GetCachedState
    - VolatileState_Load
    - struct libtpms_callbacks*::tpm_nvram_loaddata
    - free
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC VolatileLoad(BOOL *restored)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _platPcr__GetPcrInitializationAttributes
      Src: /src/libtpms/src/tpm2/PCR.c:111,1
    - Dst: pAssert_BOOL
      Src: /src/libtpms/src/tpm2/PCR.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - handle
    - groupIndex
    argTypes:
    - TPMI_DH_PCR
    - UINT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 123
    functionName: PCRBelongsAuthGroup
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - pAssert_BOOL
    - _platPcr__GetPcrInitializationAttributes
    linkageType: ''
    returnType: BOOL
    signature: "BOOL PCRBelongsAuthGroup(TPMI_DH_PCR handle,     // IN: handle of
      PCR\n                         UINT32*     groupIndex  // OUT: group array index
      if PCR\n                         //      belongs to a group that allows authValue.
      \ If PCR\n                         //      does not belong to an authorization\n
      \                        //      group, the value in this parameter is zero\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _platPcr__GetPcrInitializationAttributes
      Src: /src/libtpms/src/tpm2/PCR.c:148,1
    - Dst: pAssert_BOOL
      Src: /src/libtpms/src/tpm2/PCR.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - handle
    - groupIndex
    argTypes:
    - TPMI_DH_PCR
    - UINT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 158
    functionName: PCRBelongsPolicyGroup
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - pAssert_BOOL
    - _platPcr__GetPcrInitializationAttributes
    linkageType: ''
    returnType: BOOL
    signature: "BOOL PCRBelongsPolicyGroup(\n    TPMI_DH_PCR handle,     // IN: handle
      of PCR\n    UINT32*     groupIndex  // OUT: group index if PCR belongs a group
      that\n                            //     allows policy.  If PCR does not belong
      to\n                            //     a policy group, the value in this\n                            //
      \    parameter is zero\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _platPcr__GetPcrInitializationAttributes
      Src: /src/libtpms/src/tpm2/PCR.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_PCR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: PCRBelongsTCBGroup
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - _platPcr__GetPcrInitializationAttributes
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL PCRBelongsTCBGroup(TPMI_DH_PCR handle  // IN: handle of PCR

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PCRBelongsPolicyGroup
      Src: /src/libtpms/src/tpm2/PCR.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_PCR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: PCRPolicyIsAvailable
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - PCRBelongsPolicyGroup
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL PCRPolicyIsAvailable(TPMI_DH_PCR handle  // IN: PCR handle

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PCRBelongsAuthGroup
      Src: /src/libtpms/src/tpm2/PCR.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_PCR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 208
    functionName: PCRGetAuthValue
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 1
    functionsReached:
    - PCRBelongsAuthGroup
    linkageType: ''
    returnType: TPM2B_AUTH
    signature: 'TPM2B_AUTH * PCRGetAuthValue(TPMI_DH_PCR handle  // IN: PCR handle

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PCRBelongsPolicyGroup
      Src: /src/libtpms/src/tpm2/PCR.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - handle
    - policy
    argTypes:
    - TPMI_DH_PCR
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 231
    functionName: PCRGetAuthPolicy
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 1
    functionsReached:
    - PCRBelongsPolicyGroup
    linkageType: ''
    returnType: TPMI_ALG_HASH
    signature: "TPMI_ALG_HASH PCRGetAuthPolicy(TPMI_DH_PCR   handle,  // IN: PCR handle\n
      \                TPM2B_DIGEST* policy   // OUT: policy of PCR\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetAlgByIndex
      Src: /src/libtpms/src/tpm2/PCR.c:259,1
    - Dst: _platPcr_IsPcrBankDefaultActive
      Src: /src/libtpms/src/tpm2/PCR.c:260,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/PCR.c:274,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/PCR.c:275,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 278
    functionName: PCRManufacture
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - NV_SYNC_PERSISTENT
    - CryptHashGetAlgByIndex
    - _platPcr_IsPcrBankDefaultActive
    linkageType: ''
    returnType: void
    signature: void PCRManufacture(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FOR_EACH_HASH
      Src: /src/libtpms/src/tpm2/PCR.c:299,1
    - Dst: FAIL_NULL
      Src: /src/libtpms/src/tpm2/PCR.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - alg
    - pcrIndex
    argTypes:
    - TPM_ALG_ID
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 306
    functionName: GetSavedPcrPointer
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - FAIL_NULL
    - FOR_EACH_HASH
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * GetSavedPcrPointer(TPM_ALG_ID alg,      // IN: algorithm for
      bank\n                                UINT32     pcrIndex  // IN: PCR index
      in PCR_SAVE\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HASH
    - ','
    - Hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: HASH_CASE
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_CASE(HASH, Hash)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - pcr
    - hashAlg
    argTypes:
    - UINT32
    - TPMI_ALG_HASH
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 338
    functionName: PcrIsAllocated
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: "BOOL PcrIsAllocated(UINT32        pcr,     // IN: The number of the
      PCR\n                    TPMI_ALG_HASH hashAlg  // IN: The PCR algorithm\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/PCR.c:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - pPcrArray
    - alg
    - pcrNumber
    argTypes:
    - PCR*
    - TPM_ALG_ID
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 388
    functionName: GetPcrPointerFromPcrArray
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - FAIL
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * GetPcrPointerFromPcrArray(PCR*       pPcrArray,\n                                       TPM_ALG_ID
      alg,       // IN: algorithm for bank\n                                       UINT32
      \    pcrNumber  // IN: PCR number\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PcrIsAllocated
      Src: /src/libtpms/src/tpm2/PCR.c:396,1
    - Dst: GetPcrPointerFromPcrArray
      Src: /src/libtpms/src/tpm2/PCR.c:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pPcrArray
    - alg
    - pcrNumber
    argTypes:
    - PCR*
    - TPM_ALG_ID
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 403
    functionName: GetPcrPointerIfAllocated
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - GetPcrPointerFromPcrArray
    - PcrIsAllocated
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * GetPcrPointerIfAllocated(PCR*       pPcrArray,\n                               TPM_ALG_ID
      alg,       // IN: algorithm for bank\n                               UINT32
      \    pcrNumber  // IN: PCR number\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPcrPointerIfAllocated
      Src: /src/libtpms/src/tpm2/PCR.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alg
    - pcrNumber
    argTypes:
    - TPM_ALG_ID
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 417
    functionName: GetPcrPointer
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - GetPcrPointerIfAllocated
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * GetPcrPointer(TPM_ALG_ID alg,       // IN: algorithm for bank\n
      \                   UINT32     pcrNumber  // IN: PCR number\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - pcr
    - selection
    argTypes:
    - UINT32
    - TPMS_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 435
    functionName: IsPcrSelected
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: "BOOL IsPcrSelected(\n    UINT32              pcr,       // IN: The
      number of the PCR\n    TPMS_PCR_SELECTION* selection  // IN: The selection structure\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - selection
    argTypes:
    - TPMS_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 472
    functionName: FilterPcr
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void FilterPcr(TPMS_PCR_SELECTION* selection  // IN: input PCR selection

      )'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetPcrPointer
      Src: /src/libtpms/src/tpm2/PCR.c:483,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/PCR.c:488,1
    - Dst: TPMIsStarted
      Src: /src/libtpms/src/tpm2/PCR.c:491,1
    - Dst: PCRExtend
      Src: /src/libtpms/src/tpm2/PCR.c:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pcrHandle
    - hash
    - digest
    argTypes:
    - TPMI_DH_PCR
    - TPMI_ALG_HASH
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 477
    functionDepth: 4
    functionLinenumber: 477
    functionLinenumberEnd: 498
    functionName: PcrDrtm
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - MemorySet
    - TPMIsStarted
    - GetPcrPointer
    - PCRExtend
    linkageType: ''
    returnType: void
    signature: "void PcrDrtm(const TPMI_DH_PCR pcrHandle,  // IN: the index of the
      PCR to be\n                                           //     modified\n             const
      TPMI_ALG_HASH hash,     // IN: the bank identifier\n             const TPM2B_DIGEST*
      digest    // IN: the digest to modify the PCR\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 512
    functionName: PCR_ClearAuth
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PCR_ClearAuth(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pAssert_BOOL
      Src: /src/libtpms/src/tpm2/PCR.c:537,1
    - Dst: _platPcr__NumberOfPcrs
      Src: /src/libtpms/src/tpm2/PCR.c:537,1
    - Dst: _platPcr__GetPcrInitializationAttributes
      Src: /src/libtpms/src/tpm2/PCR.c:546,1
    - Dst: PCRChanged
      Src: /src/libtpms/src/tpm2/PCR.c:555,1
    - Dst: GetPcrPointer
      Src: /src/libtpms/src/tpm2/PCR.c:567,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/PCR.c:568,1
    - Dst: GetSavedPcrPointer
      Src: /src/libtpms/src/tpm2/PCR.c:577,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/PCR.c:580,1
    - Dst: _platPcr__GetInitialValueForPcr
      Src: /src/libtpms/src/tpm2/PCR.c:591,1
    - Dst: pAssert_BOOL
      Src: /src/libtpms/src/tpm2/PCR.c:595,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/PCR.c:613,1
    - Dst: PCR_ClearAuth
      Src: /src/libtpms/src/tpm2/PCR.c:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 2
    argNames:
    - type
    - locality
    argTypes:
    - STARTUP_TYPE
    - BYTE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 516
    functionDepth: 4
    functionLinenumber: 516
    functionLinenumberEnd: 628
    functionName: PCRStartup
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - PCRChanged
    - CryptHashGetDigestSize
    - MemoryCopy
    - _platPcr__GetPcrInitializationAttributes
    - GetSavedPcrPointer
    - _platPcr__GetInitialValueForPcr
    - PCR_ClearAuth
    - GetPcrPointer
    - _platPcr__NumberOfPcrs
    - MemorySet
    - pAssert_BOOL
    linkageType: ''
    returnType: BOOL
    signature: "BOOL PCRStartup(STARTUP_TYPE type,     // IN: startup type\n                BYTE
      \        locality  // IN: startup locality\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _platPcr__GetPcrInitializationAttributes
      Src: /src/libtpms/src/tpm2/PCR.c:646,1
    - Dst: GetPcrPointer
      Src: /src/libtpms/src/tpm2/PCR.c:656,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/PCR.c:661,1
    - Dst: GetSavedPcrPointer
      Src: /src/libtpms/src/tpm2/PCR.c:667,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/PCR.c:669,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - type
    argTypes:
    - TPM_SU
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 632
    functionDepth: 4
    functionLinenumber: 632
    functionLinenumberEnd: 677
    functionName: PCRStateSave
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - MemoryCopy
    - _platPcr__GetPcrInitializationAttributes
    - GetSavedPcrPointer
    - GetPcrPointer
    linkageType: ''
    returnType: void
    signature: 'void PCRStateSave(TPM_SU type  // IN: startup type

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _platPcr__GetPcrInitializationAttributes
      Src: /src/libtpms/src/tpm2/PCR.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_PCR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 696
    functionName: PCRIsStateSaved
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - _platPcr__GetPcrInitializationAttributes
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL PCRIsStateSaved(TPMI_DH_PCR handle  // IN: PCR handle to be extended

      )'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _platPcr__GetPcrInitializationAttributes
      Src: /src/libtpms/src/tpm2/PCR.c:711,1
    - Dst: _plat__LocalityGet
      Src: /src/libtpms/src/tpm2/PCR.c:714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_PCR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 727
    functionName: PCRIsResetAllowed
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - _plat__LocalityGet
    - _platPcr__GetPcrInitializationAttributes
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL PCRIsResetAllowed(TPMI_DH_PCR handle  // IN: PCR handle to be
      extended

      )'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PCRBelongsTCBGroup
      Src: /src/libtpms/src/tpm2/PCR.c:740,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/PCR.c:744,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pcrHandle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 746
    functionName: PCRChanged
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 1
    functionsReached:
    - PCRBelongsTCBGroup
    - FAIL
    linkageType: ''
    returnType: void
    signature: 'void PCRChanged(TPM_HANDLE pcrHandle  // IN: the handle of the PCR
      that changed.

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _platPcr__GetPcrInitializationAttributes
      Src: /src/libtpms/src/tpm2/PCR.c:761,1
    - Dst: _plat__LocalityGet
      Src: /src/libtpms/src/tpm2/PCR.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_PCR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 770
    functionName: PCRIsExtendAllowed
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - _plat__LocalityGet
    - _platPcr__GetPcrInitializationAttributes
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL PCRIsExtendAllowed(TPMI_DH_PCR handle  // IN: PCR handle to be
      extended

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetPcrPointer
      Src: /src/libtpms/src/tpm2/PCR.c:784,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/PCR.c:789,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/PCR.c:790,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/PCR.c:791,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/PCR.c:792,1
    - Dst: CryptHashEnd
      Src: /src/libtpms/src/tpm2/PCR.c:793,1
    - Dst: PCRChanged
      Src: /src/libtpms/src/tpm2/PCR.c:796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - handle
    - hash
    - size
    - data
    argTypes:
    - TPMI_DH_PCR
    - TPMI_ALG_HASH
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 774
    functionDepth: 4
    functionLinenumber: 774
    functionLinenumberEnd: 800
    functionName: PCRExtend
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 1
    functionsReached:
    - CryptHashGetDigestSize
    - PCRChanged
    - CryptHashStart
    - GetPcrPointer
    - CryptDigestUpdate
    - CryptHashEnd
    linkageType: ''
    returnType: void
    signature: "void PCRExtend(TPMI_DH_PCR   handle,  // IN: PCR handle to be extended\n
      \              TPMI_ALG_HASH hash,    // IN: hash algorithm of PCR\n               UINT32
      \       size,    // IN: size of data to be extended\n               BYTE*         data
      \    // IN: data to be extended\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/PCR.c:822,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/PCR.c:823,1
    - Dst: FilterPcr
      Src: /src/libtpms/src/tpm2/PCR.c:830,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/PCR.c:833,1
    - Dst: IsPcrSelected
      Src: /src/libtpms/src/tpm2/PCR.c:838,1
    - Dst: GetPcrPointer
      Src: /src/libtpms/src/tpm2/PCR.c:841,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/PCR.c:842,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/PCR.c:843,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/PCR.c:848,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - hashAlg
    - selection
    - digest
    argTypes:
    - TPMI_ALG_HASH
    - TPML_PCR_SELECTION*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 807
    functionDepth: 4
    functionLinenumber: 807
    functionLinenumberEnd: 851
    functionName: PCRComputeCurrentDigest
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - pAssert
    - CryptHashStart
    - CryptHashEnd2B
    - GetPcrPointer
    - CryptDigestUpdate
    - FilterPcr
    - IsPcrSelected
    linkageType: ''
    returnType: void
    signature: "void PCRComputeCurrentDigest(\n    TPMI_ALG_HASH       hashAlg,    //
      IN: hash algorithm to compute digest\n    TPML_PCR_SELECTION* selection,  //
      IN/OUT: PCR selection (filtered on\n                                    //     output)\n
      \   TPM2B_DIGEST* digest            // OUT: digest\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FilterPcr
      Src: /src/libtpms/src/tpm2/PCR.c:876,1
    - Dst: IsPcrSelected
      Src: /src/libtpms/src/tpm2/PCR.c:881,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/PCR.c:900,1
    - Dst: GetPcrPointer
      Src: /src/libtpms/src/tpm2/PCR.c:903,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/PCR.c:904,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/PCR.c:906,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/PCR.c:918,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - selection
    - digest
    - pcrCounter
    argTypes:
    - TPML_PCR_SELECTION*
    - TPML_DIGEST*
    - UINT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 857
    functionDepth: 4
    functionLinenumber: 857
    functionLinenumberEnd: 931
    functionName: PCRRead
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - MemoryCopy
    - pAssert
    - GetPcrPointer
    - MemorySet
    - FilterPcr
    - IsPcrSelected
    linkageType: ''
    returnType: void
    signature: "void PCRRead(TPML_PCR_SELECTION* selection,  // IN/OUT: PCR selection
      (filtered on\n                                             //     output)\n
      \            TPML_DIGEST* digest,            // OUT: digest\n             UINT32*
      \     pcrCounter  // OUT: the current value of PCR generation\n                                      //
      \    number\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/PCR.c:975,1
    - Dst: _platPcr__NumberOfPcrs
      Src: /src/libtpms/src/tpm2/PCR.c:979,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/PCR.c:987,1
    - Dst: TestBit
      Src: /src/libtpms/src/tpm2/PCR.c:991,1
    - Dst: TestBit
      Src: /src/libtpms/src/tpm2/PCR.c:1002,1
    - Dst: NV_WRITE_PERSISTENT
      Src: /src/libtpms/src/tpm2/PCR.c:1032,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 4
    argNames:
    - allocate
    - maxPCR
    - sizeNeeded
    - sizeAvailable
    argTypes:
    - TPML_PCR_SELECTION*
    - UINT32*
    - UINT32*
    - UINT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 1035
    functionName: PCRAllocate
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - pAssert
    - TestBit
    - _platPcr__NumberOfPcrs
    - NV_WRITE_PERSISTENT
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC PCRAllocate(TPML_PCR_SELECTION* allocate,      // IN: required
      allocation\n            UINT32*             maxPCR,        // OUT: Maximum number
      of PCR\n            UINT32*             sizeNeeded,    // OUT: required space\n
      \           UINT32*             sizeAvailable  // OUT: available space\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetAlgByIndex
      Src: /src/libtpms/src/tpm2/PCR.c:1054,1
    - Dst: GetPcrPointer
      Src: /src/libtpms/src/tpm2/PCR.c:1060,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/PCR.c:1066,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/PCR.c:1073,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/PCR.c:1075,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - handle
    - initialValue
    argTypes:
    - TPM_HANDLE
    - INT8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1041
    functionDepth: 4
    functionLinenumber: 1041
    functionLinenumberEnd: 1078
    functionName: PCRSetValue
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - MemorySet
    - GetPcrPointer
    - CryptHashGetAlgByIndex
    linkageType: ''
    returnType: void
    signature: "void PCRSetValue(TPM_HANDLE handle,       // IN: the handle of the
      PCR to set\n                 INT8       initialValue  // IN: the value to set\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _platPcr__GetPcrInitializationAttributes
      Src: /src/libtpms/src/tpm2/PCR.c:1096,1
    - Dst: GetPcrPointer
      Src: /src/libtpms/src/tpm2/PCR.c:1098,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/PCR.c:1103,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/PCR.c:1108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1083
    functionDepth: 4
    functionLinenumber: 1083
    functionLinenumberEnd: 1113
    functionName: PCRResetDynamics
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - MemorySet
    - GetPcrPointer
    - _platPcr__GetPcrInitializationAttributes
    linkageType: ''
    returnType: void
    signature: void PCRResetDynamics(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmsFilterPCRSelection
      Src: /src/libtpms/src/tpm2/PCR.c:1133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - count
    - pcrSelection
    argTypes:
    - UINT32
    - TPML_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1120
    functionDepth: 3
    functionLinenumber: 1120
    functionLinenumberEnd: 1136
    functionName: PCRCapGetAllocation
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmsFilterPCRSelection
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO PCRCapGetAllocation(UINT32              count,        //
      IN: count of return\n                    TPML_PCR_SELECTION* pcrSelection  //
      OUT: PCR allocation list\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pcr
    - bitmap
    argTypes:
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1146
    functionName: PCRSetSelectBit
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PCRSetSelectBit(UINT32 pcr,    // IN: PCR number\n                            BYTE*
      \ bitmap  // OUT: bit map to be set\n)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/PCR.c:1163,1
    - Dst: _platPcr__GetPcrInitializationAttributes
      Src: /src/libtpms/src/tpm2/PCR.c:1169,1
    - Dst: PCRSetSelectBit
      Src: /src/libtpms/src/tpm2/PCR.c:1175,1
    - Dst: PCRSetSelectBit
      Src: /src/libtpms/src/tpm2/PCR.c:1179,1
    - Dst: PCRSetSelectBit
      Src: /src/libtpms/src/tpm2/PCR.c:1183,1
    - Dst: PCRSetSelectBit
      Src: /src/libtpms/src/tpm2/PCR.c:1187,1
    - Dst: PCRSetSelectBit
      Src: /src/libtpms/src/tpm2/PCR.c:1191,1
    - Dst: PCRSetSelectBit
      Src: /src/libtpms/src/tpm2/PCR.c:1195,1
    - Dst: PCRSetSelectBit
      Src: /src/libtpms/src/tpm2/PCR.c:1199,1
    - Dst: PCRSetSelectBit
      Src: /src/libtpms/src/tpm2/PCR.c:1203,1
    - Dst: PCRSetSelectBit
      Src: /src/libtpms/src/tpm2/PCR.c:1207,1
    - Dst: PCRSetSelectBit
      Src: /src/libtpms/src/tpm2/PCR.c:1211,1
    - Dst: PCRSetSelectBit
      Src: /src/libtpms/src/tpm2/PCR.c:1215,1
    - Dst: PCRSetSelectBit
      Src: /src/libtpms/src/tpm2/PCR.c:1220,1
    - Dst: PCRBelongsPolicyGroup
      Src: /src/libtpms/src/tpm2/PCR.c:1224,1
    - Dst: PCRSetSelectBit
      Src: /src/libtpms/src/tpm2/PCR.c:1225,1
    - Dst: PCRBelongsAuthGroup
      Src: /src/libtpms/src/tpm2/PCR.c:1230,1
    - Dst: PCRSetSelectBit
      Src: /src/libtpms/src/tpm2/PCR.c:1231,1
    - Dst: PCRBelongsTCBGroup
      Src: /src/libtpms/src/tpm2/PCR.c:1236,1
    - Dst: PCRSetSelectBit
      Src: /src/libtpms/src/tpm2/PCR.c:1237,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 72
    argCount: 2
    argNames:
    - property
    - select
    argTypes:
    - TPM_PT_PCR
    - TPMS_TAGGED_PCR_SELECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1153
    functionDepth: 2
    functionLinenumber: 1153
    functionLinenumberEnd: 1248
    functionName: PCRGetProperty
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - PCRBelongsTCBGroup
    - PCRBelongsPolicyGroup
    - _platPcr__GetPcrInitializationAttributes
    - PCRBelongsAuthGroup
    - MemorySet
    - PCRSetSelectBit
    linkageType: ''
    returnType: BOOL
    signature: BOOL PCRGetProperty(TPM_PT_PCR property, TPMS_TAGGED_PCR_SELECT* select)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MUST_BE
      Src: /src/libtpms/src/tpm2/PCR.c:1273,1
    - Dst: PCRGetProperty
      Src: /src/libtpms/src/tpm2/PCR.c:1282,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - property
    - count
    - select
    argTypes:
    - TPM_PT_PCR
    - UINT32
    - TPML_TAGGED_PCR_PROPERTY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1255
    functionDepth: 3
    functionLinenumber: 1255
    functionLinenumberEnd: 1295
    functionName: PCRCapGetProperties
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - MUST_BE
    - PCRGetProperty
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO PCRCapGetProperties(TPM_PT_PCR property,  // IN: the starting
      PCR property\n                    UINT32     count,     // IN: count of returned
      properties\n                    TPML_TAGGED_PCR_PROPERTY* select  // OUT: PCR
      select\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/PCR.c:1313,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/PCR.c:1313,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - handle
    - count
    - handleList
    argTypes:
    - TPMI_DH_PCR
    - UINT32
    - TPML_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1341
    functionName: PCRCapGetHandles
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - pAssert
    - HandleGetType
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO PCRCapGetHandles(TPMI_DH_PCR  handle,     // IN: start
      handle\n                 UINT32       count,      // IN: count of returned handles\n
      \                TPML_HANDLE* handleList  // OUT: list of handle\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/PCR.c:1347,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/PCR.c:1347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_PCR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1354
    functionName: PCRCapGetOneHandle
    functionSourceFile: /src/libtpms/src/tpm2/PCR.c
    functionUses: 0
    functionsReached:
    - pAssert
    - HandleGetType
    linkageType: ''
    returnType: BOOL
    signature: BOOL PCRCapGetOneHandle(TPMI_DH_PCR handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: NOT_REFERENCED
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOT_REFERENCED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: MUST_BE
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUST_BE(e)
  - BBCount: 81
    BranchProfiles: []
    Callsites:
    - Dst: _plat__GetManufacturerCapabilityCode
      Src: /src/libtpms/src/tpm2/PropertyCap.c:112,1
    - Dst: _plat__GetVendorCapabilityCode
      Src: /src/libtpms/src/tpm2/PropertyCap.c:117,1
    - Dst: _plat__GetVendorCapabilityCode
      Src: /src/libtpms/src/tpm2/PropertyCap.c:122,1
    - Dst: _plat__GetVendorCapabilityCode
      Src: /src/libtpms/src/tpm2/PropertyCap.c:127,1
    - Dst: _plat__GetVendorCapabilityCode
      Src: /src/libtpms/src/tpm2/PropertyCap.c:132,1
    - Dst: _plat__GetTpmType
      Src: /src/libtpms/src/tpm2/PropertyCap.c:138,1
    - Dst: TPMA_ZERO_INITIALIZER
      Src: /src/libtpms/src/tpm2/PropertyCap.c:208,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/PropertyCap.c:209,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/PropertyCap.c:210,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/PropertyCap.c:275,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/PropertyCap.c:299,1
    - Dst: RuntimeCommandsCountEnabled
      Src: /src/libtpms/src/tpm2/PropertyCap.c:347,1
    - Dst: GetClosestCommandIndex
      Src: /src/libtpms/src/tpm2/PropertyCap.c:353,1
    - Dst: GetNextCommandIndex
      Src: /src/libtpms/src/tpm2/PropertyCap.c:355,1
    - Dst: RuntimeCommandsCountEnabled
      Src: /src/libtpms/src/tpm2/PropertyCap.c:366,1
    - Dst: GetClosestCommandIndex
      Src: /src/libtpms/src/tpm2/PropertyCap.c:372,1
    - Dst: GetNextCommandIndex
      Src: /src/libtpms/src/tpm2/PropertyCap.c:374,1
    - Dst: TPMA_ZERO_INITIALIZER
      Src: /src/libtpms/src/tpm2/PropertyCap.c:395,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/PropertyCap.c:397,1
    - Dst: _plat__GetTpmFirmwareSvn
      Src: /src/libtpms/src/tpm2/PropertyCap.c:406,1
    - Dst: _plat__GetTpmFirmwareMaxSvn
      Src: /src/libtpms/src/tpm2/PropertyCap.c:409,1
    - Dst: TPMA_ZERO_INITIALIZER
      Src: /src/libtpms/src/tpm2/PropertyCap.c:420,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/PropertyCap.c:422,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/PropertyCap.c:424,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/PropertyCap.c:426,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/PropertyCap.c:428,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/PropertyCap.c:430,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/PropertyCap.c:432,1
    - Dst: TPMA_ZERO_INITIALIZER
      Src: /src/libtpms/src/tpm2/PropertyCap.c:448,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/PropertyCap.c:451,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/PropertyCap.c:453,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/PropertyCap.c:455,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/PropertyCap.c:457,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/PropertyCap.c:459,1
    - Dst: NvCapGetIndexNumber
      Src: /src/libtpms/src/tpm2/PropertyCap.c:470,1
    - Dst: SessionCapGetLoadedNumber
      Src: /src/libtpms/src/tpm2/PropertyCap.c:475,1
    - Dst: SessionCapGetLoadedAvail
      Src: /src/libtpms/src/tpm2/PropertyCap.c:480,1
    - Dst: SessionCapGetActiveNumber
      Src: /src/libtpms/src/tpm2/PropertyCap.c:485,1
    - Dst: SessionCapGetActiveAvail
      Src: /src/libtpms/src/tpm2/PropertyCap.c:490,1
    - Dst: ObjectCapGetTransientAvail
      Src: /src/libtpms/src/tpm2/PropertyCap.c:495,1
    - Dst: NvCapGetPersistentNumber
      Src: /src/libtpms/src/tpm2/PropertyCap.c:500,1
    - Dst: NvCapGetPersistentAvail
      Src: /src/libtpms/src/tpm2/PropertyCap.c:505,1
    - Dst: NvCapGetCounterNumber
      Src: /src/libtpms/src/tpm2/PropertyCap.c:510,1
    - Dst: NvCapGetCounterAvail
      Src: /src/libtpms/src/tpm2/PropertyCap.c:515,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 267
    argCount: 2
    argNames:
    - property
    - value
    argTypes:
    - TPM_PT
    - UINT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 569
    functionName: TPMPropertyIsDefined
    functionSourceFile: /src/libtpms/src/tpm2/PropertyCap.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - _plat__GetTpmFirmwareMaxSvn
    - _plat__GetTpmType
    - NvCapGetPersistentAvail
    - _plat__GetTpmFirmwareSvn
    - SessionCapGetActiveNumber
    - TPMA_ZERO_INITIALIZER
    - GetClosestCommandIndex
    - RuntimeCommandsCountEnabled
    - NvCapGetCounterAvail
    - _plat__GetVendorCapabilityCode
    - SessionCapGetLoadedNumber
    - NvCapGetPersistentNumber
    - GetNextCommandIndex
    - NvCapGetIndexNumber
    - ObjectCapGetTransientAvail
    - _plat__GetManufacturerCapabilityCode
    - SessionCapGetActiveAvail
    - NvCapGetCounterNumber
    - SET_ATTRIBUTE
    - SessionCapGetLoadedAvail
    linkageType: ''
    returnType: BOOL
    signature: "BOOL TPMPropertyIsDefined(TPM_PT  property,  // IN: property\n                                 UINT32*
      value      // OUT: property value\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TPMPropertyIsDefined
      Src: /src/libtpms/src/tpm2/PropertyCap.c:615,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - property
    - count
    - propertyList
    argTypes:
    - TPM_PT
    - UINT32
    - TPML_TAGGED_TPM_PROPERTY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 579
    functionDepth: 6
    functionLinenumber: 579
    functionLinenumberEnd: 634
    functionName: TPMCapGetProperties
    functionSourceFile: /src/libtpms/src/tpm2/PropertyCap.c
    functionUses: 0
    functionsReached:
    - TPMPropertyIsDefined
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO TPMCapGetProperties(TPM_PT property,  // IN: the starting
      TPM property\n                    UINT32 count,     // IN: maximum number of
      returned\n                                      //     properties\n                    TPML_TAGGED_TPM_PROPERTY*
      propertyList  // OUT: property list\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMPropertyIsDefined
      Src: /src/libtpms/src/tpm2/PropertyCap.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pt
    - property
    argTypes:
    - TPM_PT
    - TPMS_TAGGED_PROPERTY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 638
    functionDepth: 6
    functionLinenumber: 638
    functionLinenumberEnd: 652
    functionName: TPMCapGetOneProperty
    functionSourceFile: /src/libtpms/src/tpm2/PropertyCap.c
    functionUses: 0
    functionsReached:
    - TPMPropertyIsDefined
    linkageType: ''
    returnType: BOOL
    signature: "BOOL TPMCapGetOneProperty(TPM_PT                pt,       // IN: the
      TPM property\n                          TPMS_TAGGED_PROPERTY* property  // OUT:
      tagged property\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: ARRAYSIZE
    functionSourceFile: /src/libtpms/src/tpm2/PlatformPcr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAYSIZE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAYSIZE
      Src: /src/libtpms/src/tpm2/PlatformPcr.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: _platPcr__NumberOfPcrs
    functionSourceFile: /src/libtpms/src/tpm2/PlatformPcr.c
    functionUses: 2
    functionsReached:
    - ARRAYSIZE
    linkageType: ''
    returnType: UINT32
    signature: UINT32 _platPcr__NumberOfPcrs()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _platPcr__NumberOfPcrs
      Src: /src/libtpms/src/tpm2/PlatformPcr.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pcrNumber
    argTypes:
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: _platPcr__GetPcrInitializationAttributes
    functionSourceFile: /src/libtpms/src/tpm2/PlatformPcr.c
    functionUses: 10
    functionsReached:
    - _platPcr__NumberOfPcrs
    linkageType: ''
    returnType: PCR_Attributes
    signature: PCR_Attributes _platPcr__GetPcrInitializationAttributes(UINT32 pcrNumber)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAYSIZE
      Src: /src/libtpms/src/tpm2/PlatformPcr.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pcrAlg
    argTypes:
    - TPM_ALG_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 180
    functionName: _platPcr_IsPcrBankDefaultActive
    functionSourceFile: /src/libtpms/src/tpm2/PlatformPcr.c
    functionUses: 1
    functionsReached:
    - ARRAYSIZE
    linkageType: ''
    returnType: BOOL
    signature: BOOL _platPcr_IsPcrBankDefaultActive(TPM_ALG_ID pcrAlg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/PlatformPcr.c:203,1
    - Dst: pAssert_RC
      Src: /src/libtpms/src/tpm2/PlatformPcr.c:204,1
    - Dst: _platPcr__NumberOfPcrs
      Src: /src/libtpms/src/tpm2/PlatformPcr.c:204,1
    - Dst: pAssert_RC
      Src: /src/libtpms/src/tpm2/PlatformPcr.c:205,1
    - Dst: pAssert_RC
      Src: /src/libtpms/src/tpm2/PlatformPcr.c:205,1
    - Dst: _platPcr__GetPcrInitializationAttributes
      Src: /src/libtpms/src/tpm2/PlatformPcr.c:208,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/PlatformPcr.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - pcrNumber
    - pcrAlg
    - startupLocality
    - pcrData
    - bufferSize
    - pcrLength
    argTypes:
    - UINT32
    - TPM_ALG_ID
    - BYTE
    - BYTE*
    - uint16_t
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 225
    functionName: _platPcr__GetInitialValueForPcr
    functionSourceFile: /src/libtpms/src/tpm2/PlatformPcr.c
    functionUses: 1
    functionsReached:
    - CryptHashGetDigestSize
    - pAssert_RC
    - _platPcr__GetPcrInitializationAttributes
    - _platPcr__NumberOfPcrs
    - MemorySet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC _platPcr__GetInitialValueForPcr(\n    UINT32     pcrNumber,
      \       // IN: PCR to be initialized\n    TPM_ALG_ID pcrAlg,           // IN:
      Algorithm of the PCR Bank being initialized\n    BYTE       startupLocality,
      \ // IN: locality where startup is being called from\n    BYTE*      pcrData,
      \         // OUT: buffer to put PCR initialization value into\n    uint16_t
      \  bufferSize,       // IN: maximum size of value buffer can hold\n    uint16_t*
      \ pcrLength  // OUT: size of initialization value returned in pcrBuffer\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - array
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: ARRAY_SIZE
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Bits.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bitNum
    - bArray
    - bytesInArray
    argTypes:
    - unsigned int
    - BYTE*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: TestBit
    functionSourceFile: /src/libtpms/src/tpm2/Bits.c
    functionUses: 3
    functionsReached:
    - pAssert
    linkageType: ''
    returnType: BOOL
    signature: "BOOL TestBit(unsigned int bitNum,       // IN: number of the bit in
      'bArray'\n             BYTE*        bArray,       // IN: array containing the
      bits\n             unsigned int bytesInArray  // IN: size in bytes of 'bArray'\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Bits.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bitNum
    - bArray
    - bytesInArray
    argTypes:
    - unsigned int
    - BYTE*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: SetBit
    functionSourceFile: /src/libtpms/src/tpm2/Bits.c
    functionUses: 0
    functionsReached:
    - pAssert
    linkageType: ''
    returnType: void
    signature: "void SetBit(unsigned int bitNum,       // IN: number of the bit in
      'bArray'\n            BYTE*        bArray,       // IN: array containing the
      bits\n            unsigned int bytesInArray  // IN: size in bytes of 'bArray'\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Bits.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bitNum
    - bArray
    - bytesInArray
    argTypes:
    - unsigned int
    - BYTE*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: ClearBit
    functionSourceFile: /src/libtpms/src/tpm2/Bits.c
    functionUses: 0
    functionsReached:
    - pAssert
    linkageType: ''
    returnType: void
    signature: "void ClearBit(unsigned int bitNum,       // IN: number of the bit
      in 'bArray'.\n              BYTE*        bArray,       // IN: array containing
      the bits\n              unsigned int bytesInArray  // IN: size in bytes of 'bArray'\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: REVERSE_ENDIAN_16
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_16(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: REVERSE_ENDIAN_32
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_32(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: REVERSE_ENDIAN_64
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_64(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: REVERSE_ENDIAN_16
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_16(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: REVERSE_ENDIAN_32
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_32(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: REVERSE_ENDIAN_64
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_64(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: REVERSE_ENDIAN_16
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_16(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: REVERSE_ENDIAN_32
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_32(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: REVERSE_ENDIAN_64
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_64(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: REVERSE_ENDIAN_16
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_16(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: REVERSE_ENDIAN_32
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_32(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: REVERSE_ENDIAN_64
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_64(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: REVERSE_ENDIAN_16
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_16(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: REVERSE_ENDIAN_32
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_32(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: REVERSE_ENDIAN_64
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_64(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: TPM_STATIC_ASSERT
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_STATIC_ASSERT(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: IF_ACT_0_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_0_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: IF_ACT_1_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_1_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: IF_ACT_2_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_2_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: IF_ACT_3_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_3_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: IF_ACT_4_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_4_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: IF_ACT_5_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_5_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: IF_ACT_6_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_6_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: IF_ACT_7_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_7_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: IF_ACT_8_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_8_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: IF_ACT_9_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_9_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: IF_ACT_A_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_A_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: IF_ACT_B_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_B_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: IF_ACT_C_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_C_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: IF_ACT_D_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_D_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: IF_ACT_E_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_E_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: IF_ACT_F_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_F_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 207
    functionName: FOR_EACH_ACT
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOR_EACH_ACT(op)
  - 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: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: JOIN
    functionSourceFile: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JOIN(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: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: JOIN3
    functionSourceFile: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JOIN3(x, y, z)
  - 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: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: CONCAT
    functionSourceFile: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONCAT(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: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: CONCAT3
    functionSourceFile: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONCAT3(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1StartMarshalContext
      Src: /src/libtpms/src/tpm2/X509_ECC.c:82,1
    - Dst: ASN1PushBytes
      Src: /src/libtpms/src/tpm2/X509_ECC.c:84,1
    - Dst: ASN1PushBytes
      Src: /src/libtpms/src/tpm2/X509_ECC.c:85,1
    - Dst: ASN1PushByte
      Src: /src/libtpms/src/tpm2/X509_ECC.c:86,1
    - Dst: ASN1EndEncapsulation
      Src: /src/libtpms/src/tpm2/X509_ECC.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - p
    argTypes:
    - ASN1MarshalContext*
    - TPMS_ECC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: X509PushPoint
    functionSourceFile: /src/libtpms/src/tpm2/X509_ECC.c
    functionUses: 0
    functionsReached:
    - ASN1PushByte
    - ASN1PushBytes
    - ASN1StartMarshalContext
    - ASN1EndEncapsulation
    linkageType: ''
    returnType: INT16
    signature: INT16 X509PushPoint(ASN1MarshalContext* ctx, TPMS_ECC_POINT* p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetHashDef
      Src: /src/libtpms/src/tpm2/X509_ECC.c:100,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/X509_ECC.c:102,1
    - Dst: ASN1StartMarshalContext
      Src: /src/libtpms/src/tpm2/X509_ECC.c:118,1
    - Dst: ASN1PushOID
      Src: /src/libtpms/src/tpm2/X509_ECC.c:119,1
    - Dst: ASN1EndEncapsulation
      Src: /src/libtpms/src/tpm2/X509_ECC.c:120,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - signKey
    - scheme
    - ctx
    argTypes:
    - OBJECT*
    - TPMT_SIG_SCHEME*
    - ASN1MarshalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 126
    functionName: X509AddSigningAlgorithmECC
    functionSourceFile: /src/libtpms/src/tpm2/X509_ECC.c
    functionUses: 0
    functionsReached:
    - ASN1EndEncapsulation
    - NOT_REFERENCED
    - CryptGetHashDef
    - ASN1StartMarshalContext
    - ASN1PushOID
    linkageType: ''
    returnType: INT16
    signature: "INT16 X509AddSigningAlgorithmECC(\n    OBJECT* signKey, TPMT_SIG_SCHEME*
      scheme, ASN1MarshalContext* ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptEccGetOID
      Src: /src/libtpms/src/tpm2/X509_ECC.c:139,1
    - Dst: ASN1StartMarshalContext
      Src: /src/libtpms/src/tpm2/X509_ECC.c:154,1
    - Dst: X509PushPoint
      Src: /src/libtpms/src/tpm2/X509_ECC.c:156,1
    - Dst: ASN1StartMarshalContext
      Src: /src/libtpms/src/tpm2/X509_ECC.c:157,1
    - Dst: ASN1PushOID
      Src: /src/libtpms/src/tpm2/X509_ECC.c:159,1
    - Dst: ASN1PushOID
      Src: /src/libtpms/src/tpm2/X509_ECC.c:160,1
    - Dst: ASN1EndEncapsulation
      Src: /src/libtpms/src/tpm2/X509_ECC.c:162,1
    - Dst: ASN1EndEncapsulation
      Src: /src/libtpms/src/tpm2/X509_ECC.c:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - object
    - ctx
    argTypes:
    - OBJECT*
    - ASN1MarshalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 165
    functionName: X509AddPublicECC
    functionSourceFile: /src/libtpms/src/tpm2/X509_ECC.c
    functionUses: 0
    functionsReached:
    - ASN1EndEncapsulation
    - CryptEccGetOID
    - ASN1StartMarshalContext
    - ASN1PushOID
    - X509PushPoint
    linkageType: ''
    returnType: INT16
    signature: INT16 X509AddPublicECC(OBJECT* object, ASN1MarshalContext* ctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/SessionCommands.c:78,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/SessionCommands.c:84,1
    - Dst: CryptIsAsymAlgorithm
      Src: /src/libtpms/src/tpm2/SessionCommands.c:89,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionCommands.c:100,1
    - Dst: CryptSecretDecrypt
      Src: /src/libtpms/src/tpm2/SessionCommands.c:104,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/SessionCommands.c:116,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/SessionCommands.c:120,1
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/SessionCommands.c:135,1
    - Dst: IsNvPinPassIndex
      Src: /src/libtpms/src/tpm2/SessionCommands.c:136,1
    - Dst: IsNvPinFailIndex
      Src: /src/libtpms/src/tpm2/SessionCommands.c:137,1
    - Dst: SessionCreate
      Src: /src/libtpms/src/tpm2/SessionCommands.c:157,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - StartAuthSession_In*
    - StartAuthSession_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 161
    functionName: TPM2_StartAuthSession
    functionSourceFile: /src/libtpms/src/tpm2/SessionCommands.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - IS_ATTRIBUTE
    - IsNvPinPassIndex
    - IsNvPinFailIndex
    - CryptIsAsymAlgorithm
    - CryptSecretDecrypt
    - SessionCreate
    - HandleToObject
    - HandleGetType
    - NvGetIndexInfo
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_StartAuthSession(\n\t\t      StartAuthSession_In     *in,
      \           // IN: input parameter buffer\n\t\t      StartAuthSession_Out    *out
      \           // OUT: output parameter buffer\n\t\t      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SessionResetPolicyData
      Src: /src/libtpms/src/tpm2/SessionCommands.c:172,1
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/SessionCommands.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyRestart_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: TPM2_PolicyRestart
    functionSourceFile: /src/libtpms/src/tpm2/SessionCommands.c
    functionUses: 0
    functionsReached:
    - SessionResetPolicyData
    - SessionGet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyRestart(\n\t\t   PolicyRestart_In    *in             //
      IN: input parameter list\n\t\t   )"
  - 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: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: BnMod
    functionSourceFile: /src/libtpms/src/tpm2/BnSupport_Interface.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BnMod(a, b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:74,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:79,1
    - Dst: IsLabelProperlyFormatted
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:82,1
    - Dst: CryptRsaSelectScheme
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:86,1
    - Dst: CryptRsaEncrypt
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - RSA_Encrypt_In*
    - RSA_Encrypt_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 95
    functionName: TPM2_RSA_Encrypt
    functionSourceFile: /src/libtpms/src/tpm2/AsymmetricCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - HandleToObject
    - CryptRsaSelectScheme
    - CryptRsaEncrypt
    - IsLabelProperlyFormatted
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_RSA_Encrypt(\n\t\t RSA_Encrypt_In      *in,            //
      IN: input parameter list\n\t\t RSA_Encrypt_Out     *out            // OUT: output
      parameter list\n\t\t )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:110,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:115,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:116,1
    - Dst: IsLabelProperlyFormatted
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:123,1
    - Dst: CryptRsaSelectScheme
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:127,1
    - Dst: CryptRsaDecrypt
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:135,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - RSA_Decrypt_In*
    - RSA_Decrypt_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 138
    functionName: TPM2_RSA_Decrypt
    functionSourceFile: /src/libtpms/src/tpm2/AsymmetricCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - CryptRsaDecrypt
    - HandleToObject
    - CryptRsaSelectScheme
    - IsLabelProperlyFormatted
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_RSA_Decrypt(\n\t\t RSA_Decrypt_In      *in,            //
      IN: input parameter list\n\t\t RSA_Decrypt_Out     *out            // OUT: output
      parameter list\n\t\t )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:153,1
    - Dst: CryptEccNewKeyPair
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:162,1
    - Dst: CryptEccPointMultiply
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - ECDH_KeyGen_In*
    - ECDH_KeyGen_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 183
    functionName: TPM2_ECDH_KeyGen
    functionSourceFile: /src/libtpms/src/tpm2/AsymmetricCommands.c
    functionUses: 0
    functionsReached:
    - CryptEccNewKeyPair
    - CryptEccPointMultiply
    - HandleToObject
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ECDH_KeyGen(\n\t\t ECDH_KeyGen_In      *in,            //
      IN: input parameter list\n\t\t ECDH_KeyGen_Out     *out            // OUT: output
      parameter list\n\t\t )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:197,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:202,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:203,1
    - Dst: CryptEccPointMultiply
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:211,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - ECDH_ZGen_In*
    - ECDH_ZGen_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 219
    functionName: TPM2_ECDH_ZGen
    functionSourceFile: /src/libtpms/src/tpm2/AsymmetricCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - CryptEccPointMultiply
    - HandleToObject
    - RcSafeAddToResult
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ECDH_ZGen(\n\t       ECDH_ZGen_In    *in,            //
      IN: input parameter list\n\t       ECDH_ZGen_Out   *out            // OUT: output
      parameter list\n\t       )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptEccGetParameters
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - ECC_Parameters_In*
    - ECC_Parameters_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 236
    functionName: TPM2_ECC_Parameters
    functionSourceFile: /src/libtpms/src/tpm2/AsymmetricCommands.c
    functionUses: 0
    functionsReached:
    - CryptEccGetParameters
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ECC_Parameters(\n\t\t    ECC_Parameters_In   *in,            //
      IN: input parameter list\n\t\t    ECC_Parameters_Out  *out            // OUT:
      output parameter list\n\t\t    )"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:253,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:258,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:263,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:264,1
    - Dst: CryptEccIsPointOnCurve
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:279,1
    - Dst: CryptEccIsPointOnCurve
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:282,1
    - Dst: CryptGenerateR
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:285,1
    - Dst: CryptEcc2PhaseKeyExchange
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:290,1
    - Dst: CryptEndCommit
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:301,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - ZGen_2Phase_In*
    - ZGen_2Phase_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 303
    functionName: TPM2_ZGen_2Phase
    functionSourceFile: /src/libtpms/src/tpm2/AsymmetricCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - CryptEndCommit
    - CryptEccIsPointOnCurve
    - HandleToObject
    - CryptEcc2PhaseKeyExchange
    - RuntimeProfileRequiresAttributeFlags
    - CryptGenerateR
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ZGen_2Phase(\n\t\t ZGen_2Phase_In      *in,            //
      IN: input parameter list\n\t\t ZGen_2Phase_Out     *out            // OUT: output
      parameter list\n\t\t )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:315,1
    - Dst: CryptEccSelectScheme
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:320,1
    - Dst: CryptEccEncrypt
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - ECC_Encrypt_In*
    - ECC_Encrypt_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 325
    functionName: TPM2_ECC_Encrypt
    functionSourceFile: /src/libtpms/src/tpm2/AsymmetricCommands.c
    functionUses: 0
    functionsReached:
    - CryptEccEncrypt
    - HandleToObject
    - CryptEccSelectScheme
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ECC_Encrypt(\n\t\t ECC_Encrypt_In   *in,            //
      IN: input parameter list\n\t\t ECC_Encrypt_Out  *out            // OUT: output
      parameter list\n\t\t )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:338,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:343,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:344,1
    - Dst: CryptEccSelectScheme
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:347,1
    - Dst: CryptEccDecrypt
      Src: /src/libtpms/src/tpm2/AsymmetricCommands.c:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - ECC_Decrypt_In*
    - ECC_Decrypt_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 352
    functionName: TPM2_ECC_Decrypt
    functionSourceFile: /src/libtpms/src/tpm2/AsymmetricCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - CryptEccDecrypt
    - HandleToObject
    - CryptEccSelectScheme
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ECC_Decrypt(\n\t\t ECC_Decrypt_In   *in,            //
      IN: input parameter list\n\t\t ECC_Decrypt_Out  *out            // OUT: output
      parameter list\n\t\t )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmInit
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:189,1
    - Dst: RuntimeCommandsInit
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:190,1
    - Dst: RuntimeAttributesInit
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - RuntimeProfile
    argTypes:
    - struct RuntimeProfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 199
    functionName: RuntimeProfileInit
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - RuntimeCommandsInit
    - RuntimeAlgorithmInit
    - RuntimeAttributesInit
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT RuntimeProfileInit(struct RuntimeProfile *RuntimeProfile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmFree
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:204,1
    - Dst: RuntimeCommandsFree
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:205,1
    - Dst: RuntimeAttributesFree
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:206,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:208,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:211,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - RuntimeProfile
    argTypes:
    - struct RuntimeProfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 216
    functionName: RuntimeProfileFree
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - RuntimeAttributesFree
    - RuntimeCommandsFree
    - free
    - RuntimeAlgorithmFree
    linkageType: ''
    returnType: void
    signature: void RuntimeProfileFree(struct RuntimeProfile *RuntimeProfile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAttributesSetProfile
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:229,1
    - Dst: RuntimeAlgorithmSetProfile
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:234,1
    - Dst: RuntimeCommandsSetProfile
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - RuntimeProfile
    - algorithmsProfile
    - commandsProfile
    - attributesProfile
    - stateFormatLevel
    - maxStateFormatLevel
    argTypes:
    - struct RuntimeProfile*
    - char*
    - char*
    - char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 241
    functionName: RuntimeProfileSetRuntimeProfile
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - RuntimeCommandsSetProfile
    - RuntimeAttributesSetProfile
    - RuntimeAlgorithmSetProfile
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC RuntimeProfileSetRuntimeProfile(struct RuntimeProfile           *RuntimeProfile,\n\t\t\t\tconst
      char                      *algorithmsProfile,\n\t\t\t\tconst char                      *commandsProfile,\n\t\t\t\tconst
      char                      *attributesProfile,\n\t\t\t\tunsigned int                    *stateFormatLevel,\t//
      IN/OUT: required stateFormatLevel\n\t\t\t\tunsigned int                    maxStateFormatLevel\t//
      IN: maximum allowed stateFormatLevel\n\t\t\t\t)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: regcomp
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:252,1
    - Dst: regexec
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:255,1
    - Dst: regfree
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - json
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 264
    functionName: RuntimeProfileCheckJSON
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - regexec
    - regcomp
    - regfree
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC RuntimeProfileCheckJSON(const char *json)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: index
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:282,1
    - Dst: index
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:288,1
    - Dst: strstr
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:302,1
    - Dst: memmove
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:307,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:307,1
    - Dst: index
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:313,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 1
    argNames:
    - input
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 327
    functionName: RuntimeProfileDedupStrItems
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - strstr
    - index
    - memmove
    - strlen
    linkageType: ''
    returnType: void
    signature: void RuntimeProfileDedupStrItems(char *input)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: regcomp
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:340,1
    - Dst: regexec
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:343,1
    - Dst: strndup
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:353,1
    - Dst: RuntimeProfileDedupStrItems
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:355,1
    - Dst: regfree
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:364,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - json
    - regex
    - value
    - removeDuplicates
    - allowEmptyResult
    argTypes:
    - char*
    - char*
    - char**
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 367
    functionName: RuntimeProfileGetFromJSON
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - RuntimeProfileDedupStrItems
    - regexec
    - regcomp
    - strndup
    - regfree
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC RuntimeProfileGetFromJSON(const char  *json,\n\t\t\t  const
      char  *regex,\n\t\t\t  char       **value,\n\t\t\t  bool         removeDuplicates,\n\t\t\t
      \ bool         allowEmptyResult)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeProfileGetFromJSON
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:377,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - json
    - name
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 385
    functionName: RuntimeProfileGetNameFromJSON
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - RuntimeProfileGetFromJSON
    - strlen
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC RuntimeProfileGetNameFromJSON(const char  *json,\n\t\t\t      char
      \      **name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeProfileGetFromJSON
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:395,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - json
    - description
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 406
    functionName: RuntimeProfileGetDescriptionFromJSON
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - RuntimeProfileGetFromJSON
    - strlen
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC RuntimeProfileGetDescriptionFromJSON(const char  *json,\n\t\t\t\t
      \    char       **description)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeProfileGetFromJSON
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:417,1
    - Dst: strtoul
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:422,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:424,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - json
    - stateFormatLevel
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 434
    functionName: GetStateFormatLevelFromJSON
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - RuntimeProfileGetFromJSON
    - TPMLIB_LogTPM2Error
    - free
    - strtoul
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC GetStateFormatLevelFromJSON(const char   *json,\n\t\t\t    unsigned
      int *stateFormatLevel)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeProfileGetFromJSON
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - json
    - algorithmsProfile
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 449
    functionName: GetAlgorithmsProfileFromJSON
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - RuntimeProfileGetFromJSON
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC GetAlgorithmsProfileFromJSON(const char  *json,\n\t\t\t     char
      \      **algorithmsProfile)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeProfileGetFromJSON
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - json
    - attributesProfile
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 466
    functionName: GetAttributesProfileFromJSON
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - RuntimeProfileGetFromJSON
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC GetAttributesProfileFromJSON(\n\t\t\t     const char  *json,\n\t\t\t
      \    char       **attributesProfile\n\t\t\t     )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeProfileGetFromJSON
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - json
    - commandsProfile
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 481
    functionName: GetCommandsProfileFromJSON
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - RuntimeProfileGetFromJSON
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC GetCommandsProfileFromJSON(const char  *json,\n\t\t\t   char
      \      **commandsProfile)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:500,1
    - Dst: RuntimeProfileCheckJSON
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:507,1
    - Dst: RuntimeProfileGetNameFromJSON
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:511,1
    - Dst: GetStateFormatLevelFromJSON
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:517,1
    - Dst: GetStateFormatLevelFromJSON
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:528,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:533,1
    - Dst: GetAlgorithmsProfileFromJSON
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:539,1
    - Dst: GetCommandsProfileFromJSON
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:543,1
    - Dst: GetAttributesProfileFromJSON
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:547,1
    - Dst: RuntimeProfileGetDescriptionFromJSON
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:551,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:558,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:561,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:564,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:567,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 8
    argNames:
    - jsonProfile
    - jsonProfileIsFromUser
    - profileName
    - stateFormatLevel
    - algorithmsProfile
    - commandsProfile
    - attributesProfile
    - profileDescription
    argTypes:
    - char*
    - bool
    - char**
    - unsigned int*
    - char**
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 486
    functionDepth: 3
    functionLinenumber: 486
    functionLinenumberEnd: 570
    functionName: GetParametersFromJSON
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - GetCommandsProfileFromJSON
    - strdup
    - GetAlgorithmsProfileFromJSON
    - RuntimeProfileCheckJSON
    - RuntimeProfileGetDescriptionFromJSON
    - GetStateFormatLevelFromJSON
    - RuntimeProfileGetNameFromJSON
    - TPMLIB_LogTPM2Error
    - GetAttributesProfileFromJSON
    - free
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC GetParametersFromJSON(const char    *jsonProfile,\n\t\t      bool
      \          jsonProfileIsFromUser,\n\t\t      char         **profileName,\n\t\t
      \     unsigned int  *stateFormatLevel,\n\t\t      char         **algorithmsProfile,\n\t\t
      \     char         **commandsProfile,\n\t\t      char         **attributesProfile,\n\t\t
      \     char         **profileDescription)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: asprintf
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:587,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:594,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:595,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:602,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:603,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:610,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:611,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:618,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:619,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:625,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:626,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 7
    argNames:
    - json
    - profileName
    - stateFormatLevel
    - algorithmsProfile
    - commandsProfile
    - attributesProfile
    - profileDescription
    argTypes:
    - char**
    - char*
    - unsigned int
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 633
    functionName: RuntimeProfileFormat
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - asprintf
    - free
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC RuntimeProfileFormat(char          **json,\n\t\t     const
      char     *profileName,\n\t\t     unsigned int    stateFormatLevel,\n\t\t     const
      char     *algorithmsProfile,\n\t\t     const char     *commandsProfile,\n\t\t
      \    const char     *attributesProfile,\n\t\t     const char     *profileDescription)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeProfileFormat
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:644,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - RuntimeProfile
    argTypes:
    - struct RuntimeProfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 658
    functionName: RuntimeProfileFormatJSON
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - RuntimeProfileFormat
    - free
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT RuntimeProfileFormatJSON(struct RuntimeProfile *RuntimeProfile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:664,1
    - Dst: strncmp
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - rp
    - profileName
    argTypes:
    - struct RuntimeProfileDesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 671
    functionName: RuntimeProfileNameMatch
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int RuntimeProfileNameMatch(const struct RuntimeProfileDesc *rp,\n
      \                       const char *profileName)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:685,1
    - Dst: RuntimeProfileNameMatch
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:686,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:694,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 7
    argNames:
    - profileName
    - jsonProfileIsFromUser
    - stateFormatLevel
    - commandsProfile
    - algorithmsProfile
    - attributesProfile
    - profileDescription
    argTypes:
    - char*
    - bool
    - unsigned int
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 703
    functionName: RuntimeProfileFindByName
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - RuntimeProfileNameMatch
    - ARRAY_SIZE
    - TPMLIB_LogTPM2Error
    linkageType: ''
    returnType: struct RuntimeProfileDesc
    signature: "struct RuntimeProfileDesc *\nRuntimeProfileFindByName(const char\t*profileName,\n\t\t\t
      bool            jsonProfileIsFromUser,\n\t\t\t unsigned int    stateFormatLevel,\n\t\t\t
      const char     *commandsProfile,\n\t\t\t const char     *algorithmsProfile,\n\t\t\t
      const char     *attributesProfile,\n\t\t\t const char     *profileDescription)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: GetParametersFromJSON
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:736,1
    - Dst: RuntimeProfileFindByName
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:745,1
    - Dst: strdup
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:760,1
    - Dst: strdup
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:764,1
    - Dst: strdup
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:768,1
    - Dst: strdup
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:772,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:784,1
    - Dst: RuntimeProfileSetRuntimeProfile
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:800,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:808,1
    - Dst: RuntimeProfileFormat
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:810,1
    - Dst: TPMLIB_LogPrintf
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:816,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:818,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:821,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:824,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:827,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:830,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:833,1
    - Dst: strcmp
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:841,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:847,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:848,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:849,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:850,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:851,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 86
    argCount: 3
    argNames:
    - RuntimeProfile
    - jsonProfile
    - jsonProfileIsFromUser
    argTypes:
    - struct RuntimeProfile*
    - char*
    - bool
    assertStmts:
    - condition: (maxStateFormatLevel >= RuntimeProfile->stateFormatLevel)
      pos:
        line_end: 807
        line_start: 807
        source_file: /src/libtpms/src/tpm2/RuntimeProfile.c
    constantsTouched: []
    func_position:
      end: 854
      start: 720
    functionDepth: 5
    functionLinenumber: 720
    functionLinenumberEnd: 854
    functionName: RuntimeProfileSet
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - RuntimeProfileFindByName
    - strdup
    - strcmp
    - assert
    - TPMLIB_LogPrintf
    - RuntimeProfileSetRuntimeProfile
    - GetParametersFromJSON
    - TPMLIB_LogTPM2Error
    - free
    - RuntimeProfileFormat
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT RuntimeProfileSet(struct RuntimeProfile *RuntimeProfile,\n\t\t
      \ const char\t        *jsonProfile,\n\t\t  bool                   jsonProfileIsFromUser)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - RuntimeProfile
    argTypes:
    - struct RuntimeProfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 860
    functionName: RuntimeProfileGetJSON
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: 'LIB_EXPORT *

      RuntimeProfileGetJSON(struct RuntimeProfile *RuntimeProfile)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GetParametersFromJSON
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:888,1
    - Dst: RuntimeProfileFindByName
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:896,1
    - Dst: RuntimeAttributesSwitchProfile
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:913,1
    - Dst: RuntimeAttributesSetProfile
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:917,1
    - Dst: RuntimeAlgorithmSwitchProfile
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:924,1
    - Dst: RuntimeAlgorithmSetProfile
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:928,1
    - Dst: RuntimeCommandsSwitchProfile
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:935,1
    - Dst: RuntimeCommandsSetProfile
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:939,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:945,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:946,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:947,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:948,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:949,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - RuntimeProfile
    - jsonProfile
    - jsonProfileIsFromUser
    argTypes:
    - struct RuntimeProfile*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 871
    functionDepth: 5
    functionLinenumber: 871
    functionLinenumberEnd: 952
    functionName: RuntimeProfileTest
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 1
    functionsReached:
    - RuntimeCommandsSwitchProfile
    - RuntimeProfileFindByName
    - RuntimeAlgorithmSwitchProfile
    - RuntimeAttributesSwitchProfile
    - RuntimeCommandsSetProfile
    - GetParametersFromJSON
    - RuntimeAttributesSetProfile
    - free
    - RuntimeAlgorithmSetProfile
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT RuntimeProfileTest(struct RuntimeProfile *RuntimeProfile,\n\t\t
      \  const char\t         *jsonProfile,\n\t\t   bool                   jsonProfileIsFromUser)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - RuntimeProfile
    argTypes:
    - struct RuntimeProfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 958
    functionName: RuntimeProfileWasNullProfile
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT RuntimeProfileWasNullProfile(struct RuntimeProfile *RuntimeProfile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:964,1
    - Dst: RuntimeProfileFormat
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - idx
    - runtimeProfileJSON
    argTypes:
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 973
    functionName: RuntimeProfileGetByIndex
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - RuntimeProfileFormat
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT RuntimeProfileGetByIndex(size_t  idx,\n\t\t\t char    **runtimeProfileJSON)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MUST_BE
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:987,1
    - Dst: MUST_BE
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:994,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 1001
    functionName: SEED_COMPAT_LEVEL::RuntimeProfileGetSeedCompatLevel
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 0
    functionsReached:
    - FAIL
    - MUST_BE
    linkageType: ''
    returnType: LIB_EXPORT
    signature: 'LIB_EXPORT SEED_COMPAT_LEVEL

      RuntimeProfileGetSeedCompatLevel(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAttributeCheckRequired
      Src: /src/libtpms/src/tpm2/RuntimeProfile.c:1007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - RuntimeProfile
    - attributeFlags
    argTypes:
    - struct RuntimeProfile*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1009
    functionName: RuntimeProfileRequiresAttributeFlags
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeProfile.c
    functionUses: 1
    functionsReached:
    - RuntimeAttributeCheckRequired
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT RuntimeProfileRequiresAttributeFlags(struct RuntimeProfile
      *RuntimeProfile,\n                                     unsigned int           attributeFlags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BnMemory.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - bn
    - top
    argTypes:
    - bigNum
    - crypt_uword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 93
    functionName: BnSetTop
    functionSourceFile: /src/libtpms/src/tpm2/BnMemory.c
    functionUses: 6
    functionsReached:
    - pAssert
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT BnSetTop(bigNum        bn,  // IN/OUT: number to clean\n
      \                          crypt_uword_t top  // IN: the new top\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - bn
    argTypes:
    - bigNum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: BnClearTop
    functionSourceFile: /src/libtpms/src/tpm2/BnMemory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnClearTop(bigNum bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - bn
    - allocated
    - word
    argTypes:
    - bigNum
    - crypt_uword_t
    - crypt_uword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: BnInitializeWord
    functionSourceFile: /src/libtpms/src/tpm2/BnMemory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT BnInitializeWord(bigNum        bn,         // IN:\n                                   crypt_uword_t
      allocated,  // IN:\n                                   crypt_uword_t word        //
      IN:\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - bn
    - allocated
    argTypes:
    - bigNum
    - crypt_uword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: BnInit
    functionSourceFile: /src/libtpms/src/tpm2/BnMemory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnInit(bigNum bn, crypt_uword_t allocated)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BnSetTop
      Src: /src/libtpms/src/tpm2/BnMemory.c:151,1
    - Dst: BnGetSize
      Src: /src/libtpms/src/tpm2/BnMemory.c:151,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BnMemory.c:157,1
    - Dst: BnGetAllocated
      Src: /src/libtpms/src/tpm2/BnMemory.c:157,1
    - Dst: BnGetSize
      Src: /src/libtpms/src/tpm2/BnMemory.c:157,1
    - Dst: BnGetSize
      Src: /src/libtpms/src/tpm2/BnMemory.c:158,1
    - Dst: BnSetTop
      Src: /src/libtpms/src/tpm2/BnMemory.c:160,1
    - Dst: BnGetSize
      Src: /src/libtpms/src/tpm2/BnMemory.c:160,1
    - Dst: BnSetTop
      Src: /src/libtpms/src/tpm2/BnMemory.c:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - bigNum
    - bigConst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: BnCopy
    functionSourceFile: /src/libtpms/src/tpm2/BnMemory.c
    functionUses: 0
    functionsReached:
    - pAssert
    - BnGetAllocated
    - BnSetTop
    - BnGetSize
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnCopy(bigNum out, bigConst in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnCopy
      Src: /src/libtpms/src/tpm2/BnMemory.c:175,1
    - Dst: BnCopy
      Src: /src/libtpms/src/tpm2/BnMemory.c:175,1
    - Dst: BnCopy
      Src: /src/libtpms/src/tpm2/BnMemory.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - pOut
    - pIn
    argTypes:
    - bigPoint
    - pointConst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: BnPointCopy
    functionSourceFile: /src/libtpms/src/tpm2/BnMemory.c
    functionUses: 0
    functionsReached:
    - BnCopy
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnPointCopy(bigPoint pOut, pointConst pIn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnSetWord
      Src: /src/libtpms/src/tpm2/BnMemory.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - p
    - x
    - y
    - z
    argTypes:
    - bigPoint
    - bigNum
    - bigNum
    - bigNum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 195
    functionName: BnInitializePoint
    functionSourceFile: /src/libtpms/src/tpm2/BnMemory.c
    functionUses: 0
    functionsReached:
    - BnSetWord
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT * BnInitializePoint(\n    bigPoint p,  // OUT: structure
      to receive pointers\n    bigNum   x,  // IN: x coordinate\n    bigNum   y,  //
      IN: y coordinate\n    bigNum   z   // IN: x coordinate\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - VAL
    - ','
    - SIZE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: TPM2_ROUNDUP
    functionSourceFile: /src/libtpms/src/tpm2/Utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM2_ROUNDUP(VAL, SIZE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Utils.h:49,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/Utils.h:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: clear_and_free
    functionSourceFile: /src/libtpms/src/tpm2/Utils.h
    functionUses: 0
    functionsReached:
    - MemorySet
    - free
    linkageType: ''
    returnType: void
    signature: void clear_and_free(void *ptr, size_t size)
  - 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: 107
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 107
    functionName: TPM2B_STRING
    functionSourceFile: /src/libtpms/src/tpm2/Global.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM2B_STRING(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: DEFINE_ACT
    functionSourceFile: /src/libtpms/src/tpm2/PlatformData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_ACT(N)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _plat__WasPowerLost
      Src: /src/libtpms/src/tpm2/StartupCommands.c:72,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/StartupCommands.c:79,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/StartupCommands.c:80,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/StartupCommands.c:81,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/StartupCommands.c:82,1
    - Dst: _plat__ACT_EnableTicks
      Src: /src/libtpms/src/tpm2/StartupCommands.c:93,1
    - Dst: TPMInit
      Src: /src/libtpms/src/tpm2/StartupCommands.c:97,1
    - Dst: NvPowerOn
      Src: /src/libtpms/src/tpm2/StartupCommands.c:106,1
    - Dst: CryptInit
      Src: /src/libtpms/src/tpm2/StartupCommands.c:109,1
    - Dst: NvReadPersistent
      Src: /src/libtpms/src/tpm2/StartupCommands.c:113,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/StartupCommands.c:117,1
    - Dst: TimePowerOn
      Src: /src/libtpms/src/tpm2/StartupCommands.c:120,1
    - Dst: VolatileLoad
      Src: /src/libtpms/src/tpm2/StartupCommands.c:123,1
    - Dst: NVShadowRestore
      Src: /src/libtpms/src/tpm2/StartupCommands.c:125,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 69
    functionDepth: 7
    functionLinenumber: 69
    functionLinenumberEnd: 129
    functionName: _TPM_Init
    functionSourceFile: /src/libtpms/src/tpm2/StartupCommands.c
    functionUses: 0
    functionsReached:
    - NvPowerOn
    - CryptInit
    - TimePowerOn
    - memset
    - TPMInit
    - NvRead
    - _plat__WasPowerLost
    - NVShadowRestore
    - NvReadPersistent
    - _plat__ACT_EnableTicks
    - VolatileLoad
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _TPM_Init(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: _plat__LocalityGet
      Src: /src/libtpms/src/tpm2/StartupCommands.c:140,1
    - Dst: IS_ORDERLY
      Src: /src/libtpms/src/tpm2/StartupCommands.c:172,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/StartupCommands.c:201,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/StartupCommands.c:207,1
    - Dst: CryptStartup
      Src: /src/libtpms/src/tpm2/StartupCommands.c:219,1
    - Dst: TPMRegisterStartup
      Src: /src/libtpms/src/tpm2/StartupCommands.c:222,1
    - Dst: _plat__GetUniqueAuth
      Src: /src/libtpms/src/tpm2/StartupCommands.c:227,1
    - Dst: TimeStartup
      Src: /src/libtpms/src/tpm2/StartupCommands.c:233,1
    - Dst: DAStartup
      Src: /src/libtpms/src/tpm2/StartupCommands.c:235,1
    - Dst: HierarchyStartup
      Src: /src/libtpms/src/tpm2/StartupCommands.c:237,1
    - Dst: PCRStartup
      Src: /src/libtpms/src/tpm2/StartupCommands.c:239,1
    - Dst: CommandAuditStartup
      Src: /src/libtpms/src/tpm2/StartupCommands.c:241,1
    - Dst: ActStartup
      Src: /src/libtpms/src/tpm2/StartupCommands.c:243,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/StartupCommands.c:267,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/StartupCommands.c:278,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/StartupCommands.c:281,1
    - Dst: SessionStartup
      Src: /src/libtpms/src/tpm2/StartupCommands.c:288,1
    - Dst: ObjectStartup
      Src: /src/libtpms/src/tpm2/StartupCommands.c:290,1
    - Dst: NvEntityStartup
      Src: /src/libtpms/src/tpm2/StartupCommands.c:293,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/StartupCommands.c:296,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 72
    argCount: 1
    argNames:
    - in
    argTypes:
    - Startup_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 134
    functionDepth: 5
    functionLinenumber: 134
    functionLinenumberEnd: 302
    functionName: TPM2_Startup
    functionSourceFile: /src/libtpms/src/tpm2/StartupCommands.c
    functionUses: 0
    functionsReached:
    - DAStartup
    - ActStartup
    - _plat__GetUniqueAuth
    - TimeStartup
    - _plat__LocalityGet
    - SessionStartup
    - IS_ORDERLY
    - NvEntityStartup
    - NvRead
    - NV_SYNC_PERSISTENT
    - TPMRegisterStartup
    - HierarchyStartup
    - PCRStartup
    - CommandAuditStartup
    - ObjectStartup
    - FAIL
    - CryptStartup
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Startup(\n\t     Startup_In      *in             // IN:
      input parameter list\n\t     )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PCRStateSave
      Src: /src/libtpms/src/tpm2/StartupCommands.c:332,1
    - Dst: ActShutdown
      Src: /src/libtpms/src/tpm2/StartupCommands.c:334,1
    - Dst: NvUpdateIndexOrderlyData
      Src: /src/libtpms/src/tpm2/StartupCommands.c:336,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/StartupCommands.c:342,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/StartupCommands.c:346,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/StartupCommands.c:347,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/StartupCommands.c:359,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - in
    argTypes:
    - Shutdown_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 307
    functionDepth: 5
    functionLinenumber: 307
    functionLinenumberEnd: 361
    functionName: TPM2_Shutdown
    functionSourceFile: /src/libtpms/src/tpm2/StartupCommands.c
    functionUses: 0
    functionsReached:
    - NvWrite
    - NV_SYNC_PERSISTENT
    - PCRStateSave
    - NvUpdateIndexOrderlyData
    - ActShutdown
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Shutdown(\n\t      Shutdown_In     *in             //
      IN: input parameter list\n\t      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/libtpms/src/tpm2/Entropy.c:97,1
    - Dst: rand
      Src: /src/libtpms/src/tpm2/Entropy.c:102,1
    - Dst: rand
      Src: /src/libtpms/src/tpm2/Entropy.c:103,1
    - Dst: rand
      Src: /src/libtpms/src/tpm2/Entropy.c:106,1
    - Dst: rand
      Src: /src/libtpms/src/tpm2/Entropy.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 112
    functionName: rand32
    functionSourceFile: /src/libtpms/src/tpm2/Entropy.c
    functionUses: 0
    functionsReached:
    - rand
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rand32(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/libtpms/src/tpm2/Entropy.c:130,1
    - Dst: srand
      Src: /src/libtpms/src/tpm2/Entropy.c:152,1
    - Dst: _plat__RealTime
      Src: /src/libtpms/src/tpm2/Entropy.c:152,1
    - Dst: _getpid
      Src: /src/libtpms/src/tpm2/Entropy.c:152,1
    - Dst: srand
      Src: /src/libtpms/src/tpm2/Entropy.c:154,1
    - Dst: _plat__RealTime
      Src: /src/libtpms/src/tpm2/Entropy.c:154,1
    - Dst: getpid
      Src: /src/libtpms/src/tpm2/Entropy.c:154,1
    - Dst: rand32
      Src: /src/libtpms/src/tpm2/Entropy.c:156,1
    - Dst: rand32
      Src: /src/libtpms/src/tpm2/Entropy.c:161,1
    - Dst: _plat__RealTime
      Src: /src/libtpms/src/tpm2/Entropy.c:176,1
    - Dst: MIN
      Src: /src/libtpms/src/tpm2/Entropy.c:180,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/Entropy.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - entropy
    - amount
    argTypes:
    - unsigned char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 185
    functionName: _plat__GetEntropy
    functionSourceFile: /src/libtpms/src/tpm2/Entropy.c
    functionUses: 0
    functionsReached:
    - srand
    - memcpy
    - rand32
    - RAND_bytes
    - _getpid
    - getpid
    - _plat__RealTime
    - MIN
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _plat__GetEntropy(unsigned char* entropy,  // output buffer\n
      \                                    uint32_t       amount    // amount requested\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: TPMInit
    functionSourceFile: /src/libtpms/src/tpm2/Power.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TPMInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: TPMRegisterStartup
    functionSourceFile: /src/libtpms/src/tpm2/Power.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL TPMRegisterStartup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: TPMIsStarted
    functionSourceFile: /src/libtpms/src/tpm2/Power.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL TPMIsStarted(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setjmp
      Src: /src/libtpms/src/tpm2/RunCommand.c:114,1
    - Dst: ExecuteCommand
      Src: /src/libtpms/src/tpm2/RunCommand.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - requestSize
    - request
    - responseSize
    - response
    argTypes:
    - uint32_t
    - unsigned char*
    - uint32_t*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: _plat__RunCommand
    functionSourceFile: /src/libtpms/src/tpm2/RunCommand.c
    functionUses: 0
    functionsReached:
    - setjmp
    - ExecuteCommand
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _plat__RunCommand(\n    uint32_t        requestSize,   //
      IN: command buffer size\n    unsigned char*  request,       // IN: command buffer\n
      \   uint32_t*       responseSize,  // IN/OUT: response buffer size\n    unsigned
      char** response       // IN/OUT: response buffer\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/RunCommand.c:127,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/RunCommand.c:129,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/RunCommand.c:131,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/RunCommand.c:133,1
    - Dst: longjmp
      Src: /src/libtpms/src/tpm2/RunCommand.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (FALSE)
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/libtpms/src/tpm2/RunCommand.c
    constantsTouched: []
    func_position:
      end: 141
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 141
    functionName: _plat__Fail
    functionSourceFile: /src/libtpms/src/tpm2/RunCommand.c
    functionUses: 0
    functionsReached:
    - fprintf
    - assert
    - longjmp
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__Fail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: UNMARSHAL_DISPATCH
    functionSourceFile: /src/libtpms/src/tpm2/CommandDispatchData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNMARSHAL_DISPATCH(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: MARSHAL_DISPATCH
    functionSourceFile: /src/libtpms/src/tpm2/CommandDispatchData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MARSHAL_DISPATCH(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: UNMARSHAL_DISPATCH
    functionSourceFile: /src/libtpms/src/tpm2/CommandDispatchData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNMARSHAL_DISPATCH(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: MARSHAL_DISPATCH
    functionSourceFile: /src/libtpms/src/tpm2/CommandDispatchData.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MARSHAL_DISPATCH(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attributes
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: GET_TPM_NT
    functionSourceFile: /src/libtpms/src/tpm2/NV.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_TPM_NT(attributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attributes
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: GetNv_TPM_NV
    functionSourceFile: /src/libtpms/src/tpm2/NV.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GetNv_TPM_NV(attributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attributes
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: IsNvOrdinaryIndex
    functionSourceFile: /src/libtpms/src/tpm2/NV.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsNvOrdinaryIndex(attributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attributes
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: IsNvCounterIndex
    functionSourceFile: /src/libtpms/src/tpm2/NV.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsNvCounterIndex(attributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attributes
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: IsNvBitsIndex
    functionSourceFile: /src/libtpms/src/tpm2/NV.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsNvBitsIndex(attributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attributes
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: IsNvExtendIndex
    functionSourceFile: /src/libtpms/src/tpm2/NV.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsNvExtendIndex(attributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attributes
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: IsNvPinPassIndex
    functionSourceFile: /src/libtpms/src/tpm2/NV.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsNvPinPassIndex(attributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attributes
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: IsNvPinFailIndex
    functionSourceFile: /src/libtpms/src/tpm2/NV.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsNvPinFailIndex(attributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - start
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: ORDERLY_RAM_ADDRESS_OK
    functionSourceFile: /src/libtpms/src/tpm2/NV.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ORDERLY_RAM_ADDRESS_OK(start, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: IS_ORDERLY
    functionSourceFile: /src/libtpms/src/tpm2/NV.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ORDERLY(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: SET_NV_UPDATE
    functionSourceFile: /src/libtpms/src/tpm2/NV.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_NV_UPDATE(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/CommandAudit.c:80,1
    - Dst: CommandAuditSet
      Src: /src/libtpms/src/tpm2/CommandAudit.c:83,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/CommandAudit.c:93,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/CommandAudit.c:94,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/CommandAudit.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 98
    functionName: CommandAuditPreInstall_Init
    functionSourceFile: /src/libtpms/src/tpm2/CommandAudit.c
    functionUses: 0
    functionsReached:
    - MemorySet
    - NV_SYNC_PERSISTENT
    - CommandAuditSet
    linkageType: ''
    returnType: void
    signature: void CommandAuditPreInstall_Init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - STARTUP_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: CommandAuditStartup
    functionSourceFile: /src/libtpms/src/tpm2/CommandAudit.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL CommandAuditStartup(STARTUP_TYPE type  // IN: start up type

      )'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CommandCodeToCommandIndex
      Src: /src/libtpms/src/tpm2/CommandAudit.c:129,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/CommandAudit.c:137,1
    - Dst: SET_BIT
      Src: /src/libtpms/src/tpm2/CommandAudit.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - commandCode
    argTypes:
    - TPM_CC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 147
    functionName: CommandAuditSet
    functionSourceFile: /src/libtpms/src/tpm2/CommandAudit.c
    functionUses: 1
    functionsReached:
    - SET_BIT
    - CommandCodeToCommandIndex
    - TEST_BIT
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL CommandAuditSet(TPM_CC commandCode  // IN: command code

      )'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CommandCodeToCommandIndex
      Src: /src/libtpms/src/tpm2/CommandAudit.c:163,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/CommandAudit.c:172,1
    - Dst: CLEAR_BIT
      Src: /src/libtpms/src/tpm2/CommandAudit.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - commandCode
    argTypes:
    - TPM_CC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 160
    functionDepth: 4
    functionLinenumber: 160
    functionLinenumberEnd: 182
    functionName: CommandAuditClear
    functionSourceFile: /src/libtpms/src/tpm2/CommandAudit.c
    functionUses: 0
    functionsReached:
    - CLEAR_BIT
    - CommandCodeToCommandIndex
    - TEST_BIT
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL CommandAuditClear(TPM_CC commandCode  // IN: command code

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/CommandAudit.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - commandIndex
    argTypes:
    - COMMAND_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: CommandAuditIsRequired
    functionSourceFile: /src/libtpms/src/tpm2/CommandAudit.c
    functionUses: 0
    functionsReached:
    - TEST_BIT
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL CommandAuditIsRequired(COMMAND_INDEX commandIndex  // IN: command
      index

      )'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetClosestCommandIndex
      Src: /src/libtpms/src/tpm2/CommandAudit.c:222,1
    - Dst: GetNextCommandIndex
      Src: /src/libtpms/src/tpm2/CommandAudit.c:224,1
    - Dst: CommandAuditIsRequired
      Src: /src/libtpms/src/tpm2/CommandAudit.c:226,1
    - Dst: GET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandAudit.c:233,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CommandAudit.c:234,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - commandCode
    - count
    - commandList
    argTypes:
    - TPM_CC
    - UINT32
    - TPML_CC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 250
    functionName: CommandAuditCapGetCCList
    functionSourceFile: /src/libtpms/src/tpm2/CommandAudit.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - CommandAuditIsRequired
    - GET_ATTRIBUTE
    - GetClosestCommandIndex
    - GetNextCommandIndex
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO CommandAuditCapGetCCList(TPM_CC   commandCode,  // IN:
      start command code\n                         UINT32   count,        // IN: count
      of returned TPM_CC\n                         TPML_CC* commandList   // OUT:
      list of TPM_CC\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CommandCodeToCommandIndex
      Src: /src/libtpms/src/tpm2/CommandAudit.c:256,1
    - Dst: CommandAuditIsRequired
      Src: /src/libtpms/src/tpm2/CommandAudit.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - commandCode
    argTypes:
    - TPM_CC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 254
    functionDepth: 4
    functionLinenumber: 254
    functionLinenumberEnd: 262
    functionName: CommandAuditCapGetOneCC
    functionSourceFile: /src/libtpms/src/tpm2/CommandAudit.c
    functionUses: 0
    functionsReached:
    - CommandCodeToCommandIndex
    - CommandAuditIsRequired
    linkageType: ''
    returnType: BOOL
    signature: BOOL CommandAuditCapGetOneCC(TPM_CC commandCode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/CommandAudit.c:277,1
    - Dst: CommandAuditIsRequired
      Src: /src/libtpms/src/tpm2/CommandAudit.c:282,1
    - Dst: GetCommandCode
      Src: /src/libtpms/src/tpm2/CommandAudit.c:284,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/CommandAudit.c:285,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/CommandAudit.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - digest
    argTypes:
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 293
    functionName: CommandAuditGetDigest
    functionSourceFile: /src/libtpms/src/tpm2/CommandAudit.c
    functionUses: 0
    functionsReached:
    - CommandAuditIsRequired
    - CryptDigestUpdateInt
    - CryptHashEnd2B
    - CryptHashStart
    - GetCommandCode
    linkageType: ''
    returnType: void
    signature: 'void CommandAuditGetDigest(TPM2B_DIGEST* digest  // OUT: command digest

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetSymmetricBlockSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - protector
    argTypes:
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 94
    functionName: GetIV2BSize
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - CryptGetSymmetricBlockSize
    linkageType: ''
    returnType: UINT16
    signature: 'UINT16 GetIV2BSize(OBJECT* protector  // IN: the protector handle

      )'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetSeedForKDF
      Src: /src/libtpms/src/tpm2/Object_spt.c:155,1
    - Dst: CryptKDFa
      Src: /src/libtpms/src/tpm2/Object_spt.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 7
    argNames:
    - protector
    - hashAlg
    - name
    - seedIn
    - symAlg
    - keyBits
    - symKey
    argTypes:
    - OBJECT*
    - TPM_ALG_ID
    - TPM2B*
    - TPM2B*
    - TPM_ALG_ID*
    - UINT16*
    - TPM2B_SYM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 167
    functionName: ComputeProtectionKeyParms
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - CryptKDFa
    - GetSeedForKDF
    linkageType: ''
    returnType: void
    signature: "void ComputeProtectionKeyParms(\n    OBJECT*    protector,    // IN:
      the protector object\n    TPM_ALG_ID hashAlg,      // IN: hash algorithm for
      KDFa\n    TPM2B*     name,         // IN: name of the object\n    TPM2B*     seedIn,
      \      // IN: optional seed for duplication blob.\n                             //
      \    For non duplication blob, this\n                             //     parameter
      should be NULL\n    TPM_ALG_ID*    symAlg,   // OUT: the symmetric algorithm\n
      \   UINT16*        keyBits,  // OUT: the symmetric key size in bits\n    TPM2B_SYM_KEY*
      symKey    // OUT: the symmetric key\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetSeedForKDF
      Src: /src/libtpms/src/tpm2/Object_spt.c:219,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:221,1
    - Dst: CryptKDFa
      Src: /src/libtpms/src/tpm2/Object_spt.c:224,1
    - Dst: CryptHmacStart2B
      Src: /src/libtpms/src/tpm2/Object_spt.c:234,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/Object_spt.c:237,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Object_spt.c:240,1
    - Dst: CryptHmacEnd2B
      Src: /src/libtpms/src/tpm2/Object_spt.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 7
    argNames:
    - name
    - protector
    - hashAlg
    - seedIn
    - sensitiveSize
    - sensitiveData
    - integrity
    argTypes:
    - TPM2B*
    - OBJECT*
    - TPMI_ALG_HASH
    - TPM2B*
    - UINT32
    - BYTE*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 246
    functionName: ComputeOuterIntegrity
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - GetSeedForKDF
    - CryptDigestUpdate2B
    - CryptHmacEnd2B
    - CryptDigestUpdate
    - CryptKDFa
    - CryptHmacStart2B
    linkageType: ''
    returnType: void
    signature: "void ComputeOuterIntegrity(\n    TPM2B*  name,                 //
      IN: the name of the object\n    OBJECT* protector,            // IN: the object
      that\n                                  //     provides protection. For an object,\n
      \                                 //     it is a parent. For a credential, it\n
      \                                 //     is the encrypt object. For\n                                  //
      \    a Temporary Object, it is NULL\n    TPMI_ALG_HASH hashAlg,        // IN:
      algorithm to use for integrity\n    TPM2B*        seedIn,         // IN: an
      external seed may be provided for\n                                  //     duplication
      blob. For non duplication\n                                  //     blob, this
      parameter should be NULL\n    UINT32        sensitiveSize,  // IN: size of the
      marshaled sensitive data\n    BYTE*         sensitiveData,  // IN: sensitive
      area\n    TPM2B_DIGEST* integrity       // OUT: integrity\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/Object_spt.c:261,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/Object_spt.c:264,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Object_spt.c:267,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/Object_spt.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - hashAlg
    - name
    - dataSize
    - sensitiveData
    - integrity
    argTypes:
    - TPM_ALG_ID
    - TPM2B*
    - UINT16
    - BYTE*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 273
    functionName: ComputeInnerIntegrity
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - CryptDigestUpdate
    - CryptDigestUpdate2B
    - CryptHashEnd2B
    - CryptHashStart
    linkageType: ''
    returnType: void
    signature: "void ComputeInnerIntegrity(\n    TPM_ALG_ID    hashAlg,        //
      IN: hash algorithm for inner wrap\n    TPM2B*        name,           // IN:
      the name of the object\n    UINT16        dataSize,       // IN: the size of
      sensitive data\n    BYTE*         sensitiveData,  // IN: sensitive data\n    TPM2B_DIGEST*
      integrity       // OUT: inner integrity\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:299,1
    - Dst: ComputeInnerIntegrity
      Src: /src/libtpms/src/tpm2/Object_spt.c:302,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - name
    - hashAlg
    - dataSize
    - innerBuffer
    argTypes:
    - TPM2B*
    - TPM_ALG_ID
    - UINT16
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 309
    functionName: ProduceInnerIntegrity
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - TPM2B_DIGEST_Marshal
    - ComputeInnerIntegrity
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 ProduceInnerIntegrity(\n    TPM2B*     name,      // IN: the
      name of the object\n    TPM_ALG_ID hashAlg,   // IN: hash algorithm for inner
      wrap\n    UINT16     dataSize,  // IN: the size of sensitive data, excluding
      the\n                          //     leading integrity buffer size\n    BYTE*
      innerBuffer     // IN/OUT: inner buffer with sensitive data in\n                          //
      \    it.  At input, the leading bytes of this\n                          //
      \    buffer is reserved for integrity\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:334,1
    - Dst: ComputeInnerIntegrity
      Src: /src/libtpms/src/tpm2/Object_spt.c:338,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/Object_spt.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - name
    - hashAlg
    - dataSize
    - innerBuffer
    argTypes:
    - TPM2B*
    - TPM_ALG_ID
    - UINT16
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 345
    functionName: CheckInnerIntegrity
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - MemoryEqual2B
    - TPM2B_DIGEST_Unmarshal
    - ComputeInnerIntegrity
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CheckInnerIntegrity(\n    TPM2B*     name,      // IN: the
      name of the object\n    TPM_ALG_ID hashAlg,   // IN: hash algorithm for inner
      wrap\n    UINT16     dataSize,  // IN: the size of sensitive data, including
      the\n                          //     leading integrity buffer size\n    BYTE*
      innerBuffer     // IN/OUT: inner buffer with sensitive data in\n                          //
      \    it\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:362,1
    - Dst: MemoryRemoveTrailingZeros
      Src: /src/libtpms/src/tpm2/Object_spt.c:363,1
    - Dst: MemoryPad2B
      Src: /src/libtpms/src/tpm2/Object_spt.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - auth
    - nameAlg
    argTypes:
    - TPM2B_AUTH*
    - TPMI_ALG_HASH
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 370
    functionName: AdjustAuthSize
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - MemoryPad2B
    - MemoryRemoveTrailingZeros
    linkageType: ''
    returnType: BOOL
    signature: "BOOL AdjustAuthSize(TPM2B_AUTH*   auth,    // IN/OUT: value to adjust\n
      \                   TPMI_ALG_HASH nameAlg  // IN:\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - parentObject
    argTypes:
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: ObjectIsParent
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL ObjectIsParent(OBJECT* parentObject  // IN: parent handle

      )'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:409,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:415,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:423,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:424,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:425,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:435,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:436,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:437,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:438,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:442,1
    - Dst: PublicAttributesValidation
      Src: /src/libtpms/src/tpm2/Object_spt.c:449,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 24
    argCount: 4
    argNames:
    - parentObject
    - primaryHierarchy
    - publicArea
    - sensitiveDataSize
    argTypes:
    - OBJECT*
    - TPMI_RH_HIERARCHY
    - TPMT_PUBLIC*
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 452
    functionName: CreateChecks
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - PublicAttributesValidation
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CreateChecks(OBJECT*           parentObject,\n             TPMI_RH_HIERARCHY
      primaryHierarchy,\n             TPMT_PUBLIC*      publicArea,\n             UINT16
      \           sensitiveDataSize)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:485,1
    - Dst: CryptSymModeIsValid
      Src: /src/libtpms/src/tpm2/Object_spt.c:486,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:492,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:493,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:501,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:503,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:511,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:517,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:530,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:531,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:537,1
    - Dst: CryptIsAsymSignScheme
      Src: /src/libtpms/src/tpm2/Object_spt.c:540,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:552,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:557,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:559,1
    - Dst: CryptIsAsymDecryptScheme
      Src: /src/libtpms/src/tpm2/Object_spt.c:571,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:575,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:576,1
    - Dst: CryptGetCurveSignScheme
      Src: /src/libtpms/src/tpm2/Object_spt.c:591,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object_spt.c:593,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:618,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:619,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:632,1
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/Object_spt.c:637,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 83
    argCount: 2
    argNames:
    - parentObject
    - publicArea
    argTypes:
    - OBJECT*
    - TPMT_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 644
    functionName: SchemeChecks
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - CryptHashGetDigestSize
    - CryptGetCurveSignScheme
    - CryptSymModeIsValid
    - CryptIsAsymSignScheme
    - pAssert
    - CryptIsAsymDecryptScheme
    - MemoryEqual
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC SchemeChecks(OBJECT*      parentObject,  // IN: parent (null
      if primary seed)\n             TPMT_PUBLIC* publicArea     // IN: public area
      of the object\n)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: TPMA_ZERO_INITIALIZER
      Src: /src/libtpms/src/tpm2/Object_spt.c:675,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:685,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:689,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:691,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:692,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:698,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:702,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:703,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:706,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:711,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:716,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:717,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:722,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:724,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:725,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:729,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:730,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:731,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:738,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:745,1
    - Dst: HierarchyIsFirmwareLimited
      Src: /src/libtpms/src/tpm2/Object_spt.c:752,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:764,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:771,1
    - Dst: HierarchyIsSvnLimited
      Src: /src/libtpms/src/tpm2/Object_spt.c:778,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:795,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:796,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object_spt.c:799,1
    - Dst: SchemeChecks
      Src: /src/libtpms/src/tpm2/Object_spt.c:802,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 64
    argCount: 3
    argNames:
    - parentObject
    - primaryHierarchy
    - publicArea
    argTypes:
    - OBJECT*
    - TPMI_RH_HIERARCHY
    - TPMT_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 803
    functionName: PublicAttributesValidation
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 1
    functionsReached:
    - CryptHashGetDigestSize
    - IS_ATTRIBUTE
    - TPMA_ZERO_INITIALIZER
    - SchemeChecks
    - HierarchyIsFirmwareLimited
    - HierarchyIsSvnLimited
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC PublicAttributesValidation(\n    // IN: input parent object
      (if ordinary or derived object; NULL otherwise)\n    OBJECT* parentObject,\n
      \   // IN: hierarchy (if primary object; 0 otherwise)\n    TPMI_RH_HIERARCHY
      primaryHierarchy,\n    // IN: public area of the object\n    TPMT_PUBLIC* publicArea)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PCRComputeCurrentDigest
      Src: /src/libtpms/src/tpm2/Object_spt.c:824,1
    - Dst: LocalityGetAttributes
      Src: /src/libtpms/src/tpm2/Object_spt.c:831,1
    - Dst: _plat__LocalityGet
      Src: /src/libtpms/src/tpm2/Object_spt.c:831,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Object_spt.c:836,1
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:840,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/Object_spt.c:848,1
    - Dst: TPMS_CREATION_DATA_Marshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:865,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/Object_spt.c:867,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/Object_spt.c:868,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/Object_spt.c:869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 6
    argNames:
    - parentHandle
    - nameHashAlg
    - creationPCR
    - outsideData
    - outCreation
    - creationDigest
    argTypes:
    - TPMI_DH_OBJECT
    - TPMI_ALG_HASH
    - TPML_PCR_SELECTION*
    - TPM2B_DATA*
    - TPM2B_CREATION_DATA*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 808
    functionDepth: 5
    functionLinenumber: 808
    functionLinenumberEnd: 872
    functionName: FillInCreationData
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - _plat__LocalityGet
    - TPM_HANDLE_Marshal
    - HandleToObject
    - HandleGetType
    - CryptHashStart
    - CryptHashEnd2B
    - CryptDigestUpdate
    - PCRComputeCurrentDigest
    - LocalityGetAttributes
    - TPMS_CREATION_DATA_Marshal
    linkageType: ''
    returnType: void
    signature: "void FillInCreationData(\n    TPMI_DH_OBJECT       parentHandle,   //
      IN: handle of parent\n    TPMI_ALG_HASH        nameHashAlg,    // IN: name hash
      algorithm\n    TPML_PCR_SELECTION*  creationPCR,    // IN: PCR selection\n    TPM2B_DATA*
      \         outsideData,    // IN: outside data\n    TPM2B_CREATION_DATA* outCreation,
      \   // OUT: creation data for output\n    TPM2B_DIGEST*        creationDigest
      \ // OUT: creation digest\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - protector
    argTypes:
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 887
    functionName: GetSeedForKDF
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: TPM2B
    signature: 'TPM2B * GetSeedForKDF(OBJECT* protector  // IN: the protector handle

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:932,1
    - Dst: GetIV2BSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:938,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/Object_spt.c:943,1
    - Dst: TPM2B_IV_Marshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:947,1
    - Dst: ComputeProtectionKeyParms
      Src: /src/libtpms/src/tpm2/Object_spt.c:956,1
    - Dst: CryptSymmetricEncrypt
      Src: /src/libtpms/src/tpm2/Object_spt.c:959,1
    - Dst: ComputeOuterIntegrity
      Src: /src/libtpms/src/tpm2/Object_spt.c:969,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 7
    argNames:
    - protector
    - name
    - hashAlg
    - seed
    - useIV
    - dataSize
    - outerBuffer
    argTypes:
    - OBJECT*
    - TPM2B*
    - TPM_ALG_ID
    - TPM2B*
    - BOOL
    - UINT16
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 901
    functionDepth: 2
    functionLinenumber: 901
    functionLinenumberEnd: 982
    functionName: ProduceOuterWrap
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - ComputeProtectionKeyParms
    - CryptRandomGenerate
    - CryptSymmetricEncrypt
    - TPM2B_IV_Marshal
    - ComputeOuterIntegrity
    - GetIV2BSize
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 ProduceOuterWrap(OBJECT* protector,   // IN: The handle of
      the object that provides\n                                      //     protection.
      \ For object, it is parent\n                                      //     handle.
      For credential, it is the handle\n                                      //     of
      encrypt object.\n                 TPM2B*     name,     // IN: the name of the
      object\n                 TPM_ALG_ID hashAlg,  // IN: hash algorithm for outer
      wrap\n                 TPM2B*     seed,     // IN: an external seed may be provided
      for\n                                      //     duplication blob. For non
      duplication\n                                      //     blob, this parameter
      should be NULL\n                 BOOL   useIV,        // IN: indicate if an
      IV is used\n                 UINT16 dataSize,     // IN: the size of sensitive
      data, excluding the\n                                      //     leading integrity
      buffer size or the\n                                      //     optional iv
      size\n                 BYTE* outerBuffer    // IN/OUT: outer buffer with sensitive
      data in\n                                      //     it\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:1027,1
    - Dst: ComputeOuterIntegrity
      Src: /src/libtpms/src/tpm2/Object_spt.c:1031,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/Object_spt.c:1039,1
    - Dst: ComputeProtectionKeyParms
      Src: /src/libtpms/src/tpm2/Object_spt.c:1042,1
    - Dst: TPM2B_IV_Unmarshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:1047,1
    - Dst: CryptGetSymmetricBlockSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:1052,1
    - Dst: CryptSymmetricDecrypt
      Src: /src/libtpms/src/tpm2/Object_spt.c:1063,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 7
    argNames:
    - protector
    - name
    - hashAlg
    - seed
    - useIV
    - dataSize
    - outerBuffer
    argTypes:
    - OBJECT*
    - TPM2B*
    - TPM_ALG_ID
    - TPM2B*
    - BOOL
    - UINT16
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 996
    functionDepth: 2
    functionLinenumber: 996
    functionLinenumberEnd: 1072
    functionName: UnwrapOuter
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - ComputeProtectionKeyParms
    - MemoryEqual2B
    - CryptGetSymmetricBlockSize
    - ComputeOuterIntegrity
    - TPM2B_DIGEST_Unmarshal
    - CryptSymmetricDecrypt
    - TPM2B_IV_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC UnwrapOuter(OBJECT* protector,   // IN: The object that provides\n
      \                                //     protection.  For object, it is parent\n
      \                                //     handle. For credential, it is the\n
      \                                //     encrypt object.\n            TPM2B*
      \    name,     // IN: the name of the object\n            TPM_ALG_ID hashAlg,
      \ // IN: hash algorithm for outer wrap\n            TPM2B*     seed,     //
      IN: an external seed may be provided for\n                                 //
      \    duplication blob. For non duplication\n                                 //
      \    blob, this parameter should be NULL.\n            BOOL   useIV,        //
      IN: indicates if an IV is used\n            UINT16 dataSize,     // IN: size
      of sensitive data in outerBuffer,\n                                 //     including
      the leading integrity buffer\n                                 //     size,
      and an optional iv area\n            BYTE* outerBuffer    // IN/OUT: sensitive
      data\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object_spt.c:1148,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:1165,1
    - Dst: GetIV2BSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:1171,1
    - Dst: MarshalSensitive
      Src: /src/libtpms/src/tpm2/Object_spt.c:1177,1
    - Dst: ProduceOuterWrap
      Src: /src/libtpms/src/tpm2/Object_spt.c:1180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - sensitive
    - name
    - parent
    - nameAlg
    - outPrivate
    argTypes:
    - TPMT_SENSITIVE*
    - TPM2B_NAME*
    - OBJECT*
    - TPM_ALG_ID
    - TPM2B_PRIVATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1131
    functionDepth: 3
    functionLinenumber: 1131
    functionLinenumberEnd: 1183
    functionName: SensitiveToPrivate
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - pAssert
    - GetIV2BSize
    - ProduceOuterWrap
    - MarshalSensitive
    linkageType: ''
    returnType: void
    signature: "void SensitiveToPrivate(\n    TPMT_SENSITIVE* sensitive,  // IN: sensitive
      structure\n    TPM2B_NAME*     name,       // IN: the name of the object\n    OBJECT*
      \        parent,     // IN: The parent object\n    TPM_ALG_ID      nameAlg,
      \   // IN: hash algorithm in public area.  This\n                                //
      \    parameter is used when parentHandle is\n                                //
      \    NULL, in which case the object is\n                                //     temporary.\n
      \   TPM2B_PRIVATE* outPrivate   // OUT: output private structure\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object_spt.c:1226,1
    - Dst: UnwrapOuter
      Src: /src/libtpms/src/tpm2/Object_spt.c:1234,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:1239,1
    - Dst: GetIV2BSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:1242,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:1251,1
    - Dst: TPMT_SENSITIVE_Unmarshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:1259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 5
    argNames:
    - inPrivate
    - name
    - parent
    - nameAlg
    - sensitive
    argTypes:
    - TPM2B*
    - TPM2B*
    - OBJECT*
    - TPM_ALG_ID
    - TPMT_SENSITIVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1200
    functionDepth: 3
    functionLinenumber: 1200
    functionLinenumberEnd: 1267
    functionName: PrivateToSensitive
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - pAssert
    - GetIV2BSize
    - UnwrapOuter
    - UINT16_Unmarshal
    - TPMT_SENSITIVE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC PrivateToSensitive(TPM2B*     inPrivate,  // IN: input private
      structure\n                   TPM2B*     name,       // IN: the name of the
      object\n                   OBJECT*    parent,     // IN: parent object\n                   TPM_ALG_ID
      nameAlg,    // IN: hash algorithm in public area.  It is\n                   //
      \    passed separately because we only pass\n                   //     name,
      rather than the whole public area\n                   //     of the object.
      \ This parameter is used in\n                   //     the following two cases:
      1. primary\n                   //     objects. 2. duplication blob with inner\n
      \                  //     wrap.  In other cases, this parameter\n                   //
      \    will be ignored\n                   TPMT_SENSITIVE* sensitive  // OUT:
      sensitive structure\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object_spt.c:1305,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object_spt.c:1308,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:1322,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:1333,1
    - Dst: MarshalSensitive
      Src: /src/libtpms/src/tpm2/Object_spt.c:1336,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:1347,1
    - Dst: ProduceInnerIntegrity
      Src: /src/libtpms/src/tpm2/Object_spt.c:1348,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/Object_spt.c:1353,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object_spt.c:1361,1
    - Dst: CryptSymmetricEncrypt
      Src: /src/libtpms/src/tpm2/Object_spt.c:1365,1
    - Dst: ProduceOuterWrap
      Src: /src/libtpms/src/tpm2/Object_spt.c:1383,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 8
    argNames:
    - sensitive
    - name
    - parent
    - nameAlg
    - seed
    - symDef
    - innerSymKey
    - outPrivate
    argTypes:
    - TPMT_SENSITIVE*
    - TPM2B*
    - OBJECT*
    - TPM_ALG_ID
    - TPM2B*
    - TPMT_SYM_DEF_OBJECT*
    - TPM2B_DATA*
    - TPM2B_PRIVATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1275
    functionDepth: 3
    functionLinenumber: 1275
    functionLinenumberEnd: 1390
    functionName: SensitiveToDuplicate
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - CryptRandomGenerate
    - pAssert
    - CryptSymmetricEncrypt
    - ProduceOuterWrap
    - MarshalSensitive
    - ProduceInnerIntegrity
    linkageType: ''
    returnType: void
    signature: "void SensitiveToDuplicate(\n    TPMT_SENSITIVE* sensitive,    // IN:
      sensitive structure\n    TPM2B*          name,         // IN: the name of the
      object\n    OBJECT*         parent,       // IN: The new parent object\n    TPM_ALG_ID
      \     nameAlg,      // IN: hash algorithm in public area. It\n                                  //
      \    is passed separately because we\n                                  //     only
      pass name, rather than the\n                                  //     whole public
      area of the object.\n    TPM2B* seed,                  // IN: the external seed.
      If external\n                                  //     seed is provided with
      size of 0,\n                                  //     no outer wrap should be
      applied\n                                  //     to duplication blob.\n    TPMT_SYM_DEF_OBJECT*
      symDef,  // IN: Symmetric key definition. If the\n                                  //
      \    symmetric key algorithm is NULL,\n                                  //
      \    no inner wrap should be applied.\n    TPM2B_DATA* innerSymKey,      //
      IN/OUT: a symmetric key may be\n                                  //     provided
      to encrypt the inner\n                                  //     wrap of a duplication
      blob. May\n                                  //     be generated here if needed.\n
      \   TPM2B_PRIVATE* outPrivate     // OUT: output private structure\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object_spt.c:1431,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object_spt.c:1434,1
    - Dst: UnwrapOuter
      Src: /src/libtpms/src/tpm2/Object_spt.c:1446,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:1451,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:1452,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object_spt.c:1458,1
    - Dst: CryptSymmetricDecrypt
      Src: /src/libtpms/src/tpm2/Object_spt.c:1461,1
    - Dst: CheckInnerIntegrity
      Src: /src/libtpms/src/tpm2/Object_spt.c:1470,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:1474,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:1475,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:1480,1
    - Dst: TPMT_SENSITIVE_Unmarshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:1488,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 8
    argNames:
    - inPrivate
    - name
    - parent
    - nameAlg
    - seed
    - symDef
    - innerSymKey
    - sensitive
    argTypes:
    - TPM2B*
    - TPM2B*
    - OBJECT*
    - TPM_ALG_ID
    - TPM2B*
    - TPMT_SYM_DEF_OBJECT*
    - TPM2B*
    - TPMT_SENSITIVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1404
    functionDepth: 3
    functionLinenumber: 1404
    functionLinenumberEnd: 1496
    functionName: DuplicateToSensitive
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - CheckInnerIntegrity
    - pAssert
    - UnwrapOuter
    - UINT16_Unmarshal
    - TPMT_SENSITIVE_Unmarshal
    - CryptSymmetricDecrypt
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC DuplicateToSensitive(\n    TPM2B*     inPrivate,         //
      IN: input private structure\n    TPM2B*     name,              // IN: the name
      of the object\n    OBJECT*    parent,            // IN: the parent\n    TPM_ALG_ID
      nameAlg,           // IN: hash algorithm in public area.\n    TPM2B*     seed,
      \             // IN: an external seed may be provided.\n                                  //
      \    If external seed is provided with\n                                  //
      \    size of 0, no outer wrap is\n                                  //     applied\n
      \   TPMT_SYM_DEF_OBJECT* symDef,  // IN: Symmetric key definition. If the\n
      \                                 //     symmetric key algorithm is NULL,\n
      \                                 //     no inner wrap is applied\n    TPM2B*
      innerSymKey,           // IN: a symmetric key may be provided\n                                  //
      \    to decrypt the inner wrap of a\n                                  //     duplication
      blob.\n    TPMT_SENSITIVE* sensitive     // OUT: sensitive structure\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object_spt.c:1517,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:1524,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:1527,1
    - Dst: ProduceOuterWrap
      Src: /src/libtpms/src/tpm2/Object_spt.c:1530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - secret
    - name
    - seed
    - protector
    - outIDObject
    argTypes:
    - TPM2B_DIGEST*
    - TPM2B*
    - TPM2B*
    - OBJECT*
    - TPM2B_ID_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1505
    functionDepth: 3
    functionLinenumber: 1505
    functionLinenumberEnd: 1533
    functionName: SecretToCredential
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - pAssert
    - ProduceOuterWrap
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: void
    signature: "void SecretToCredential(TPM2B_DIGEST*    secret,      // IN: secret
      information\n                        TPM2B*           name,        // IN: the
      name of the object\n                        TPM2B*           seed,        //
      IN: an external seed.\n                        OBJECT*          protector,   //
      IN: the protector\n                        TPM2B_ID_OBJECT* outIDObject  //
      OUT: output credential\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UnwrapOuter
      Src: /src/libtpms/src/tpm2/Object_spt.c:1568,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:1579,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object_spt.c:1581,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:1585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - inIDObject
    - name
    - seed
    - protector
    - secret
    argTypes:
    - TPM2B*
    - TPM2B*
    - TPM2B*
    - OBJECT*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1549
    functionDepth: 3
    functionLinenumber: 1549
    functionLinenumberEnd: 1593
    functionName: CredentialToSecret
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - UnwrapOuter
    - TPM2B_DIGEST_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CredentialToSecret(TPM2B*        inIDObject,  // IN: input
      credential blob\n                   TPM2B*        name,        // IN: the name
      of the object\n                   TPM2B*        seed,        // IN: an external
      seed.\n                   OBJECT*       protector,   // IN: the protector\n
      \                  TPM2B_DIGEST* secret       // OUT: secret information\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - auth
    argTypes:
    - TPM2B_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1600
    functionDepth: 0
    functionLinenumber: 1600
    functionLinenumberEnd: 1607
    functionName: MemoryRemoveTrailingZeros
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: UINT16
    signature: 'UINT16 MemoryRemoveTrailingZeros(TPM2B_AUTH* auth  // IN/OUT: value
      to adjust

      )'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_DERIVE_Unmarshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:1629,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/Object_spt.c:1635,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/Object_spt.c:1640,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - labelContext
    - sensitive
    argTypes:
    - TPMS_DERIVE*
    - TPM2B_SENSITIVE_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1612
    functionDepth: 1
    functionLinenumber: 1612
    functionLinenumberEnd: 1645
    functionName: SetLabelAndContext
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - TPMS_DERIVE_Unmarshal
    - MemoryCopy2B
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC SetLabelAndContext(TPMS_DERIVE* labelContext,       // IN/OUT:
      the recovered label and\n                                                    //
      \     context\n                   TPM2B_SENSITIVE_DATA* sensitive  // IN: the
      sensitive data\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Object_spt.c:1667,1
    - Dst: TPMI_ALG_PUBLIC_Unmarshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:1669,1
    - Dst: TPMI_ALG_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:1672,1
    - Dst: TPMA_OBJECT_Unmarshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:1675,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:1678,1
    - Dst: TPMU_PUBLIC_PARMS_Unmarshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:1682,1
    - Dst: TPMS_DERIVE_Unmarshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:1687,1
    - Dst: TPMU_PUBLIC_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Object_spt.c:1690,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - tOut
    - tIn
    - derivation
    - labelContext
    argTypes:
    - TPMT_PUBLIC*
    - TPM2B_TEMPLATE*
    - BOOL
    - TPMS_DERIVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1654
    functionDepth: 1
    functionLinenumber: 1654
    functionLinenumberEnd: 1695
    functionName: UnmarshalToPublic
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached:
    - TPMA_OBJECT_Unmarshal
    - TPMI_ALG_HASH_Unmarshal
    - TPMI_ALG_PUBLIC_Unmarshal
    - TPMU_PUBLIC_ID_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    - TPMU_PUBLIC_PARMS_Unmarshal
    - MemorySet
    - TPMS_DERIVE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC UnmarshalToPublic(TPMT_PUBLIC*    tOut,  // OUT: output\n                  TPM2B_TEMPLATE*
      tIn,   // IN:\n                  BOOL derivation,       // IN: indicates if
      this is for a derivation\n                  TPMS_DERIVE* labelContext  // OUT:
      label and context if derivation\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - object
    argTypes:
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1700
    functionDepth: 0
    functionLinenumber: 1700
    functionLinenumberEnd: 1703
    functionName: ObjectSetExternal
    functionSourceFile: /src/libtpms/src/tpm2/Object_spt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ObjectSetExternal(OBJECT* object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExtMath_IntFromBytes
      Src: /src/libtpms/src/tpm2/TpmMath_Util.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - value
    - a2B
    argTypes:
    - Crypt_Int*
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: TpmMath_IntFrom2B
    functionSourceFile: /src/libtpms/src/tpm2/TpmMath_Util.c
    functionUses: 0
    functionsReached:
    - ExtMath_IntFromBytes
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT * TpmMath_IntFrom2B(Crypt_Int*   value,  // OUT:\n                                        const
      TPM2B* a2B     // IN: number to convert\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExtMath_IntToBytes
      Src: /src/libtpms/src/tpm2/TpmMath_Util.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - value
    - a2B
    - size
    argTypes:
    - Crypt_Int*
    - TPM2B*
    - NUMBYTES
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 100
    functionName: TpmMath_IntTo2B
    functionSourceFile: /src/libtpms/src/tpm2/TpmMath_Util.c
    functionUses: 0
    functionsReached:
    - ExtMath_IntToBytes
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT TpmMath_IntTo2B(\n    const Crypt_Int* value,  // IN: value
      to convert\n    TPM2B*           a2B,    // OUT: buffer for output\n    NUMBYTES
      \        size    // IN: Size of output buffer - see comments.\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/TpmMath_Util.c:118,1
    - Dst: DRBG_Generate
      Src: /src/libtpms/src/tpm2/TpmMath_Util.c:119,1
    - Dst: SWAP_CRYPT_WORD
      Src: /src/libtpms/src/tpm2/TpmMath_Util.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - pBuffer
    - bits
    - rand
    argTypes:
    - BYTE*
    - size_t
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 172
    functionName: TpmMath_GetRandomBits
    functionSourceFile: /src/libtpms/src/tpm2/TpmMath_Util.c
    functionUses: 0
    functionsReached:
    - DRBG_Generate
    - BITS_TO_BYTES
    - SWAP_CRYPT_WORD
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT TpmMath_GetRandomBits(BYTE* pBuffer, size_t bits, RAND_STATE*
      rand)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_TYPE
      Src: /src/libtpms/src/tpm2/TpmMath_Util.c:191,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/TpmMath_Util.c:194,1
    - Dst: DRBG_Generate
      Src: /src/libtpms/src/tpm2/TpmMath_Util.c:195,1
    - Dst: TpmMath_IntFrom2B
      Src: /src/libtpms/src/tpm2/TpmMath_Util.c:197,1
    - Dst: ExtMath_MaskBits
      Src: /src/libtpms/src/tpm2/TpmMath_Util.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - n
    - bits
    - rand
    argTypes:
    - Crypt_Int*
    - size_t
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 204
    functionName: TpmMath_GetRandomInteger
    functionSourceFile: /src/libtpms/src/tpm2/TpmMath_Util.c
    functionUses: 0
    functionsReached:
    - TpmMath_IntFrom2B
    - BITS_TO_BYTES
    - ExtMath_MaskBits
    - DRBG_Generate
    - TPM2B_TYPE
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT TpmMath_GetRandomInteger(Crypt_Int* n, size_t bits, RAND_STATE*
      rand)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExtMath_SizeInBits
      Src: /src/libtpms/src/tpm2/TpmMath_Util.c:220,1
    - Dst: ExtMath_SetWord
      Src: /src/libtpms/src/tpm2/TpmMath_Util.c:224,1
    - Dst: TpmMath_GetRandomInteger
      Src: /src/libtpms/src/tpm2/TpmMath_Util.c:229,1
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/TpmMath_Util.c:230,1
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/TpmMath_Util.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - dest
    - limit
    - rand
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 234
    functionName: TpmMath_GetRandomInRange
    functionSourceFile: /src/libtpms/src/tpm2/TpmMath_Util.c
    functionUses: 1
    functionsReached:
    - ExtMath_IsZero
    - ExtMath_UnsignedCmp
    - ExtMath_SizeInBits
    - TpmMath_GetRandomInteger
    - ExtMath_SetWord
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT TpmMath_GetRandomInRange(\n    Crypt_Int* dest, const Crypt_Int*
      limit, RAND_STATE* rand)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtpms/src/tpm2/ExtraData.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pPlatformPersistentData
    - bufferSize
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: _plat__GetPlatformManufactureData
    functionSourceFile: /src/libtpms/src/tpm2/ExtraData.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _plat__GetPlatformManufactureData(uint8_t* pPlatformPersistentData,\n
      \                                                 uint32_t bufferSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:78,1
    - Dst: ExtMath_SizeInBits
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - number
    - reference
    argTypes:
    - TPM2B*
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: SchnorrReduce
    functionSourceFile: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c
    functionUses: 0
    functionsReached:
    - BITS_TO_BYTES
    - ExtMath_SizeInBits
    linkageType: ''
    returnType: void
    signature: "void SchnorrReduce(TPM2B*           number,    // IN/OUT: Value to
      reduce\n                          const Crypt_Int* reference  // IN: the reference
      value\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:107,1
    - Dst: TPM2B_TYPE
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:108,1
    - Dst: MAX
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:108,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:114,1
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:115,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:119,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:121,1
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:121,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:122,1
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:122,1
    - Dst: ExtMath_SetWord
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:128,1
    - Dst: ExtMath_SetWord
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:129,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:130,1
    - Dst: TpmEcc_GenerateKeyPair
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:135,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:138,1
    - Dst: ExtEcc_PointX
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:138,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:140,1
    - Dst: ExtMath_SizeInBits
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:140,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:143,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:144,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:145,1
    - Dst: CryptHashEnd
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:146,1
    - Dst: SchnorrReduce
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:148,1
    - Dst: TpmMath_IntFrom2B
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:150,1
    - Dst: TpmEcc_SchnorrCalculateS
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:153,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:154,1
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 7
    argNames:
    - bnR
    - bnS
    - E
    - bnD
    - digest
    - hashAlg
    - rand
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_EccCurve*
    - Crypt_Int*
    - TPM2B_DIGEST*
    - TPM_ALG_ID
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 158
    functionName: TpmEcc_SignEcSchnorr
    functionSourceFile: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - TpmMath_IntFrom2B
    - TpmMath_IntTo2B
    - BITS_TO_BYTES
    - CRYPT_ECC_NUM
    - CRYPT_POINT_VAR
    - MAX
    - TPM2B_TYPE
    - ExtEcc_CurveGetOrder
    - CryptDigestUpdate2B
    - ERROR_EXIT
    - ExtEcc_PointX
    - ExtMath_SizeInBits
    - ExtEcc_CurveGetCurveId
    - ExtMath_SetWord
    - TpmEcc_SchnorrCalculateS
    - SchnorrReduce
    - CryptHashStart
    - CryptHashEnd
    - TpmEcc_GenerateKeyPair
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TpmEcc_SignEcSchnorr(\n    Crypt_Int*            bnR,      //
      OUT: 'r' component of the signature\n    Crypt_Int*            bnS,      //
      OUT: 's' component of the signature\n    const Crypt_EccCurve* E,        //
      IN: the curve used in signing\n    Crypt_Int*            bnD,      // IN: the
      signing key\n    const TPM2B_DIGEST*   digest,   // IN: the digest to sign\n
      \   TPM_ALG_ID            hashAlg,  // IN: signing scheme (contains a hash)\n
      \   RAND_STATE*           rand      // IN: non-NULL when testing\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_INT_MAX
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:174,1
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:175,1
    - Dst: CRYPT_INT_MAX
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:176,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:177,1
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:177,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:178,1
    - Dst: TPM2B_TYPE
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:180,1
    - Dst: MAX
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:180,1
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:185,1
    - Dst: ExtMath_Mod
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:190,1
    - Dst: ExtMath_Subtract
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:192,1
    - Dst: TpmEcc_PointMult
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:194,1
    - Dst: ExtEcc_CurveGetG
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:195,1
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:195,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:201,1
    - Dst: ExtEcc_PointX
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:201,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:203,1
    - Dst: ExtMath_SizeInBits
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:203,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:207,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:208,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:209,1
    - Dst: CryptHashEnd
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:210,1
    - Dst: SchnorrReduce
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:211,1
    - Dst: TpmMath_IntFrom2B
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:212,1
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 6
    argNames:
    - bnR
    - bnS
    - hashAlg
    - E
    - ecQ
    - digest
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - TPM_ALG_ID
    - Crypt_EccCurve*
    - Crypt_Point*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 217
    functionName: TpmEcc_ValidateSignatureEcSchnorr
    functionSourceFile: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - TpmMath_IntFrom2B
    - TpmMath_IntTo2B
    - BITS_TO_BYTES
    - ExtEcc_CurveGetG
    - CRYPT_POINT_VAR
    - MAX
    - TPM2B_TYPE
    - CRYPT_INT_MAX
    - ExtEcc_CurveGetOrder
    - ExtMath_UnsignedCmp
    - ExtMath_Mod
    - ExtEcc_PointX
    - ExtMath_SizeInBits
    - ExtEcc_CurveGetCurveId
    - RuntimeProfileRequiresAttributeFlags
    - ExtMath_Subtract
    - SchnorrReduce
    - CryptHashStart
    - CryptDigestUpdate
    - TpmEcc_PointMult
    - CryptHashEnd
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TpmEcc_ValidateSignatureEcSchnorr(\n    Crypt_Int*            bnR,
      \     // IN: 'r' component of the signature\n    Crypt_Int*            bnS,
      \     // IN: 's' component of the signature\n    TPM_ALG_ID            hashAlg,
      \ // IN: hash algorithm of the signature\n    const Crypt_EccCurve* E,        //
      IN: the curve used in the signature\n                                    //
      \    process\n    Crypt_Point*        ecQ,        // IN: the public point of
      the key\n    const TPM2B_DIGEST* digest      // IN: the digest that was signed\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - COC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: CcToIdx
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeCommands_fp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CcToIdx(COC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - IDX
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: IdxToCc
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeCommands_fp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IdxToCc(IDX)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ActGetSignaled
      Src: /src/libtpms/src/tpm2/ACTCommands.c:77,1
    - Dst: ActCounterUpdate
      Src: /src/libtpms/src/tpm2/ACTCommands.c:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - in
    argTypes:
    - ACT_SetTimeout_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: TPM2_ACT_SetTimeout
    functionSourceFile: /src/libtpms/src/tpm2/ACTCommands.c
    functionUses: 0
    functionsReached:
    - ActCounterUpdate
    - ActGetSignaled
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ACT_SetTimeout(\n\t\t    ACT_SetTimeout_In      *in             //
      IN: input parameter list\n\t\t    )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/libtpms/src/tpm2/DebugHelpers.c:84,1
    - Dst: fopen
      Src: /src/libtpms/src/tpm2/DebugHelpers.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fn
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: fileOpen
    functionSourceFile: /src/libtpms/src/tpm2/DebugHelpers.c
    functionUses: 0
    functionsReached:
    - fopen
    - fopen_s
    linkageType: ''
    returnType: FILE
    signature: FILE * fileOpen(const char* fn, const char* mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/libtpms/src/tpm2/DebugHelpers.c:101,1
    - Dst: ctime_s
      Src: /src/libtpms/src/tpm2/DebugHelpers.c:106,1
    - Dst: ctime
      Src: /src/libtpms/src/tpm2/DebugHelpers.c:109,1
    - Dst: fileOpen
      Src: /src/libtpms/src/tpm2/DebugHelpers.c:112,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/DebugHelpers.c:116,1
    - Dst: fclose
      Src: /src/libtpms/src/tpm2/DebugHelpers.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 121
    functionName: DebugFileInit
    functionSourceFile: /src/libtpms/src/tpm2/DebugHelpers.c
    functionUses: 0
    functionsReached:
    - ctime_s
    - time
    - fclose
    - ctime
    - fprintf
    - fileOpen
    linkageType: ''
    returnType: int
    signature: int DebugFileInit(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fileOpen
      Src: /src/libtpms/src/tpm2/DebugHelpers.c:128,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/DebugHelpers.c:132,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/DebugHelpers.c:138,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/DebugHelpers.c:139,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/DebugHelpers.c:142,1
    - Dst: fclose
      Src: /src/libtpms/src/tpm2/DebugHelpers.c:144,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - size
    - buf
    - identifier
    argTypes:
    - int
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 145
    functionName: DebugDumpBuffer
    functionSourceFile: /src/libtpms/src/tpm2/DebugHelpers.c
    functionUses: 0
    functionsReached:
    - fprintf
    - fclose
    - fileOpen
    linkageType: ''
    returnType: void
    signature: void DebugDumpBuffer(int size, unsigned char* buf, const char* identifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _plat__GetEPS
      Src: /src/libtpms/src/tpm2/Hierarchy.c:105,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/Hierarchy.c:107,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/Hierarchy.c:109,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/Hierarchy.c:110,1
    - Dst: RuntimeProfileGetSeedCompatLevel
      Src: /src/libtpms/src/tpm2/Hierarchy.c:112,1
    - Dst: RuntimeProfileGetSeedCompatLevel
      Src: /src/libtpms/src/tpm2/Hierarchy.c:113,1
    - Dst: RuntimeProfileGetSeedCompatLevel
      Src: /src/libtpms/src/tpm2/Hierarchy.c:114,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/Hierarchy.c:132,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/Hierarchy.c:133,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/Hierarchy.c:134,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:137,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:138,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:139,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:140,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:141,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:142,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:143,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:144,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:145,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:146,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:147,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:148,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:149,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:150,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:151,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:152,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:153,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:154,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Hierarchy.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 158
    functionName: HierarchyPreInstall_Init
    functionSourceFile: /src/libtpms/src/tpm2/Hierarchy.c
    functionUses: 0
    functionsReached:
    - NV_SYNC_PERSISTENT
    - RuntimeProfileGetSeedCompatLevel
    - CryptRandomGenerate
    - _plat__GetEPS
    linkageType: ''
    returnType: void
    signature: void HierarchyPreInstall_Init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/Hierarchy.c:185,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/Hierarchy.c:187,1
    - Dst: RuntimeProfileGetSeedCompatLevel
      Src: /src/libtpms/src/tpm2/Hierarchy.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - type
    argTypes:
    - STARTUP_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 192
    functionName: HierarchyStartup
    functionSourceFile: /src/libtpms/src/tpm2/Hierarchy.c
    functionUses: 1
    functionsReached:
    - RuntimeProfileGetSeedCompatLevel
    - CryptRandomGenerate
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL HierarchyStartup(STARTUP_TYPE type  // IN: start up type

      )'
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - handle
    - modifier
    argTypes:
    - TPMI_RH_HIERARCHY
    - HIERARCHY_MODIFIER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 268
    functionName: DecomposeHandle
    functionSourceFile: /src/libtpms/src/tpm2/Hierarchy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPMI_RH_HIERARCHY
    signature: "TPMI_RH_HIERARCHY DecomposeHandle(TPMI_RH_HIERARCHY   handle,   //
      IN\n                                         HIERARCHY_MODIFIER* modifier  //
      OUT\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _plat__GetTpmFirmwareSecret
      Src: /src/libtpms/src/tpm2/Hierarchy.c:294,1
    - Dst: _plat__GetTpmFirmwareSvnSecret
      Src: /src/libtpms/src/tpm2/Hierarchy.c:311,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - modifier
    - secret_buffer
    - secret_label
    argTypes:
    - HIERARCHY_MODIFIER*
    - TPM2B_SEED*
    - TPM2B**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 336
    functionName: GetAdditionalSecret
    functionSourceFile: /src/libtpms/src/tpm2/Hierarchy.c
    functionUses: 0
    functionsReached:
    - _plat__GetTpmFirmwareSecret
    - _plat__GetTpmFirmwareSvnSecret
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC GetAdditionalSecret(const HIERARCHY_MODIFIER* modifier,       //
      IN\n                                  TPM2B_SEED*               secret_buffer,
      \ // OUT\n                                  const TPM2B**             secret_label
      \   // OUT\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetAdditionalSecret
      Src: /src/libtpms/src/tpm2/Hierarchy.c:364,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/Hierarchy.c:372,1
    - Dst: CryptKDFa
      Src: /src/libtpms/src/tpm2/Hierarchy.c:376,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Hierarchy.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - modifier
    - base_secret_label
    - base_secret
    - output_secret
    argTypes:
    - HIERARCHY_MODIFIER*
    - TPM2B*
    - TPM2B*
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 390
    functionName: MixAdditionalSecret
    functionSourceFile: /src/libtpms/src/tpm2/Hierarchy.c
    functionUses: 0
    functionsReached:
    - MemorySet
    - CryptKDFa
    - GetAdditionalSecret
    - memcpy
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC MixAdditionalSecret(const HIERARCHY_MODIFIER* modifier,           //
      IN\n                                  const TPM2B*              base_secret_label,
      \ // IN\n                                  const TPM2B*              base_secret,
      \       // IN\n                                  TPM2B*                    output_secret
      \      // OUT\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DecomposeHandle
      Src: /src/libtpms/src/tpm2/Hierarchy.c:402,1
    - Dst: MixAdditionalSecret
      Src: /src/libtpms/src/tpm2/Hierarchy.c:422,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - hierarchy
    - proof
    argTypes:
    - TPMI_RH_HIERARCHY
    - TPM2B_PROOF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 424
    functionName: HierarchyGetProof
    functionSourceFile: /src/libtpms/src/tpm2/Hierarchy.c
    functionUses: 0
    functionsReached:
    - DecomposeHandle
    - MixAdditionalSecret
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC HierarchyGetProof(TPMI_RH_HIERARCHY hierarchy,  // IN: hierarchy
      constant\n                         TPM2B_PROOF*      proof       // OUT: proof
      buffer\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DecomposeHandle
      Src: /src/libtpms/src/tpm2/Hierarchy.c:435,1
    - Dst: MixAdditionalSecret
      Src: /src/libtpms/src/tpm2/Hierarchy.c:451,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - hierarchy
    - seed
    argTypes:
    - TPMI_RH_HIERARCHY
    - TPM2B_SEED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 453
    functionName: HierarchyGetPrimarySeed
    functionSourceFile: /src/libtpms/src/tpm2/Hierarchy.c
    functionUses: 0
    functionsReached:
    - DecomposeHandle
    - MixAdditionalSecret
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC HierarchyGetPrimarySeed(TPMI_RH_HIERARCHY hierarchy,  // IN:
      hierarchy\n                               TPM2B_SEED*       seed        // OUT:
      seed buffer\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DecomposeHandle
      Src: /src/libtpms/src/tpm2/Hierarchy.c:463,1
    - Dst: RuntimeProfileGetSeedCompatLevel
      Src: /src/libtpms/src/tpm2/Hierarchy.c:477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - hierarchy
    argTypes:
    - TPMI_RH_HIERARCHY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 480
    functionName: HierarchyGetPrimarySeedCompatLevel
    functionSourceFile: /src/libtpms/src/tpm2/Hierarchy.c
    functionUses: 0
    functionsReached:
    - DecomposeHandle
    - RuntimeProfileGetSeedCompatLevel
    linkageType: ''
    returnType: SEED_COMPAT_LEVEL
    signature: "SEED_COMPAT_LEVEL HierarchyGetPrimarySeedCompatLevel(\n                   TPMI_RH_HIERARCHY
      \   hierarchy     // IN: hierarchy\n                       )"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DecomposeHandle
      Src: /src/libtpms/src/tpm2/Hierarchy.c:499,1
    - Dst: _plat__GetTpmFirmwareSvn
      Src: /src/libtpms/src/tpm2/Hierarchy.c:519,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 1
    argNames:
    - hierarchy
    argTypes:
    - TPMI_RH_HIERARCHY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 549
    functionName: ValidateHierarchy
    functionSourceFile: /src/libtpms/src/tpm2/Hierarchy.c
    functionUses: 1
    functionsReached:
    - DecomposeHandle
    - _plat__GetTpmFirmwareSvn
    linkageType: ''
    returnType: TPM_RC
    signature: 'TPM_RC ValidateHierarchy(TPMI_RH_HIERARCHY hierarchy  // IN: hierarchy

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValidateHierarchy
      Src: /src/libtpms/src/tpm2/Hierarchy.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hierarchy
    argTypes:
    - TPMI_RH_HIERARCHY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 561
    functionName: HierarchyIsEnabled
    functionSourceFile: /src/libtpms/src/tpm2/Hierarchy.c
    functionUses: 1
    functionsReached:
    - ValidateHierarchy
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL HierarchyIsEnabled(TPMI_RH_HIERARCHY hierarchy  // IN: hierarchy

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecomposeHandle
      Src: /src/libtpms/src/tpm2/Hierarchy.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_RH_HIERARCHY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 572
    functionName: HierarchyNormalizeHandle
    functionSourceFile: /src/libtpms/src/tpm2/Hierarchy.c
    functionUses: 2
    functionsReached:
    - DecomposeHandle
    linkageType: ''
    returnType: TPMI_RH_HIERARCHY
    signature: 'TPMI_RH_HIERARCHY HierarchyNormalizeHandle(TPMI_RH_HIERARCHY handle  //
      IN: handle

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecomposeHandle
      Src: /src/libtpms/src/tpm2/Hierarchy.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_RH_HIERARCHY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 585
    functionName: HierarchyIsFirmwareLimited
    functionSourceFile: /src/libtpms/src/tpm2/Hierarchy.c
    functionUses: 3
    functionsReached:
    - DecomposeHandle
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL HierarchyIsFirmwareLimited(TPMI_RH_HIERARCHY handle  // IN

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecomposeHandle
      Src: /src/libtpms/src/tpm2/Hierarchy.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_RH_HIERARCHY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 597
    functionName: HierarchyIsSvnLimited
    functionSourceFile: /src/libtpms/src/tpm2/Hierarchy.c
    functionUses: 3
    functionsReached:
    - DecomposeHandle
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL HierarchyIsSvnLimited(TPMI_RH_HIERARCHY handle  // IN

      )'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:74,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:75,1
    - Dst: IsSigningObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:77,1
    - Dst: CryptSelectSignScheme
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:79,1
    - Dst: FillInAttestInfo
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:84,1
    - Dst: CryptIsSchemeAnonymous
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:94,1
    - Dst: SignAttestInfo
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - Certify_In*
    - Certify_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 105
    functionName: TPM2_Certify
    functionSourceFile: /src/libtpms/src/tpm2/AttestationCommands.c
    functionUses: 0
    functionsReached:
    - FillInAttestInfo
    - IsSigningObject
    - SignAttestInfo
    - HandleToObject
    - CryptIsSchemeAnonymous
    - CryptSelectSignScheme
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Certify(\n\t     Certify_In      *in,            // IN:
      input parameter list\n\t     Certify_Out     *out            // OUT: output
      parameter list\n\t     )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:119,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:120,1
    - Dst: IsSigningObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:122,1
    - Dst: CryptSelectSignScheme
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:124,1
    - Dst: TicketComputeCreation
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:128,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:131,1
    - Dst: FillInAttestInfo
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:135,1
    - Dst: SignAttestInfo
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - CertifyCreation_In*
    - CertifyCreation_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 150
    functionName: TPM2_CertifyCreation
    functionSourceFile: /src/libtpms/src/tpm2/AttestationCommands.c
    functionUses: 0
    functionsReached:
    - FillInAttestInfo
    - MemoryEqual2B
    - IsSigningObject
    - SignAttestInfo
    - HandleToObject
    - CryptSelectSignScheme
    - TicketComputeCreation
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_CertifyCreation(\n\t\t     CertifyCreation_In      *in,
      \           // IN: input parameter list\n\t\t     CertifyCreation_Out     *out
      \           // OUT: output parameter list\n\t\t     )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:164,1
    - Dst: IsSigningObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:166,1
    - Dst: CryptSelectSignScheme
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:168,1
    - Dst: FillInAttestInfo
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:174,1
    - Dst: PCRComputeCurrentDigest
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:185,1
    - Dst: SignAttestInfo
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - Quote_In*
    - Quote_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 156
    functionDepth: 5
    functionLinenumber: 156
    functionLinenumberEnd: 194
    functionName: TPM2_Quote
    functionSourceFile: /src/libtpms/src/tpm2/AttestationCommands.c
    functionUses: 0
    functionsReached:
    - FillInAttestInfo
    - IsSigningObject
    - SignAttestInfo
    - HandleToObject
    - CryptSelectSignScheme
    - PCRComputeCurrentDigest
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Quote(\n\t   Quote_In        *in,            // IN: input
      parameter list\n\t   Quote_Out       *out            // OUT: output parameter
      list\n\t   )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:206,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:208,1
    - Dst: IsSigningObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:210,1
    - Dst: CryptSelectSignScheme
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:212,1
    - Dst: FillInAttestInfo
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:219,1
    - Dst: SignAttestInfo
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - GetSessionAuditDigest_In*
    - GetSessionAuditDigest_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 232
    functionName: TPM2_GetSessionAuditDigest
    functionSourceFile: /src/libtpms/src/tpm2/AttestationCommands.c
    functionUses: 0
    functionsReached:
    - FillInAttestInfo
    - IsSigningObject
    - SignAttestInfo
    - HandleToObject
    - CryptSelectSignScheme
    - SessionGet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_GetSessionAuditDigest(\n\t\t\t   GetSessionAuditDigest_In
      \   *in,            // IN: input parameter list\n\t\t\t   GetSessionAuditDigest_Out
      \  *out            // OUT: output parameter list\n\t\t\t   )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:246,1
    - Dst: IsSigningObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:248,1
    - Dst: CryptSelectSignScheme
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:250,1
    - Dst: FillInAttestInfo
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:254,1
    - Dst: CommandAuditGetDigest
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:262,1
    - Dst: SignAttestInfo
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - GetCommandAuditDigest_In*
    - GetCommandAuditDigest_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 275
    functionName: TPM2_GetCommandAuditDigest
    functionSourceFile: /src/libtpms/src/tpm2/AttestationCommands.c
    functionUses: 0
    functionsReached:
    - FillInAttestInfo
    - IsSigningObject
    - SignAttestInfo
    - CommandAuditGetDigest
    - HandleToObject
    - CryptSelectSignScheme
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_GetCommandAuditDigest(\n\t\t\t   GetCommandAuditDigest_In
      \   *in,            // IN: input parameter list\n\t\t\t   GetCommandAuditDigest_Out
      \  *out            // OUT: output parameter list\n\t\t\t   )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:288,1
    - Dst: IsSigningObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:290,1
    - Dst: CryptSelectSignScheme
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:292,1
    - Dst: FillInAttestInfo
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:296,1
    - Dst: TimeFillInfo
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:300,1
    - Dst: SignAttestInfo
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - GetTime_In*
    - GetTime_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 308
    functionName: TPM2_GetTime
    functionSourceFile: /src/libtpms/src/tpm2/AttestationCommands.c
    functionUses: 0
    functionsReached:
    - FillInAttestInfo
    - IsSigningObject
    - SignAttestInfo
    - HandleToObject
    - CryptSelectSignScheme
    - TimeFillInfo
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_GetTime(\n\t     GetTime_In      *in,            // IN:
      input parameter list\n\t     GetTime_Out     *out            // OUT: output
      parameter list\n\t     )"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:335,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:336,1
    - Dst: DebugFileInit
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:351,1
    - Dst: DebugDumpBuffer
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:352,1
    - Dst: IsSigningObject
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:360,1
    - Dst: CryptSelectSignScheme
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:364,1
    - Dst: X509AddPublicKey
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:367,1
    - Dst: ASN1UnmarshalContextInitialize
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:371,1
    - Dst: ASN1NextTag
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:375,1
    - Dst: ASN1NextTag
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:389,1
    - Dst: X509AddSigningAlgorithm
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:426,1
    - Dst: X509ProcessExtensions
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:430,1
    - Dst: ASN1InitialializeMarshalContext
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:443,1
    - Dst: ASN1StartMarshalContext
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:446,1
    - Dst: X509AddPublicKey
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:449,1
    - Dst: X509AddSigningAlgorithm
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:454,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:462,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:463,1
    - Dst: MIN
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:467,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:471,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:473,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:475,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:477,1
    - Dst: ASN1PushInteger
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:482,1
    - Dst: ASN1StartMarshalContext
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:486,1
    - Dst: ASN1PushUINT
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:487,1
    - Dst: ASN1EndEncapsulation
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:489,1
    - Dst: ASN1PushTagAndLength
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:499,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:509,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:511,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:512,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:521,1
    - Dst: DebugDumpBuffer
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:524,1
    - Dst: ASN1EndEncapsulation
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:531,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:533,1
    - Dst: DebugDumpBuffer
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:536,1
    - Dst: CryptSign
      Src: /src/libtpms/src/tpm2/AttestationCommands.c:540,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 91
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - CertifyX509_In*
    - CertifyX509_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 543
    functionName: TPM2_CertifyX509
    functionSourceFile: /src/libtpms/src/tpm2/AttestationCommands.c
    functionUses: 0
    functionsReached:
    - IsSigningObject
    - X509AddSigningAlgorithm
    - pAssert
    - ASN1PushTagAndLength
    - ASN1InitialializeMarshalContext
    - MIN
    - ASN1NextTag
    - ASN1UnmarshalContextInitialize
    - X509AddPublicKey
    - CryptDigestUpdate2B
    - ASN1PushInteger
    - HandleToObject
    - ASN1StartMarshalContext
    - X509ProcessExtensions
    - MemoryCopy
    - CryptSign
    - CryptSelectSignScheme
    - ASN1EndEncapsulation
    - DebugDumpBuffer
    - ASN1PushUINT
    - CryptHashStart
    - CryptHashEnd2B
    - CryptDigestUpdate
    - DebugFileInit
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_CertifyX509(\n\t\t CertifyX509_In          *in,          //
      IN: input parameter list\n\t\t CertifyX509_Out         *out            // OUT:
      output parameter list\n\t\t )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: TO_BIG_ENDIAN_UINT16
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_BIG_ENDIAN_UINT16(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: FROM_BIG_ENDIAN_UINT16
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FROM_BIG_ENDIAN_UINT16(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: TO_BIG_ENDIAN_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_BIG_ENDIAN_UINT32(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: FROM_BIG_ENDIAN_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FROM_BIG_ENDIAN_UINT32(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: TO_BIG_ENDIAN_UINT64
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_BIG_ENDIAN_UINT64(i)
  - 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: FROM_BIG_ENDIAN_UINT64
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FROM_BIG_ENDIAN_UINT64(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: TO_BIG_ENDIAN_UINT16
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_BIG_ENDIAN_UINT16(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: FROM_BIG_ENDIAN_UINT16
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FROM_BIG_ENDIAN_UINT16(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: TO_BIG_ENDIAN_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_BIG_ENDIAN_UINT32(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: FROM_BIG_ENDIAN_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FROM_BIG_ENDIAN_UINT32(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: TO_BIG_ENDIAN_UINT64
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_BIG_ENDIAN_UINT64(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: FROM_BIG_ENDIAN_UINT64
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FROM_BIG_ENDIAN_UINT64(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: BYTE_ARRAY_TO_UINT8
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_UINT8(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: BYTE_ARRAY_TO_UINT16
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_UINT16(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: BYTE_ARRAY_TO_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_UINT32(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: BYTE_ARRAY_TO_UINT64
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_UINT64(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: UINT8_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT8_TO_BYTE_ARRAY(i, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: UINT16_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT16_TO_BYTE_ARRAY(i, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: UINT32_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT32_TO_BYTE_ARRAY(i, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: UINT64_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT64_TO_BYTE_ARRAY(i, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: BYTE_ARRAY_TO_UINT8
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_UINT8(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: BYTE_ARRAY_TO_UINT16
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_UINT16(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: BYTE_ARRAY_TO_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_UINT32(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: BYTE_ARRAY_TO_UINT64
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_UINT64(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: UINT8_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT8_TO_BYTE_ARRAY(i, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: UINT16_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT16_TO_BYTE_ARRAY(i, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: UINT32_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT32_TO_BYTE_ARRAY(i, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: UINT64_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT64_TO_BYTE_ARRAY(i, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: BYTE_ARRAY_TO_UINT8
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_UINT8(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: BYTE_ARRAY_TO_UINT16
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_UINT16(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: BYTE_ARRAY_TO_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_UINT32(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: BYTE_ARRAY_TO_UINT64
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE_ARRAY_TO_UINT64(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: UINT8_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT8_TO_BYTE_ARRAY(i, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: UINT16_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT16_TO_BYTE_ARRAY(i, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: UINT32_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT32_TO_BYTE_ARRAY(i, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: UINT64_TO_BYTE_ARRAY
    functionSourceFile: /src/libtpms/src/tpm2/endian_swap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UINT64_TO_BYTE_ARRAY(i, b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PCRIsExtendAllowed
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:83,1
    - Dst: PCRIsStateSaved
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:87,1
    - Dst: PCRExtend
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:93,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - in
    argTypes:
    - PCR_Extend_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 65
    functionDepth: 5
    functionLinenumber: 65
    functionLinenumberEnd: 98
    functionName: TPM2_PCR_Extend
    functionSourceFile: /src/libtpms/src/tpm2/IntegrityCommands.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - PCRIsExtendAllowed
    - PCRExtend
    - PCRIsStateSaved
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PCR_Extend(\n\t\tPCR_Extend_In   *in             // IN:
      input parameter list\n\t\t)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PCRIsExtendAllowed
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:117,1
    - Dst: PCRIsStateSaved
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:121,1
    - Dst: CryptHashGetAlgByIndex
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:129,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:131,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:132,1
    - Dst: CryptHashEnd
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:133,1
    - Dst: PCRExtend
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - PCR_Event_In*
    - PCR_Event_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 103
    functionDepth: 5
    functionLinenumber: 103
    functionLinenumberEnd: 140
    functionName: TPM2_PCR_Event
    functionSourceFile: /src/libtpms/src/tpm2/IntegrityCommands.c
    functionUses: 0
    functionsReached:
    - CryptHashGetAlgByIndex
    - CryptDigestUpdate2B
    - PCRExtend
    - CryptHashStart
    - PCRIsStateSaved
    - CryptHashEnd
    - PCRIsExtendAllowed
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PCR_Event(\n\t       PCR_Event_In    *in,            //
      IN: input parameter list\n\t       PCR_Event_Out   *out            // OUT: output
      parameter list\n\t       )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PCRRead
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - PCR_Read_In*
    - PCR_Read_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 5
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: TPM2_PCR_Read
    functionSourceFile: /src/libtpms/src/tpm2/IntegrityCommands.c
    functionUses: 0
    functionsReached:
    - PCRRead
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PCR_Read(\n\t      PCR_Read_In     *in,            //
      IN: input parameter list\n\t      PCR_Read_Out    *out            // OUT: output
      parameter list\n\t      )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PCRAllocate
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - PCR_Allocate_In*
    - PCR_Allocate_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 190
    functionName: TPM2_PCR_Allocate
    functionSourceFile: /src/libtpms/src/tpm2/IntegrityCommands.c
    functionUses: 0
    functionsReached:
    - PCRAllocate
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PCR_Allocate(\n\t\t  PCR_Allocate_In     *in,            //
      IN: input parameter list\n\t\t  PCR_Allocate_Out    *out            // OUT:
      output parameter list\n\t\t  )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:207,1
    - Dst: PCRBelongsPolicyGroup
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:210,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - in
    argTypes:
    - PCR_SetAuthPolicy_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 219
    functionName: TPM2_PCR_SetAuthPolicy
    functionSourceFile: /src/libtpms/src/tpm2/IntegrityCommands.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - NV_SYNC_PERSISTENT
    - PCRBelongsPolicyGroup
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PCR_SetAuthPolicy(\n\t\t       PCR_SetAuthPolicy_In    *in
      \            // IN: input parameter list\n\t\t       )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PCRBelongsAuthGroup
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:233,1
    - Dst: MemoryRemoveTrailingZeros
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - PCR_SetAuthValue_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 245
    functionName: TPM2_PCR_SetAuthValue
    functionSourceFile: /src/libtpms/src/tpm2/IntegrityCommands.c
    functionUses: 0
    functionsReached:
    - MemoryRemoveTrailingZeros
    - PCRBelongsAuthGroup
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PCR_SetAuthValue(\n\t\t      PCR_SetAuthValue_In     *in
      \            // IN: input parameter list\n\t\t      )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PCRIsResetAllowed
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:257,1
    - Dst: PCRIsStateSaved
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:261,1
    - Dst: PCRSetValue
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:265,1
    - Dst: PCRChanged
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - PCR_Reset_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 250
    functionDepth: 5
    functionLinenumber: 250
    functionLinenumberEnd: 270
    functionName: TPM2_PCR_Reset
    functionSourceFile: /src/libtpms/src/tpm2/IntegrityCommands.c
    functionUses: 0
    functionsReached:
    - PCRChanged
    - PCRIsResetAllowed
    - PCRSetValue
    - PCRIsStateSaved
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PCR_Reset(\n\t       PCR_Reset_In    *in             //
      IN: input parameter list\n\t       )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FlushObject
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:285,1
    - Dst: ObjectCreateEventSequence
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:293,1
    - Dst: IsObjectPresent
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:308,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:313,1
    - Dst: FlushObject
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:315,1
    - Dst: ObjectCreateEventSequence
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:318,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:320,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 323
    functionName: _TPM_Hash_Start
    functionSourceFile: /src/libtpms/src/tpm2/IntegrityCommands.c
    functionUses: 1
    functionsReached:
    - pAssert
    - FlushObject
    - ObjectCreateEventSequence
    - FAIL
    - IsObjectPresent
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _TPM_Hash_Start(\n\t\tvoid\n\t\t)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMIsStarted
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:335,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:342,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:343,1
    - Dst: PcrIsAllocated
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:349,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - dataSize
    - data
    argTypes:
    - uint32_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 355
    functionName: _TPM_Hash_Data
    functionSourceFile: /src/libtpms/src/tpm2/IntegrityCommands.c
    functionUses: 1
    functionsReached:
    - PcrIsAllocated
    - TPMIsStarted
    - pAssert
    - HandleToObject
    - CryptDigestUpdate
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _TPM_Hash_Data(\n\t       uint32_t         dataSize,      //
      IN: size of data to be extend\n\t       unsigned char   *data           // IN:
      data buffer\n\t       )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:374,1
    - Dst: TPMIsStarted
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:376,1
    - Dst: PCRResetDynamics
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:380,1
    - Dst: CryptHashGetAlgByIndex
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:396,1
    - Dst: PcrIsAllocated
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:398,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:402,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:403,1
    - Dst: PcrDrtm
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:404,1
    - Dst: FlushObject
      Src: /src/libtpms/src/tpm2/IntegrityCommands.c:408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 359
    functionDepth: 5
    functionLinenumber: 359
    functionLinenumberEnd: 411
    functionName: _TPM_Hash_End
    functionSourceFile: /src/libtpms/src/tpm2/IntegrityCommands.c
    functionUses: 1
    functionsReached:
    - CryptHashGetDigestSize
    - PcrIsAllocated
    - CryptHashGetAlgByIndex
    - TPMIsStarted
    - HandleToObject
    - CryptHashEnd2B
    - FlushObject
    - PCRResetDynamics
    - PcrDrtm
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _TPM_Hash_End(\n\t      void\n\t      )"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - responseCode
    - modifier
    argTypes:
    - TPM_RC
    - TPM_RC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: RcSafeAddToResult
    functionSourceFile: /src/libtpms/src/tpm2/ResponseCodeProcessing.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC RcSafeAddToResult(TPM_RC responseCode, TPM_RC modifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - typename
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: CRYPT_INT_TYPE
    functionSourceFile: /src/libtpms/src/tpm2/MathLibraryInterfaceTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_INT_TYPE(typename, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - varname
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: CRYPT_INT_VAR
    functionSourceFile: /src/libtpms/src/tpm2/MathLibraryInterfaceTypes.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_INT_VAR(varname, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - varname
    - ','
    - bits
    - ','
    - initializer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: CRYPT_INT_INITIALIZED
    functionSourceFile: /src/libtpms/src/tpm2/MathLibraryInterfaceTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_INT_INITIALIZED(varname, bits, initializer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - varname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: CRYPT_INT_MAX
    functionSourceFile: /src/libtpms/src/tpm2/MathLibraryInterfaceTypes.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_INT_MAX(varname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - initializer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: CRYPT_INT_MAX_INITIALIZED
    functionSourceFile: /src/libtpms/src/tpm2/MathLibraryInterfaceTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_INT_MAX_INITIALIZED(name, initializer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: CRYPT_INT_WORD
    functionSourceFile: /src/libtpms/src/tpm2/MathLibraryInterfaceTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_INT_WORD(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - varname
    - ','
    - initializer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: CRYPT_INT_WORD_INITIALIZED
    functionSourceFile: /src/libtpms/src/tpm2/MathLibraryInterfaceTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_INT_WORD_INITIALIZED(varname, initializer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - varname
    - ','
    - initializer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: CRYPT_CURVE_INITIALIZED
    functionSourceFile: /src/libtpms/src/tpm2/MathLibraryInterfaceTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_CURVE_INITIALIZED(varname, initializer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - varname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: CRYPT_CURVE_FREE
    functionSourceFile: /src/libtpms/src/tpm2/MathLibraryInterfaceTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_CURVE_FREE(varname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - varname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: CRYPT_POINT_VAR
    functionSourceFile: /src/libtpms/src/tpm2/MathLibraryInterfaceTypes.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_POINT_VAR(varname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - varname
    - ','
    - initValue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: CRYPT_POINT_INITIALIZED
    functionSourceFile: /src/libtpms/src/tpm2/MathLibraryInterfaceTypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_POINT_INITIALIZED(varname, initValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PhysicalPresenceCommandSet
      Src: /src/libtpms/src/tpm2/ManagementCommands.c:82,1
    - Dst: PhysicalPresenceCommandClear
      Src: /src/libtpms/src/tpm2/ManagementCommands.c:89,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/ManagementCommands.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - PP_Commands_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 93
    functionName: TPM2_PP_Commands
    functionSourceFile: /src/libtpms/src/tpm2/ManagementCommands.c
    functionUses: 0
    functionsReached:
    - PhysicalPresenceCommandSet
    - NV_SYNC_PERSISTENT
    - PhysicalPresenceCommandClear
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PP_Commands(\n\t\t PP_Commands_In  *in             //
      IN: input parameter list\n\t\t )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/ManagementCommands.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - SetAlgorithmSet_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 112
    functionName: TPM2_SetAlgorithmSet
    functionSourceFile: /src/libtpms/src/tpm2/ManagementCommands.c
    functionUses: 0
    functionsReached:
    - NV_SYNC_PERSISTENT
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_SetAlgorithmSet(\n\t\t     SetAlgorithmSet_In  *in             //
      IN: input parameter list\n\t\t     )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/DictionaryCommands.c:71,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/DictionaryCommands.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - DictionaryAttackLockReset_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: TPM2_DictionaryAttackLockReset
    functionSourceFile: /src/libtpms/src/tpm2/DictionaryCommands.c
    functionUses: 0
    functionsReached:
    - NV_SYNC_PERSISTENT
    - NOT_REFERENCED
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_DictionaryAttackLockReset(\n\t\t\t       DictionaryAttackLockReset_In
      \   *in             // IN: input parameter list\n\t\t\t       )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/DictionaryCommands.c:98,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/DictionaryCommands.c:99,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/DictionaryCommands.c:100,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/DictionaryCommands.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - in
    argTypes:
    - DictionaryAttackParameters_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 103
    functionName: TPM2_DictionaryAttackParameters
    functionSourceFile: /src/libtpms/src/tpm2/DictionaryCommands.c
    functionUses: 0
    functionsReached:
    - NV_SYNC_PERSISTENT
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_DictionaryAttackParameters(\n\t\t\t\tDictionaryAttackParameters_In
      \  *in             // IN: input parameter list\n\t\t\t\t)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ExtMath_SizeInBits
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:79,1
    - Dst: ExtMath_SetWord
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:83,1
    - Dst: ExtMath_IntFromBytes
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:86,1
    - Dst: MIN
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:88,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:88,1
    - Dst: ExtMath_SizeInBits
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:89,1
    - Dst: ExtMath_ShiftRight
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - bnD
    - digest
    - max
    argTypes:
    - Crypt_Int*
    - TPM2B_DIGEST*
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 94
    functionName: TpmEcc_AdjustEcdsaDigest
    functionSourceFile: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c
    functionUses: 0
    functionsReached:
    - ExtMath_IntFromBytes
    - BITS_TO_BYTES
    - ExtMath_SizeInBits
    - MIN
    - ExtMath_ShiftRight
    - ExtMath_SetWord
    linkageType: ''
    returnType: Crypt_Int
    signature: "Crypt_Int * TpmEcc_AdjustEcdsaDigest(\n    Crypt_Int*          bnD,
      \    // OUT: the adjusted digest\n    const TPM2B_DIGEST* digest,  // IN: digest
      to adjust\n    const Crypt_Int*    max      // IN: value that indicates the
      maximum\n                                 //     number of bits in the results\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:111,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:112,1
    - Dst: CRYPT_INT_VAR
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:113,1
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:114,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:115,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:116,1
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:116,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:121,1
    - Dst: TpmEcc_GenerateKeyPair
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:143,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:146,1
    - Dst: ExtEcc_PointX
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:146,1
    - Dst: ExtMath_Mod
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:148,1
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:150,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:153,1
    - Dst: ExtMath_ModInverse
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:155,1
    - Dst: TpmEcc_AdjustEcdsaDigest
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:162,1
    - Dst: ExtMath_ModMult
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:168,1
    - Dst: ExtMath_Add
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:170,1
    - Dst: ExtMath_ModMult
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:172,1
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:175,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 6
    argNames:
    - bnR
    - bnS
    - E
    - bnD
    - digest
    - rand
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_EccCurve*
    - Crypt_Int*
    - TPM2B_DIGEST*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 178
    functionName: TpmEcc_SignEcdsa
    functionSourceFile: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c
    functionUses: 0
    functionsReached:
    - ExtMath_Copy
    - ExtEcc_CurveGetOrder
    - ExtMath_Add
    - pAssert
    - ExtMath_ModInverse
    - TpmEcc_GenerateKeyPair
    - ExtMath_IsZero
    - CRYPT_ECC_NUM
    - CRYPT_INT_VAR
    - ExtEcc_PointX
    - ExtMath_Mod
    - ExtEcc_CurveGetCurveId
    - ExtMath_ModMult
    - CRYPT_POINT_VAR
    - TpmEcc_AdjustEcdsaDigest
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TpmEcc_SignEcdsa(Crypt_Int*            bnR,   // OUT: 'r' component
      of the signature\n                 Crypt_Int*            bnS,   // OUT: 's'
      component of the signature\n                 const Crypt_EccCurve* E,     //
      IN: the curve used in the signature\n                                              //
      \    process\n                 Crypt_Int*          bnD,     // IN: private signing
      key\n                 const TPM2B_DIGEST* digest,  // IN: the digest to sign\n
      \                RAND_STATE*         rand     // IN: used in debug of signing\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:195,1
    - Dst: BigInitialized
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:200,1
    - Dst: EC_KEY_new
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:202,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:205,1
    - Dst: EC_KEY_set_group
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:207,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:208,1
    - Dst: EC_KEY_set_private_key
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:210,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:211,1
    - Dst: ECDSA_do_sign
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:213,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:215,1
    - Dst: ECDSA_SIG_get0
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:217,1
    - Dst: OsslToTpmBn
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:218,1
    - Dst: OsslToTpmBn
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:219,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:224,1
    - Dst: EC_KEY_free
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:225,1
    - Dst: ECDSA_SIG_free
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:226,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - bnR
    - bnS
    - E
    - bnD
    - digest
    - LIBTPMS_ATTR_UNUSED
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_EccCurve*
    - Crypt_Int*
    - TPM2B_DIGEST*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 229
    functionName: TpmEcc_SignEcdsa
    functionSourceFile: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c
    functionUses: 0
    functionsReached:
    - BN_clear_free
    - EC_KEY_set_group
    - ECDSA_SIG_get0
    - BigInitialized
    - EC_KEY_set_private_key
    - EC_KEY_new
    - ECDSA_SIG_free
    - ERROR_EXIT
    - BN_new
    - OsslToTpmBn
    - EC_KEY_free
    - ECDSA_do_sign
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TpmEcc_SignEcdsa(Crypt_Int*            bnR,   // OUT: 'r' component
      of the signature\n\t\t Crypt_Int*            bnS,   // OUT: 's' component of
      the signature\n\t\t const Crypt_EccCurve* E,     // IN: the curve used in the
      signature\n\t\t //     process\n\t\t Crypt_Int*          bnD,     // IN: private
      signing key\n\t\t const TPM2B_DIGEST* digest,  // IN: the digest to sign\n\t\t
      RAND_STATE*         rand LIBTPMS_ATTR_UNUSED  // IN: used in debug of signing\n\t\t
      )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_INT_VAR
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:250,1
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:251,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:252,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:253,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:254,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:255,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:256,1
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:256,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:259,1
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:260,1
    - Dst: TpmEcc_AdjustEcdsaDigest
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:265,1
    - Dst: ExtMath_ModInverse
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:274,1
    - Dst: ExtMath_ModMult
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:277,1
    - Dst: ExtMath_ModMult
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:278,1
    - Dst: TpmEcc_PointMult
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:282,1
    - Dst: ExtEcc_CurveGetG
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:283,1
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:283,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:287,1
    - Dst: ExtEcc_PointX
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:287,1
    - Dst: ExtMath_Mod
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:288,1
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:290,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - bnR
    - bnS
    - E
    - ecQ
    - digest
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_EccCurve*
    - Crypt_Point*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 296
    functionName: TpmEcc_ValidateSignatureEcdsa
    functionSourceFile: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - ExtMath_Copy
    - ExtEcc_CurveGetOrder
    - ExtMath_ModInverse
    - ExtMath_UnsignedCmp
    - CRYPT_ECC_NUM
    - CRYPT_INT_VAR
    - ExtMath_ModMult
    - TpmEcc_PointMult
    - ExtEcc_CurveGetCurveId
    - ExtEcc_CurveGetG
    - ExtEcc_PointX
    - CRYPT_POINT_VAR
    - ExtMath_Mod
    - TpmEcc_AdjustEcdsaDigest
    - RuntimeProfileRequiresAttributeFlags
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TpmEcc_ValidateSignatureEcdsa(\n    Crypt_Int*            bnR,
      \ // IN: 'r' component of the signature\n    Crypt_Int*            bnS,  //
      IN: 's' component of the signature\n    const Crypt_EccCurve* E,    // IN: the
      curve used in the signature\n                                //     process\n
      \   const Crypt_Point*  ecQ,    // IN: the public point of the key\n    const
      TPM2B_DIGEST* digest  // IN: the digest that was signed\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:312,1
    - Dst: BN_new
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:313,1
    - Dst: EcPointInitialized
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:314,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:317,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:319,1
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:320,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:322,1
    - Dst: BigInitialized
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:324,1
    - Dst: BigInitialized
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:325,1
    - Dst: ECDSA_SIG_new
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:327,1
    - Dst: EC_KEY_new
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:328,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:331,1
    - Dst: EC_KEY_set_group
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:333,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:334,1
    - Dst: EC_KEY_set_public_key
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:336,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:337,1
    - Dst: ECDSA_SIG_set0
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:339,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:340,1
    - Dst: ECDSA_do_verify
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:346,1
    - Dst: EC_KEY_free
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:360,1
    - Dst: ECDSA_SIG_free
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:361,1
    - Dst: EC_POINT_clear_free
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:362,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:363,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c:364,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 5
    argNames:
    - bnR
    - bnS
    - E
    - ecQ
    - digest
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_EccCurve*
    - Crypt_Point*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 367
    functionName: TpmEcc_ValidateSignatureEcdsa
    functionSourceFile: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - ECDSA_SIG_set0
    - EC_POINT_clear_free
    - BN_clear_free
    - EC_KEY_set_group
    - BigInitialized
    - EC_KEY_set_public_key
    - EcPointInitialized
    - EC_KEY_new
    - ECDSA_do_verify
    - ECDSA_SIG_free
    - ERROR_EXIT
    - BN_new
    - EC_KEY_free
    - ECDSA_SIG_new
    - RuntimeProfileRequiresAttributeFlags
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TpmEcc_ValidateSignatureEcdsa(\n\t\t\t      Crypt_Int*            bnR,
      \ // IN: 'r' component of the signature\n\t\t\t      Crypt_Int*            bnS,
      \ // IN: 's' component of the signature\n\t\t\t      const Crypt_EccCurve* E,
      \   // IN: the curve used in the signature\n\t\t\t      //     process\n\t\t\t
      \     const Crypt_Point*  ecQ,    // IN: the public point of the key\n\t\t\t
      \     const TPM2B_DIGEST* digest  // IN: the digest that was signed\n\t\t\t
      \     )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/libtpms/src/tpm2/Clock.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - clk_id
    argTypes:
    - clockid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 110
    functionName: ClockGetTime
    functionSourceFile: /src/libtpms/src/tpm2/Clock.c
    functionUses: 0
    functionsReached:
    - clock_gettime
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t ClockGetTime(\n               clockid_t clk_id\n               )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ClockGetTime
      Src: /src/libtpms/src/tpm2/Clock.c:117,1
    - Dst: ClockGetTime
      Src: /src/libtpms/src/tpm2/Clock.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - backthen
    - timesAreRealtime
    argTypes:
    - UINT64
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 131
    functionName: ClockAdjustPostResume
    functionSourceFile: /src/libtpms/src/tpm2/Clock.c
    functionUses: 0
    functionsReached:
    - ClockGetTime
    linkageType: ''
    returnType: void
    signature: void ClockAdjustPostResume(UINT64 backthen, BOOL timesAreRealtime)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: _plat__TimerReset
    functionSourceFile: /src/libtpms/src/tpm2/Clock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__TimerReset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: _plat__TimerRestart
    functionSourceFile: /src/libtpms/src/tpm2/Clock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__TimerRestart(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _ftime
      Src: /src/libtpms/src/tpm2/Clock.c:183,1
    - Dst: clock_gettime
      Src: /src/libtpms/src/tpm2/Clock.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 208
    functionName: _plat__RealTime
    functionSourceFile: /src/libtpms/src/tpm2/Clock.c
    functionUses: 1
    functionsReached:
    - clock_gettime
    - _ftime
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__RealTime(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _plat__RealTime
      Src: /src/libtpms/src/tpm2/Clock.c:235,1
    - Dst: clock
      Src: /src/libtpms/src/tpm2/Clock.c:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 289
    functionName: _plat__TimerRead
    functionSourceFile: /src/libtpms/src/tpm2/Clock.c
    functionUses: 0
    functionsReached:
    - _plat__RealTime
    - clock
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__TimerRead(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: _plat__TimerWasReset
    functionSourceFile: /src/libtpms/src/tpm2/Clock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__TimerWasReset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: _plat__TimerWasStopped
    functionSourceFile: /src/libtpms/src/tpm2/Clock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__TimerWasStopped(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - adjust
    argTypes:
    - _plat__ClockAdjustStep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 356
    functionName: _plat__ClockRateAdjust
    functionSourceFile: /src/libtpms/src/tpm2/Clock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__ClockRateAdjust(_plat__ClockAdjustStep adjust)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Locality.c:77,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Locality.c:81,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Locality.c:84,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Locality.c:87,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Locality.c:90,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Locality.c:93,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Locality.c:96,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - locality
    argTypes:
    - UINT8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 101
    functionName: LocalityGetAttributes
    functionSourceFile: /src/libtpms/src/tpm2/Locality.c
    functionUses: 1
    functionsReached:
    - MemorySet
    - pAssert
    - SET_ATTRIBUTE
    linkageType: ''
    returnType: TPMA_LOCALITY
    signature: 'TPMA_LOCALITY LocalityGetAttributes(UINT8 locality  // IN: locality
      value

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:121,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:124,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - bs
    - has_block
    - buffer
    - size
    argTypes:
    - block_skip_t*
    - BOOL
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 131
    functionName: block_skip_write_push
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - pAssert
    - BOOL_Marshal
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 block_skip_write_push(block_skip_t *bs, BOOL has_block,\n                      BYTE
      **buffer, INT32 *size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:145,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bs
    - size
    argTypes:
    - block_skip_t*
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: block_skip_write_pop
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - pAssert
    - UINT16_Marshal
    linkageType: ''
    returnType: void
    signature: void block_skip_write_pop(block_skip_t *bs, INT32 *size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:168,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:171,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:175,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 6
    argNames:
    - needs_block
    - buffer
    - size
    - name
    - field
    - skip_code
    argTypes:
    - BOOL
    - BYTE**
    - INT32*
    - char*
    - char*
    - BOOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 188
    functionName: block_skip_read
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPMLIB_LogTPM2Error
    - UINT16_Unmarshal
    - BOOL_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC block_skip_read(BOOL needs_block, BYTE **buffer, INT32 *size,\n
      \               const char *name, const char *field,\n                BOOL *skip_code)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - HAS_BLOCK
    - ','
    - BUFFER
    - ','
    - POS
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: BLOCK_SKIP_WRITE_PUSH
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_SKIP_WRITE_PUSH(HAS_BLOCK, BUFFER, POS)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - SIZE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: BLOCK_SKIP_WRITE_POP
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_SKIP_WRITE_POP(SIZE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - SKIP_MARK
    - ','
    - NEEDS_BLOCK
    - ','
    - BUFFER
    - ','
    - SIZE
    - ','
    - NAME
    - ','
    - FIELD
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 213
    functionName: BLOCK_SKIP_READ
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_SKIP_READ(SKIP_MARK, NEEDS_BLOCK, BUFFER, SIZE, NAME, FIELD)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bits
    argTypes:
    - long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 223
    functionName: _ffsll
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int _ffsll(long long bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - boolean
    - buffer
    - size
    argTypes:
    - BOOL*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: BOOL_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 1
    functionsReached:
    - UINT8_Marshal
    linkageType: ''
    returnType: UINT8
    signature: UINT8 BOOL_Marshal(BOOL *boolean, BYTE **buffer, INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - boolean
    - buffer
    - size
    argTypes:
    - BOOL*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 250
    functionName: BOOL_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 1
    functionsReached:
    - UINT8_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC BOOL_Unmarshal(BOOL *boolean, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - SEED_COMPAT_LEVEL*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: SEED_COMPAT_LEVEL_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT8_Marshal
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 SEED_COMPAT_LEVEL_Marshal(SEED_COMPAT_LEVEL *source,\n                          BYTE
      **buffer, INT32 *size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:266,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - source
    - buffer
    - size
    - name
    argTypes:
    - SEED_COMPAT_LEVEL*
    - BYTE**
    - INT32*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 273
    functionName: SEED_COMPAT_LEVEL_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPMLIB_LogTPM2Error
    - UINT8_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC SEED_COMPAT_LEVEL_Unmarshal(SEED_COMPAT_LEVEL *source,\n                            BYTE
      **buffer, INT32 *size,\n                            const char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/libtpms/src/tpm2/NVMarshal.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - TPM2B*
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 282
    functionName: TPM2B_Cmp
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int TPM2B_Cmp(const TPM2B *t1, const TPM2B *t2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_PROOF*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: TPM2B_PROOF_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_PROOF_Marshal(TPM2B_PROOF *source, BYTE **buffer, INT32
      *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_PROOF*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 301
    functionName: TPM2B_PROOF_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_PROOF_Unmarshal(TPM2B_PROOF *target, BYTE **buffer, INT32
      *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/libtpms/src/tpm2/NVMarshal.c:313,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:314,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/NVMarshal.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - char*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 325
    functionName: String_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    - UINT16_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 String_Marshal(const char *source, BYTE **buffer, INT32 *size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:336,1
    - Dst: malloc
      Src: /src/libtpms/src/tpm2/NVMarshal.c:342,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/NVMarshal.c:350,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - char**
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 357
    functionName: String_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - malloc
    - UINT16_Unmarshal
    - memcpy
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC String_Unmarshal(char **target, BYTE **buffer, INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:366,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - data
    - exp
    - buffer
    - size
    - msg
    argTypes:
    - UINT32*
    - UINT32
    - BYTE**
    - INT32*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 374
    functionName: UINT32_Unmarshal_Check
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPMLIB_LogTPM2Error
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC UINT32_Unmarshal_Check(UINT32 *data, UINT32 exp, BYTE **buffer,
      INT32 *size,\n                       const char *msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - t
    - version
    - magic
    - min_version
    argTypes:
    - NV_HEADER*
    - UINT16
    - UINT32
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 382
    functionName: NV_HEADER_INIT
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NV_HEADER_INIT(NV_HEADER *t, UINT16 version, UINT32 magic, UINT16
      min_version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_INIT
      Src: /src/libtpms/src/tpm2/NVMarshal.c:391,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:393,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:394,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - buffer
    - size
    - version
    - magic
    - min_version
    argTypes:
    - BYTE**
    - INT32*
    - UINT16
    - UINT32
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 399
    functionName: NV_HEADER_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - UINT32_Marshal
    - NV_HEADER_INIT
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 NV_HEADER_Marshal(BYTE **buffer, INT32 *size, UINT16 version,
      UINT32 magic,\n                  UINT16 min_version)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:408,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:411,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:415,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:423,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:427,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 6
    argNames:
    - data
    - buffer
    - size
    - cur_version
    - exp_magic
    - verbose
    argTypes:
    - NV_HEADER*
    - BYTE**
    - INT32*
    - UINT16
    - UINT32
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 436
    functionName: NV_HEADER_UnmarshalVerbose
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPMLIB_LogTPM2Error
    - UINT16_Unmarshal
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NV_HEADER_UnmarshalVerbose(NV_HEADER *data, BYTE **buffer,
      INT32 *size,\n                           UINT16 cur_version, UINT32 exp_magic,
      BOOL verbose)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_UnmarshalVerbose
      Src: /src/libtpms/src/tpm2/NVMarshal.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - data
    - buffer
    - size
    - cur_version
    - exp_magic
    argTypes:
    - NV_HEADER*
    - BYTE**
    - INT32*
    - UINT16
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 444
    functionName: NV_HEADER_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - NV_HEADER_UnmarshalVerbose
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NV_HEADER_Unmarshal(NV_HEADER *data, BYTE **buffer, INT32 *size,\n
      \                   UINT16 cur_version, UINT32 exp_magic)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:454,1
    - Dst: TPMS_NV_PUBLIC_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:458,1
    - Dst: TPM2B_AUTH_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:459,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:461,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - NV_INDEX*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 469
    functionName: NV_INDEX_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_NV_PUBLIC_Marshal
    - NV_HEADER_Marshal
    - BLOCK_SKIP_WRITE_POP
    - BLOCK_SKIP_WRITE_PUSH
    - TPM2B_AUTH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 NV_INDEX_Marshal(NV_INDEX *data, BYTE **buffer, INT32 *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:478,1
    - Dst: TPMS_NV_PUBLIC_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:483,1
    - Dst: TPM2B_AUTH_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:486,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:492,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - NV_INDEX*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 471
    functionDepth: 3
    functionLinenumber: 471
    functionLinenumberEnd: 498
    functionName: NV_INDEX_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_AUTH_Unmarshal
    - NV_HEADER_Unmarshal
    - TPMS_NV_PUBLIC_Unmarshal
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC NV_INDEX_Unmarshal(NV_INDEX *data, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:510,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:512,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:513,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:516,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:517,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:519,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:520,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:522,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:525,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - DRBG_STATE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 502
    functionDepth: 2
    functionLinenumber: 502
    functionLinenumberEnd: 533
    functionName: DRBG_STATE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - Array_Marshal
    - UINT64_Marshal
    - NV_HEADER_Marshal
    - ARRAY_SIZE
    - BLOCK_SKIP_WRITE_PUSH
    - BLOCK_SKIP_WRITE_POP
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 DRBG_STATE_Marshal(DRBG_STATE *data, BYTE **buffer, INT32 *size)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:544,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:549,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:552,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:556,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:559,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:560,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:562,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:567,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:571,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:574,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:575,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:577,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:582,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:583,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:590,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - DRBG_STATE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 597
    functionName: DRBG_STATE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - Array_Unmarshal
    - NV_HEADER_Unmarshal
    - UINT64_Unmarshal
    - ARRAY_SIZE
    - UINT16_Unmarshal
    - UINT32_Unmarshal
    - TPMLIB_LogTPM2Error
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC DRBG_STATE_Unmarshal(DRBG_STATE *data, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:606,1
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:609,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:613,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:617,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:618,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:621,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - PCR_POLICY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 629
    functionName: PCR_POLICY_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - TPM_ALG_ID_Marshal
    - NV_HEADER_Marshal
    - ARRAY_SIZE
    - TPM2B_DIGEST_Marshal
    - BLOCK_SKIP_WRITE_POP
    - BLOCK_SKIP_WRITE_PUSH
    linkageType: ''
    returnType: UINT16
    signature: UINT16 PCR_POLICY_Marshal(PCR_POLICY *data, BYTE **buffer, INT32 *size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:640,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:645,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:649,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:650,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:652,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:659,1
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:663,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:666,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:673,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - PCR_POLICY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 631
    functionDepth: 3
    functionLinenumber: 631
    functionLinenumberEnd: 679
    functionName: PCR_POLICY_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - NV_HEADER_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    - ARRAY_SIZE
    - UINT16_Unmarshal
    - TPM_ALG_ID_Unmarshal
    - TPMLIB_LogTPM2Error
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC PCR_POLICY_Unmarshal(PCR_POLICY *data, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:691,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:693,1
    - Dst: UINT8_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:694,1
    - Dst: DRBG_STATE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:696,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:703,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:706,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:707,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:708,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:711,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:713,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - ORDERLY_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 721
    functionName: ORDERLY_DATA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT8_Marshal
    - UINT64_Marshal
    - NV_HEADER_Marshal
    - DRBG_STATE_Marshal
    - BLOCK_SKIP_WRITE_POP
    - BLOCK_SKIP_WRITE_PUSH
    linkageType: ''
    returnType: UINT16
    signature: UINT16 ORDERLY_DATA_Marshal(ORDERLY_DATA *data, BYTE **buffer, INT32
      *size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:731,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:735,1
    - Dst: UINT8_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:738,1
    - Dst: DRBG_STATE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:742,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:751,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:756,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:759,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:762,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:770,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - ORDERLY_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 723
    functionDepth: 4
    functionLinenumber: 723
    functionLinenumberEnd: 777
    functionName: ORDERLY_DATA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - NV_HEADER_Unmarshal
    - UINT64_Unmarshal
    - UINT8_Unmarshal
    - DRBG_STATE_Unmarshal
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC ORDERLY_DATA_Unmarshal(ORDERLY_DATA *data, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:789,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:793,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:797,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:800,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:801,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:806,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:809,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:810,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:815,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:818,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:819,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:824,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:827,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:828,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:833,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:836,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:837,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:846,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:848,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - PCR_SAVE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 781
    functionDepth: 2
    functionLinenumber: 781
    functionLinenumberEnd: 856
    functionName: PCR_SAVE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - TPM_ALG_ID_Marshal
    - Array_Marshal
    - NV_HEADER_Marshal
    - BLOCK_SKIP_WRITE_POP
    - BLOCK_SKIP_WRITE_PUSH
    linkageType: ''
    returnType: UINT16
    signature: UINT16 PCR_SAVE_Marshal(PCR_SAVE *data, BYTE **buffer, INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:873,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - pcrAllocated
    argTypes:
    - TPML_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 884
    functionName: pcrbanks_algs_active
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPMLIB_LogTPM2Error
    linkageType: ''
    returnType: UINT64
    signature: UINT64 pcrbanks_algs_active(const TPML_PCR_SELECTION *pcrAllocated)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: pcrbanks_algs_active
      Src: /src/libtpms/src/tpm2/NVMarshal.c:896,1
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:899,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:904,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:908,1
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:916,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:959,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:968,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:971,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:977,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:983,1
    - Dst: _ffsll
      Src: /src/libtpms/src/tpm2/NVMarshal.c:984,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:991,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 4
    argNames:
    - data
    - buffer
    - size
    - pcrAllocated
    argTypes:
    - PCR_SAVE*
    - BYTE**
    - INT32*
    - TPML_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 886
    functionDepth: 3
    functionLinenumber: 886
    functionLinenumberEnd: 998
    functionName: PCR_SAVE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - Array_Unmarshal
    - NV_HEADER_Unmarshal
    - _ffsll
    - UINT16_Unmarshal
    - TPM_ALG_ID_Unmarshal
    - pcrbanks_algs_active
    - TPMLIB_LogTPM2Error
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC PCR_SAVE_Unmarshal(PCR_SAVE *data, BYTE **buffer, INT32 *size,\n
      \                  const TPML_PCR_SELECTION *pcrAllocated)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1013,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1018,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1021,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1022,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1027,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1030,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1031,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1036,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1039,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1040,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1045,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1048,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1049,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1054,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1057,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1058,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1067,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1069,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1072,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - PCR*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1005
    functionDepth: 2
    functionLinenumber: 1005
    functionLinenumberEnd: 1077
    functionName: PCR_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - TPM_ALG_ID_Marshal
    - Array_Marshal
    - NV_HEADER_Marshal
    - BLOCK_SKIP_WRITE_POP
    - BLOCK_SKIP_WRITE_PUSH
    linkageType: ''
    returnType: UINT16
    signature: UINT16 PCR_Marshal(PCR *data, BYTE **buffer, INT32 *size)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: pcrbanks_algs_active
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1089,1
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1092,1
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1098,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1141,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1150,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1153,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1159,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1165,1
    - Dst: _ffsll
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1166,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1173,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 4
    argNames:
    - data
    - buffer
    - size
    - pcrAllocated
    argTypes:
    - PCR*
    - BYTE**
    - INT32*
    - TPML_PCR_SELECTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1079
    functionDepth: 3
    functionLinenumber: 1079
    functionLinenumberEnd: 1180
    functionName: PCR_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - Array_Unmarshal
    - NV_HEADER_Unmarshal
    - _ffsll
    - UINT16_Unmarshal
    - TPM_ALG_ID_Unmarshal
    - pcrbanks_algs_active
    - TPMLIB_LogTPM2Error
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC PCR_Unmarshal(PCR *data, BYTE **buffer, INT32 *size,\n              const
      TPML_PCR_SELECTION *pcrAllocated)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1193,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1196,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1197,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1199,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1202,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - PCR_AUTHVALUE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1210
    functionName: PCR_AUTHVALUE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - NV_HEADER_Marshal
    - ARRAY_SIZE
    - TPM2B_DIGEST_Marshal
    - BLOCK_SKIP_WRITE_POP
    - BLOCK_SKIP_WRITE_PUSH
    linkageType: ''
    returnType: UINT16
    signature: UINT16 PCR_AUTHVALUE_Marshal(PCR_AUTHVALUE *data, BYTE **buffer, INT32
      *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1221,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1226,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1229,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1230,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1232,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1236,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1237,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1244,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - PCR_AUTHVALUE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1212
    functionDepth: 3
    functionLinenumber: 1212
    functionLinenumberEnd: 1251
    functionName: PCR_AUTHVALUE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - NV_HEADER_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    - ARRAY_SIZE
    - UINT16_Unmarshal
    - TPMLIB_LogTPM2Error
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC PCR_AUTHVALUE_Unmarshal(PCR_AUTHVALUE *data, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1262,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1265,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1266,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1267,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1268,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1269,1
    - Dst: TPM2B_AUTH_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1270,1
    - Dst: PCR_SAVE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1271,1
    - Dst: PCR_AUTHVALUE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1272,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1274,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - STATE_CLEAR_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1256
    functionDepth: 3
    functionLinenumber: 1256
    functionLinenumberEnd: 1282
    functionName: STATE_CLEAR_DATA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - NV_HEADER_Marshal
    - BLOCK_SKIP_WRITE_PUSH
    - PCR_AUTHVALUE_Marshal
    - TPM2B_DIGEST_Marshal
    - PCR_SAVE_Marshal
    - BLOCK_SKIP_WRITE_POP
    - TPM2B_AUTH_Marshal
    - BOOL_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 STATE_CLEAR_DATA_Marshal(STATE_CLEAR_DATA *data, BYTE **buffer,
      INT32 *size)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1291,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1296,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1299,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1302,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1305,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1308,1
    - Dst: TPM2B_AUTH_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1311,1
    - Dst: PCR_SAVE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1314,1
    - Dst: PCR_AUTHVALUE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1317,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1323,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - STATE_CLEAR_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1284
    functionDepth: 4
    functionLinenumber: 1284
    functionLinenumberEnd: 1330
    functionName: STATE_CLEAR_DATA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_AUTH_Unmarshal
    - NV_HEADER_Unmarshal
    - PCR_AUTHVALUE_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    - UINT16_Unmarshal
    - BOOL_Unmarshal
    - PCR_SAVE_Unmarshal
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC STATE_CLEAR_DATA_Unmarshal(STATE_CLEAR_DATA *data, BYTE **buffer,
      INT32 *size)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1344,1
    - Dst: TPM2B_PROOF_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1349,1
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1352,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1355,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1358,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1363,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1366,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1367,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1369,1
    - Dst: UINT8_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1378,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1388,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1391,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1395,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1403,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1406,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1410,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1413,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1422,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1427,1
    - Dst: TPM2B_AUTH_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1430,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1434,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1438,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1444,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1456,1
    - Dst: SEED_COMPAT_LEVEL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1459,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1464,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 95
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - STATE_RESET_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1335
    functionDepth: 3
    functionLinenumber: 1335
    functionLinenumberEnd: 1473
    functionName: STATE_RESET_DATA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - Array_Unmarshal
    - TPM2B_AUTH_Unmarshal
    - NV_HEADER_Unmarshal
    - TPM2B_Unmarshal
    - UINT64_Unmarshal
    - UINT8_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    - ARRAY_SIZE
    - UINT32_Unmarshal
    - TPM2B_PROOF_Unmarshal
    - UINT16_Unmarshal
    - SEED_COMPAT_LEVEL_Unmarshal
    - TPMLIB_LogTPM2Error
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC STATE_RESET_DATA_Unmarshal(STATE_RESET_DATA *data, BYTE **buffer,
      INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1484,1
    - Dst: TPM2B_PROOF_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1487,1
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1488,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1489,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1490,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1492,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1493,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1495,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1501,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1503,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1504,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1506,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1507,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1513,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1516,1
    - Dst: TPM2B_AUTH_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1517,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1520,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1521,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1524,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1526,1
    - Dst: SEED_COMPAT_LEVEL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1527,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1530,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1533,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - STATE_RESET_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1475
    functionDepth: 2
    functionLinenumber: 1475
    functionLinenumberEnd: 1539
    functionName: STATE_RESET_DATA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_PROOF_Marshal
    - UINT16_Marshal
    - Array_Marshal
    - UINT64_Marshal
    - NV_HEADER_Marshal
    - ARRAY_SIZE
    - TPM2B_Marshal
    - BLOCK_SKIP_WRITE_PUSH
    - SEED_COMPAT_LEVEL_Marshal
    - TPM2B_DIGEST_Marshal
    - BLOCK_SKIP_WRITE_POP
    - UINT32_Marshal
    - TPM2B_AUTH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 STATE_RESET_DATA_Marshal(STATE_RESET_DATA *data, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1550,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1555,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1561,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1563,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1569,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - ci_prime_t*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1543
    functionDepth: 2
    functionLinenumber: 1543
    functionLinenumberEnd: 1577
    functionName: ci_prime_t_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - UINT64_Marshal
    - NV_HEADER_Marshal
    - BLOCK_SKIP_WRITE_PUSH
    - BLOCK_SKIP_WRITE_POP
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 ci_prime_t_Marshal(ci_prime_t *data, BYTE **buffer, INT32 *size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1589,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1594,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1597,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1603,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1615,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1635,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - ci_prime_t*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1579
    functionDepth: 3
    functionLinenumber: 1579
    functionLinenumberEnd: 1643
    functionName: ci_prime_t_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - NV_HEADER_Unmarshal
    - ARRAY_SIZE
    - UINT32_Unmarshal
    - UINT16_Unmarshal
    - TPMLIB_LogTPM2Error
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC ci_prime_t_Unmarshal(ci_prime_t *data, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1653,1
    - Dst: ci_prime_t_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1659,1
    - Dst: ci_prime_t_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1660,1
    - Dst: ci_prime_t_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1661,1
    - Dst: ci_prime_t_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1662,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1665,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - privateExponent_t*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1647
    functionDepth: 3
    functionLinenumber: 1647
    functionLinenumberEnd: 1673
    functionName: privateExponent_t_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - NV_HEADER_Marshal
    - BLOCK_SKIP_WRITE_PUSH
    - ci_prime_t_Marshal
    - BLOCK_SKIP_WRITE_POP
    linkageType: ''
    returnType: UINT16
    signature: UINT16 privateExponent_t_Marshal(privateExponent_t *data, BYTE **buffer,
      INT32 *size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1682,1
    - Dst: ci_prime_t_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1691,1
    - Dst: ci_prime_t_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1694,1
    - Dst: ci_prime_t_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1697,1
    - Dst: ci_prime_t_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1700,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1707,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - privateExponent_t*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1675
    functionDepth: 4
    functionLinenumber: 1675
    functionLinenumberEnd: 1715
    functionName: privateExponent_t_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - NV_HEADER_Unmarshal
    - BLOCK_SKIP_READ
    - ci_prime_t_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC privateExponent_t_Unmarshal(privateExponent_t *data, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - HASH_STATE_TYPE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1717
    functionDepth: 1
    functionLinenumber: 1717
    functionLinenumberEnd: 1725
    functionName: HASH_STATE_TYPE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT8_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 HASH_STATE_TYPE_Marshal(HASH_STATE_TYPE *data, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - HASH_STATE_TYPE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1727
    functionDepth: 1
    functionLinenumber: 1727
    functionLinenumberEnd: 1731
    functionName: HASH_STATE_TYPE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT8_Unmarshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 HASH_STATE_TYPE_Unmarshal(HASH_STATE_TYPE *data, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - SHA_LONG*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1733
    functionDepth: 1
    functionLinenumber: 1733
    functionLinenumberEnd: 1737
    functionName: SHA_LONG_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 SHA_LONG_Marshal(SHA_LONG *data, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - SHA_LONG*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1739
    functionDepth: 1
    functionLinenumber: 1739
    functionLinenumberEnd: 1743
    functionName: SHA_LONG_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 SHA_LONG_Unmarshal(SHA_LONG *data, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1748,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - SHA_LONG64*
    - BYTE**
    - INT32*
    assertStmts:
    - condition: (sizeof(*data) == 8)
      pos:
        line_end: 1747
        line_start: 1747
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    constantsTouched: []
    func_position:
      end: 1750
      start: 1745
    functionDepth: 1
    functionLinenumber: 1745
    functionLinenumberEnd: 1750
    functionName: SHA_LONG64_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - assert
    - UINT64_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 SHA_LONG64_Marshal(SHA_LONG64 *data, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1755,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - SHA_LONG64*
    - BYTE**
    - INT32*
    assertStmts:
    - condition: (sizeof(*data) == 8)
      pos:
        line_end: 1754
        line_start: 1754
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    constantsTouched: []
    func_position:
      end: 1757
      start: 1752
    functionDepth: 1
    functionLinenumber: 1752
    functionLinenumberEnd: 1757
    functionName: SHA_LONG64_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - assert
    - UINT64_Unmarshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 SHA_LONG64_Unmarshal(SHA_LONG64 *data, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1771,1
    - Dst: SHA_LONG_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1774,1
    - Dst: SHA_LONG_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1775,1
    - Dst: SHA_LONG_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1776,1
    - Dst: SHA_LONG_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1777,1
    - Dst: SHA_LONG_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1778,1
    - Dst: SHA_LONG_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1779,1
    - Dst: SHA_LONG_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1780,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1784,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1785,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1788,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1790,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - tpmHashStateSHA1_t*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1764
    functionDepth: 2
    functionLinenumber: 1764
    functionLinenumberEnd: 1798
    functionName: tpmHashStateSHA1_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - Array_Marshal
    - NV_HEADER_Marshal
    - BLOCK_SKIP_WRITE_PUSH
    - BLOCK_SKIP_WRITE_POP
    - UINT32_Marshal
    - SHA_LONG_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 tpmHashStateSHA1_Marshal(tpmHashStateSHA1_t *data, BYTE **buffer,
      INT32 *size)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1808,1
    - Dst: SHA_LONG_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1814,1
    - Dst: SHA_LONG_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1817,1
    - Dst: SHA_LONG_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1820,1
    - Dst: SHA_LONG_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1823,1
    - Dst: SHA_LONG_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1826,1
    - Dst: SHA_LONG_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1829,1
    - Dst: SHA_LONG_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1832,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1836,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1840,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1846,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1850,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1856,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - tpmHashStateSHA1_t*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1800
    functionDepth: 3
    functionLinenumber: 1800
    functionLinenumberEnd: 1864
    functionName: tpmHashStateSHA1_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - Array_Unmarshal
    - NV_HEADER_Unmarshal
    - UINT16_Unmarshal
    - UINT32_Unmarshal
    - TPMLIB_LogTPM2Error
    - SHA_LONG_Unmarshal
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: UINT16
    signature: UINT16 tpmHashStateSHA1_Unmarshal(tpmHashStateSHA1_t *data, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1879,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1883,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1884,1
    - Dst: SHA_LONG_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1886,1
    - Dst: SHA_LONG_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1888,1
    - Dst: SHA_LONG_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1889,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1893,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1894,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1897,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1898,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1900,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - tpmHashStateSHA256_t*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1871
    functionDepth: 2
    functionLinenumber: 1871
    functionLinenumberEnd: 1908
    functionName: tpmHashStateSHA256_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - Array_Marshal
    - NV_HEADER_Marshal
    - ARRAY_SIZE
    - BLOCK_SKIP_WRITE_PUSH
    - BLOCK_SKIP_WRITE_POP
    - UINT32_Marshal
    - SHA_LONG_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 tpmHashStateSHA256_Marshal(tpmHashStateSHA256_t *data, BYTE
      **buffer, INT32 *size)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1919,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1925,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1928,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1929,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1931,1
    - Dst: SHA_LONG_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1935,1
    - Dst: SHA_LONG_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1938,1
    - Dst: SHA_LONG_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1941,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1945,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1949,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1955,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1959,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1962,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:1968,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - tpmHashStateSHA256_t*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1910
    functionDepth: 3
    functionLinenumber: 1910
    functionLinenumberEnd: 1976
    functionName: tpmHashStateSHA256_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - Array_Unmarshal
    - NV_HEADER_Unmarshal
    - ARRAY_SIZE
    - UINT16_Unmarshal
    - UINT32_Unmarshal
    - TPMLIB_LogTPM2Error
    - SHA_LONG_Unmarshal
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: UINT16
    signature: UINT16 tpmHashStateSHA256_Unmarshal(tpmHashStateSHA256_t *data, BYTE
      **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2003,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2006,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2007,1
    - Dst: SHA_LONG64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2009,1
    - Dst: SHA_LONG64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2011,1
    - Dst: SHA_LONG64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2012,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2015,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2016,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2018,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2019,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2021,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 4
    argNames:
    - data
    - buffer
    - size
    - hashAlg
    argTypes:
    - SHA512_CTX*
    - BYTE**
    - INT32*
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 1987
    functionDepth: 2
    functionLinenumber: 1987
    functionLinenumberEnd: 2029
    functionName: tpmHashStateSHA512_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - Array_Marshal
    - NV_HEADER_Marshal
    - ARRAY_SIZE
    - SHA_LONG64_Marshal
    - BLOCK_SKIP_WRITE_PUSH
    - BLOCK_SKIP_WRITE_POP
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 tpmHashStateSHA512_Marshal(SHA512_CTX *data, BYTE **buffer,
      INT32 *size,\n                           UINT16 hashAlg)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2048,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2053,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2056,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2057,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2059,1
    - Dst: SHA_LONG64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2063,1
    - Dst: SHA_LONG64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2066,1
    - Dst: SHA_LONG64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2069,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2073,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2077,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2083,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2086,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2089,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2095,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 4
    argNames:
    - data
    - buffer
    - size
    - hashAlg
    argTypes:
    - SHA512_CTX*
    - BYTE**
    - INT32*
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2031
    functionDepth: 3
    functionLinenumber: 2031
    functionLinenumberEnd: 2103
    functionName: tpmHashStateSHA512_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - Array_Unmarshal
    - NV_HEADER_Unmarshal
    - SHA_LONG64_Unmarshal
    - ARRAY_SIZE
    - UINT16_Unmarshal
    - UINT32_Unmarshal
    - TPMLIB_LogTPM2Error
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 tpmHashStateSHA512_Unmarshal(SHA512_CTX *data, BYTE **buffer,
      INT32 *size,\n                             UINT16 hashAlg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2116,1
    - Dst: tpmHashStateSHA1_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2123,1
    - Dst: tpmHashStateSHA256_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2128,1
    - Dst: tpmHashStateSHA512_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2133,1
    - Dst: tpmHashStateSHA512_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2139,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2147,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - data
    - buffer
    - size
    - hashAlg
    argTypes:
    - ANY_HASH_STATE*
    - BYTE**
    - INT32*
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2109
    functionDepth: 3
    functionLinenumber: 2109
    functionLinenumberEnd: 2155
    functionName: ANY_HASH_STATE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - tpmHashStateSHA512_Marshal
    - tpmHashStateSHA256_Marshal
    - NV_HEADER_Marshal
    - tpmHashStateSHA1_Marshal
    - BLOCK_SKIP_WRITE_POP
    - BLOCK_SKIP_WRITE_PUSH
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 ANY_HASH_STATE_Marshal(ANY_HASH_STATE *data, BYTE **buffer,
      INT32 *size,\n                       UINT16 hashAlg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2165,1
    - Dst: tpmHashStateSHA1_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2173,1
    - Dst: tpmHashStateSHA256_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2178,1
    - Dst: tpmHashStateSHA512_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2183,1
    - Dst: tpmHashStateSHA512_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2189,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2198,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - data
    - buffer
    - size
    - hashAlg
    argTypes:
    - ANY_HASH_STATE*
    - BYTE**
    - INT32*
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2206
      start: 2157
    functionDepth: 4
    functionLinenumber: 2157
    functionLinenumberEnd: 2206
    functionName: ANY_HASH_STATE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - NV_HEADER_Unmarshal
    - tpmHashStateSHA1_Unmarshal
    - tpmHashStateSHA256_Unmarshal
    - tpmHashStateSHA512_Unmarshal
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 ANY_HASH_STATE_Unmarshal(ANY_HASH_STATE *data, BYTE **buffer,
      INT32 *size,\n                         UINT16 hashAlg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2217,1
    - Dst: HASH_STATE_TYPE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2221,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2222,1
    - Dst: ANY_HASH_STATE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2224,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2226,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - HASH_STATE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2211
    functionDepth: 4
    functionLinenumber: 2211
    functionLinenumberEnd: 2234
    functionName: HASH_STATE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 1
    functionsReached:
    - TPM_ALG_ID_Marshal
    - HASH_STATE_TYPE_Marshal
    - ANY_HASH_STATE_Marshal
    - NV_HEADER_Marshal
    - BLOCK_SKIP_WRITE_POP
    - BLOCK_SKIP_WRITE_PUSH
    linkageType: ''
    returnType: UINT16
    signature: UINT16 HASH_STATE_Marshal(HASH_STATE *data, BYTE **buffer, INT32 *size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2243,1
    - Dst: HASH_STATE_TYPE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2248,1
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2251,1
    - Dst: CryptGetHashDef
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2254,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2256,1
    - Dst: ANY_HASH_STATE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2262,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2268,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - HASH_STATE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2275
      start: 2236
    functionDepth: 5
    functionLinenumber: 2236
    functionLinenumberEnd: 2275
    functionName: HASH_STATE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 1
    functionsReached:
    - NV_HEADER_Unmarshal
    - ANY_HASH_STATE_Unmarshal
    - HASH_STATE_TYPE_Unmarshal
    - CryptGetHashDef
    - TPM_ALG_ID_Unmarshal
    - TPMLIB_LogTPM2Error
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: UINT16
    signature: UINT16 HASH_STATE_Unmarshal(HASH_STATE *data, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - TPM2B_HASH_BLOCK*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2277
    functionDepth: 1
    functionLinenumber: 2277
    functionLinenumberEnd: 2285
    functionName: TPM2B_HASH_BLOCK_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_HASH_BLOCK_Marshal(TPM2B_HASH_BLOCK *data, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - TPM2B_HASH_BLOCK*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2287
    functionDepth: 1
    functionLinenumber: 2287
    functionLinenumberEnd: 2295
    functionName: TPM2B_HASH_BLOCK_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_HASH_BLOCK_Unmarshal(TPM2B_HASH_BLOCK *data, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_STATE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2302,1
    - Dst: TPM2B_HASH_BLOCK_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - HMAC_STATE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2297
    functionDepth: 5
    functionLinenumber: 2297
    functionLinenumberEnd: 2306
    functionName: HMAC_STATE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - HASH_STATE_Marshal
    - TPM2B_HASH_BLOCK_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 HMAC_STATE_Marshal(HMAC_STATE *data, BYTE **buffer, INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HASH_STATE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2314,1
    - Dst: TPM2B_HASH_BLOCK_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - HMAC_STATE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2308
    functionDepth: 6
    functionLinenumber: 2308
    functionLinenumberEnd: 2321
    functionName: HMAC_STATE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - HASH_STATE_Unmarshal
    - TPM2B_HASH_BLOCK_Unmarshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 HMAC_STATE_Unmarshal(HMAC_STATE *data, BYTE **buffer, INT32
      *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2334,1
    - Dst: TPMI_ALG_PUBLIC_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2336,1
    - Dst: TPMI_ALG_HASH_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2337,1
    - Dst: TPMA_OBJECT_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2338,1
    - Dst: TPM2B_AUTH_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2339,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2342,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2343,1
    - Dst: HASH_STATE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2345,1
    - Dst: HMAC_STATE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2349,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2352,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - HASH_OBJECT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2326
    functionDepth: 6
    functionLinenumber: 2326
    functionLinenumberEnd: 2360
    functionName: HASH_OBJECT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - HASH_STATE_Marshal
    - UINT16_Marshal
    - TPMA_OBJECT_Marshal
    - NV_HEADER_Marshal
    - TPMI_ALG_HASH_Marshal
    - ARRAY_SIZE
    - TPMI_ALG_PUBLIC_Marshal
    - HMAC_STATE_Marshal
    - BLOCK_SKIP_WRITE_PUSH
    - BLOCK_SKIP_WRITE_POP
    - TPM2B_AUTH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 HASH_OBJECT_Marshal(HASH_OBJECT *data, BYTE **buffer, INT32
      *size)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2371,1
    - Dst: TPMI_ALG_PUBLIC_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2375,1
    - Dst: TPMI_ALG_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2380,1
    - Dst: TPMA_OBJECT_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2383,1
    - Dst: TPM2B_AUTH_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2386,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2393,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2396,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2397,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2399,1
    - Dst: HASH_STATE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2405,1
    - Dst: HMAC_STATE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2409,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2416,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - HASH_OBJECT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2362
    functionDepth: 7
    functionLinenumber: 2362
    functionLinenumberEnd: 2424
    functionName: HASH_OBJECT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPMA_OBJECT_Unmarshal
    - TPM2B_AUTH_Unmarshal
    - NV_HEADER_Unmarshal
    - TPMI_ALG_HASH_Unmarshal
    - TPMI_ALG_PUBLIC_Unmarshal
    - HMAC_STATE_Unmarshal
    - ARRAY_SIZE
    - HASH_STATE_Unmarshal
    - UINT16_Unmarshal
    - TPMLIB_LogTPM2Error
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: UINT16
    signature: UINT16 HASH_OBJECT_Unmarshal(HASH_OBJECT *data, BYTE **buffer, INT32
      *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2432,1
    - Dst: TPM2B_AUTH_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2433,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2434,1
    - Dst: TPMU_SENSITIVE_COMPOSITE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2441,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2445,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2446,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMT_SENSITIVE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2451
      start: 2427
    functionDepth: 1
    functionLinenumber: 2427
    functionLinenumberEnd: 2451
    functionName: NV_TPMT_SENSITIVE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPM_ALG_ID_Marshal
    - pAssert
    - TPM2B_DIGEST_Marshal
    - TPMU_SENSITIVE_COMPOSITE_Marshal
    - TPM2B_AUTH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 NV_TPMT_SENSITIVE_Marshal(TPMT_SENSITIVE *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2461,1
    - Dst: TPM2B_AUTH_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2464,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2467,1
    - Dst: TPMU_SENSITIVE_COMPOSITE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2475,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2478,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2479,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2480,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMT_SENSITIVE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2485
      start: 2454
    functionDepth: 1
    functionLinenumber: 2454
    functionLinenumberEnd: 2485
    functionName: NV_TPMT_SENSITIVE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_AUTH_Unmarshal
    - pAssert
    - TPM2B_DIGEST_Unmarshal
    - TPMU_SENSITIVE_COMPOSITE_Unmarshal
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC NV_TPMT_SENSITIVE_Unmarshal(TPMT_SENSITIVE *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2501,1
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2511,1
    - Dst: TPMT_PUBLIC_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2517,1
    - Dst: NV_TPMT_SENSITIVE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2518,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2528,1
    - Dst: privateExponent_t_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2530,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2532,1
    - Dst: TPM2B_NAME_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2534,1
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2535,1
    - Dst: TPM2B_NAME_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2536,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2538,1
    - Dst: SEED_COMPAT_LEVEL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2539,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2542,1
    - Dst: TPMI_RH_HIERARCHY_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2547,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2549,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2550,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - data
    - buffer
    - size
    - RuntimeProfile
    argTypes:
    - OBJECT*
    - BYTE**
    - INT32*
    - struct RuntimeProfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2490
    functionDepth: 4
    functionLinenumber: 2490
    functionLinenumberEnd: 2555
    functionName: OBJECT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 4
    functionsReached:
    - privateExponent_t_Marshal
    - NV_TPMT_SENSITIVE_Marshal
    - TPMT_PUBLIC_Marshal
    - pAssert
    - NV_HEADER_Marshal
    - TPM_HANDLE_Marshal
    - TPMI_RH_HIERARCHY_Marshal
    - SEED_COMPAT_LEVEL_Marshal
    - TPM2B_NAME_Marshal
    - BLOCK_SKIP_WRITE_POP
    - BLOCK_SKIP_WRITE_PUSH
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 OBJECT_Marshal(OBJECT *data, BYTE **buffer, INT32 *size,\n
      \              struct RuntimeProfile *RuntimeProfile)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2568,1
    - Dst: TPMT_PUBLIC_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2573,1
    - Dst: NV_TPMT_SENSITIVE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2576,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2588,1
    - Dst: privateExponent_t_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2592,1
    - Dst: TPM2B_NAME_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2598,1
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2601,1
    - Dst: TPM2B_NAME_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2604,1
    - Dst: ObjectGetHierarchyFromAttributes
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2609,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2614,1
    - Dst: SEED_COMPAT_LEVEL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2617,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2623,1
    - Dst: TPMI_RH_HIERARCHY_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2628,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - OBJECT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2557
    functionDepth: 5
    functionLinenumber: 2557
    functionLinenumberEnd: 2634
    functionName: OBJECT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 3
    functionsReached:
    - NV_HEADER_Unmarshal
    - ObjectGetHierarchyFromAttributes
    - TPM_HANDLE_Unmarshal
    - TPM2B_NAME_Unmarshal
    - NV_TPMT_SENSITIVE_Unmarshal
    - TPMT_PUBLIC_Unmarshal
    - TPMI_RH_HIERARCHY_Unmarshal
    - privateExponent_t_Unmarshal
    - SEED_COMPAT_LEVEL_Unmarshal
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC OBJECT_Unmarshal(OBJECT *data, BYTE **buffer, INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2647,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2650,1
    - Dst: ObjectIsSequence
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2653,1
    - Dst: HASH_OBJECT_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2654,1
    - Dst: OBJECT_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2656,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2659,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - data
    - buffer
    - size
    - RuntimeProfile
    argTypes:
    - OBJECT*
    - BYTE**
    - INT32*
    - struct RuntimeProfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2667
      start: 2639
    functionDepth: 7
    functionLinenumber: 2639
    functionLinenumberEnd: 2667
    functionName: ANY_OBJECT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 3
    functionsReached:
    - ObjectIsSequence
    - HASH_OBJECT_Marshal
    - NV_HEADER_Marshal
    - BLOCK_SKIP_WRITE_PUSH
    - BLOCK_SKIP_WRITE_POP
    - OBJECT_Marshal
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 ANY_OBJECT_Marshal(OBJECT *data, BYTE **buffer, INT32 *size,\n
      \                  struct RuntimeProfile *RuntimeProfile)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_UnmarshalVerbose
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2677,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2682,1
    - Dst: ObjectIsSequence
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2686,1
    - Dst: HASH_OBJECT_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2687,1
    - Dst: OBJECT_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2689,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2695,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - data
    - buffer
    - size
    - verbose
    argTypes:
    - OBJECT*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2703
      start: 2669
    functionDepth: 8
    functionLinenumber: 2669
    functionLinenumberEnd: 2703
    functionName: ANY_OBJECT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 1
    functionsReached:
    - ObjectIsSequence
    - OBJECT_Unmarshal
    - NV_HEADER_UnmarshalVerbose
    - HASH_OBJECT_Unmarshal
    - UINT32_Unmarshal
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC ANY_OBJECT_Unmarshal(OBJECT *data, BYTE **buffer, INT32 *size,
      BOOL verbose)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2710,1
    - Dst: TPMU_SYM_KEY_BITS_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2711,1
    - Dst: TPMU_SYM_MODE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - TPMT_SYM_DEF*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2705
    functionDepth: 1
    functionLinenumber: 2705
    functionLinenumberEnd: 2715
    functionName: TPMT_SYM_DEF_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPMU_SYM_KEY_BITS_Marshal
    - UINT16_Marshal
    - TPMU_SYM_MODE_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMT_SYM_DEF_Marshal(TPMT_SYM_DEF *data, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2727,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2729,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2730,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2731,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2732,1
    - Dst: UINT8_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2736,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2737,1
    - Dst: UINT8_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2740,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2741,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2744,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2745,1
    - Dst: UINT8_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2746,1
    - Dst: TPMT_SYM_DEF_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2747,1
    - Dst: TPM2B_AUTH_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2748,1
    - Dst: TPM2B_NONCE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2749,1
    - Dst: MUST_BE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2751,1
    - Dst: TPM2B_NAME_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2752,1
    - Dst: MUST_BE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2753,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2754,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2756,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - SESSION*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2764
      start: 2720
    functionDepth: 2
    functionLinenumber: 2720
    functionLinenumberEnd: 2764
    functionName: SESSION_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - TPM2B_DIGEST_Marshal
    - UINT8_Marshal
    - BLOCK_SKIP_WRITE_POP
    - UINT64_Marshal
    - NV_HEADER_Marshal
    - BLOCK_SKIP_WRITE_PUSH
    - TPMT_SYM_DEF_Marshal
    - TPM2B_NONCE_Marshal
    - TPM2B_NAME_Marshal
    - MUST_BE
    - UINT32_Marshal
    - TPM2B_AUTH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 SESSION_Marshal(SESSION *data, BYTE **buffer, INT32 *size)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2774,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2778,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2781,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2784,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2787,1
    - Dst: UINT8_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2790,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2795,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2801,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2805,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2811,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2816,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2819,1
    - Dst: UINT8_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2822,1
    - Dst: TPMT_SYM_DEF_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2825,1
    - Dst: TPM2B_AUTH_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2828,1
    - Dst: TPM2B_NONCE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2831,1
    - Dst: TPM2B_NAME_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2834,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2837,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2843,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - SESSION*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2766
    functionDepth: 3
    functionLinenumber: 2766
    functionLinenumberEnd: 2850
    functionName: SESSION_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_AUTH_Unmarshal
    - NV_HEADER_Unmarshal
    - UINT64_Unmarshal
    - UINT8_Unmarshal
    - TPMT_SYM_DEF_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    - UINT32_Unmarshal
    - UINT16_Unmarshal
    - TPM2B_NAME_Unmarshal
    - TPMLIB_LogTPM2Error
    - BLOCK_SKIP_READ
    - TPM2B_NONCE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC SESSION_Unmarshal(SESSION *data, BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2861,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2865,1
    - Dst: SESSION_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2869,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2871,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - SESSION_SLOT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2855
    functionDepth: 3
    functionLinenumber: 2855
    functionLinenumberEnd: 2879
    functionName: SESSION_SLOT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - NV_HEADER_Marshal
    - BLOCK_SKIP_WRITE_POP
    - SESSION_Marshal
    - BLOCK_SKIP_WRITE_PUSH
    - BOOL_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 SESSION_SLOT_Marshal(SESSION_SLOT *data, BYTE **buffer, INT32*
      size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2888,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2892,1
    - Dst: SESSION_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2898,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2904,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - SESSION_SLOT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2881
    functionDepth: 4
    functionLinenumber: 2881
    functionLinenumberEnd: 2911
    functionName: SESSION_SLOT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - BLOCK_SKIP_READ
    - SESSION_Unmarshal
    - NV_HEADER_Unmarshal
    - BOOL_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC SESSION_SLOT_Unmarshal(SESSION_SLOT *data, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2932,1
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2937,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2939,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2942,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2944,1
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2946,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2948,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2950,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2958,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2962,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2966,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2970,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2973,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2975,1
    - Dst: TPM2B_AUTH_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2979,1
    - Dst: TPM2B_AUTH_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2981,1
    - Dst: ORDERLY_DATA_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2986,1
    - Dst: STATE_CLEAR_DATA_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2987,1
    - Dst: STATE_RESET_DATA_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2988,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2991,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:2993,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3001,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3008,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3009,1
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3012,1
    - Dst: TPMA_SESSION_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3013,1
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3014,1
    - Dst: TPM2B_NONCE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3015,1
    - Dst: TPM2B_AUTH_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3016,1
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3019,1
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3020,1
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3021,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3029,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3033,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3037,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3040,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3042,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3050,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3059,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3062,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3063,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3065,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3067,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3075,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3080,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3086,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3087,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3089,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3099,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3107,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3113,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3114,1
    - Dst: ANY_OBJECT_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3117,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3122,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3130,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3134,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3135,1
    - Dst: PCR_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3138,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3143,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3151,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3155,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3156,1
    - Dst: SESSION_SLOT_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3159,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3162,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3164,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3168,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3175,1
    - Dst: _rpc__Signal_GetTPMEstablished
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3178,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3179,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3187,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3190,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3191,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3192,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3196,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3204,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3208,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3210,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3214,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3216,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3217,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3218,1
    - Dst: ClockGetTime
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3220,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3221,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3223,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3226,1
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3227,1
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3228,1
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3229,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3231,1
    - Dst: ClockGetTime
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3233,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3234,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3236,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3237,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3238,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3240,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3243,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3244,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3245,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3249,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 137
    argCount: 3
    argNames:
    - buffer
    - size
    - RuntimeProfile
    argTypes:
    - BYTE**
    - INT32*
    - struct RuntimeProfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3254
      start: 2916
    functionDepth: 8
    functionLinenumber: 2916
    functionLinenumberEnd: 3254
    functionName: VolatileState_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 1
    functionsReached:
    - UINT16_Marshal
    - TPMA_SESSION_Marshal
    - NV_HEADER_Marshal
    - NvRead
    - ARRAY_SIZE
    - TPM2B_NONCE_Marshal
    - ANY_OBJECT_Marshal
    - TPM2B_AUTH_Marshal
    - STATE_RESET_DATA_Marshal
    - Array_Marshal
    - TPM_HANDLE_Marshal
    - UINT64_Marshal
    - STATE_CLEAR_DATA_Marshal
    - ClockGetTime
    - UINT32_Marshal
    - BOOL_Marshal
    - ORDERLY_DATA_Marshal
    - TPM2B_Marshal
    - TPM2B_DIGEST_Marshal
    - _rpc__Signal_GetTPMEstablished
    - SESSION_SLOT_Marshal
    - PCR_Marshal
    - BLOCK_SKIP_WRITE_POP
    - BLOCK_SKIP_WRITE_PUSH
    linkageType: ''
    returnType: UINT16
    signature: UINT16 VolatileState_Marshal(BYTE **buffer, INT32 *size, struct RuntimeProfile
      *RuntimeProfile)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3263,1
    - Dst: ClockGetTime
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3264,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3267,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3270,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3277
      start: 3256
    functionDepth: 1
    functionLinenumber: 3256
    functionLinenumberEnd: 3277
    functionName: VolatileState_TailV4_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT64_Unmarshal
    - ClockGetTime
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC VolatileState_TailV4_Unmarshal(BYTE **buffer, INT32 *size)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3288,1
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3291,1
    - Dst: TPM2B_Cmp
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3298,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3299,1
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3305,1
    - Dst: TPM2B_Cmp
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3312,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3313,1
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3319,1
    - Dst: TPM2B_Cmp
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3326,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3327,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3334
      start: 3279
    functionDepth: 1
    functionLinenumber: 3279
    functionLinenumberEnd: 3334
    functionName: VolatileState_TailV3_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - NvRead
    - TPM2B_Cmp
    - TPMLIB_LogTPM2Error
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC VolatileState_TailV3_Unmarshal(BYTE **buffer, INT32 *size)
  - BBCount: 80
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3352,1
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3356,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3359,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3362,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3365,1
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3368,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3371,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3374,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3384,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3389,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3397,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3400,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3403,1
    - Dst: TPM2B_AUTH_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3407,1
    - Dst: TPM2B_AUTH_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3411,1
    - Dst: ORDERLY_DATA_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3415,1
    - Dst: STATE_CLEAR_DATA_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3418,1
    - Dst: STATE_RESET_DATA_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3421,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3425,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3428,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3438,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3443,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3446,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3447,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3449,1
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3454,1
    - Dst: TPMA_SESSION_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3457,1
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3460,1
    - Dst: TPM2B_NONCE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3463,1
    - Dst: TPM2B_AUTH_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3466,1
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3471,1
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3474,1
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3477,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3487,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3492,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3498,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3512,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3524,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3529,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3532,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3546,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3552,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3556,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3559,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3560,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3562,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3566,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3569,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3588,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3593,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3596,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3597,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3599,1
    - Dst: ANY_OBJECT_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3603,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3617,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3622,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3625,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3626,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3628,1
    - Dst: PCR_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3632,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3646,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3651,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3654,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3655,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3657,1
    - Dst: SESSION_SLOT_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3662,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3666,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3670,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3678,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3684,1
    - Dst: _rpc__Signal_SetTPMEstablished
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3687,1
    - Dst: _rpc__Signal_ResetTPMEstablished
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3689,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3700,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3707,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3710,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3713,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3727,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3733,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3737,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3746,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3749,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3752,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3755,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3761,1
    - Dst: VolatileState_TailV3_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3764,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3767,1
    - Dst: VolatileState_TailV4_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3771,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3774,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3784,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3787,1
    - Dst: ClockAdjustPostResume
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3799,1
    CyclomaticComplexity: 113
    EdgeCount: 113
    ICount: 306
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3802
      start: 3336
    functionDepth: 9
    functionLinenumber: 3336
    functionLinenumberEnd: 3802
    functionName: VolatileState_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 1
    functionsReached:
    - NV_HEADER_Unmarshal
    - UINT64_Unmarshal
    - ARRAY_SIZE
    - UINT16_Unmarshal
    - UINT32_Unmarshal
    - Array_Unmarshal
    - TPMLIB_LogTPM2Error
    - ORDERLY_DATA_Unmarshal
    - TPMA_SESSION_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    - ClockAdjustPostResume
    - STATE_CLEAR_DATA_Unmarshal
    - VolatileState_TailV3_Unmarshal
    - STATE_RESET_DATA_Unmarshal
    - TPM2B_NONCE_Unmarshal
    - ANY_OBJECT_Unmarshal
    - TPM2B_AUTH_Unmarshal
    - SESSION_SLOT_Unmarshal
    - _rpc__Signal_ResetTPMEstablished
    - BLOCK_SKIP_READ
    - BOOL_Unmarshal
    - _rpc__Signal_SetTPMEstablished
    - PCR_Unmarshal
    - VolatileState_TailV4_Unmarshal
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC VolatileState_Unmarshal(BYTE **buffer, INT32 *size)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3977,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:3997,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 6
    argNames:
    - buffer
    - size
    - constant
    - name
    - cmp
    - struct_version
    argTypes:
    - BYTE**
    - INT32*
    - UINT32
    - char*
    - enum CompareOp
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4006
      start: 3967
    functionDepth: 1
    functionLinenumber: 3967
    functionLinenumberEnd: 4006
    functionName: UINT32_Unmarshal_CheckConstant
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPMLIB_LogTPM2Error
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC UINT32_Unmarshal_CheckConstant(BYTE **buffer, INT32 *size,
      UINT32 constant,\n                               const char *name,\n                               enum
      CompareOp cmp, UINT16 struct_version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4017,1
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4020,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4024,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4028,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4031,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4039
      start: 4012
    functionDepth: 2
    functionLinenumber: 4012
    functionLinenumberEnd: 4039
    functionName: PACompileConstants_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    - NV_HEADER_Marshal
    - ARRAY_SIZE
    - BLOCK_SKIP_WRITE_POP
    - BLOCK_SKIP_WRITE_PUSH
    linkageType: ''
    returnType: UINT32
    signature: UINT32 PACompileConstants_Marshal(BYTE **buffer, INT32 *size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4051,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4068,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4076,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4081,1
    - Dst: UINT32_Unmarshal_CheckConstant
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4087,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4096,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4105
      start: 4041
    functionDepth: 3
    functionLinenumber: 4041
    functionLinenumberEnd: 4105
    functionName: PACompileConstants_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - NV_HEADER_Unmarshal
    - UINT32_Unmarshal_CheckConstant
    - UINT32_Unmarshal
    - TPMLIB_LogTPM2Error
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC PACompileConstants_Unmarshal(BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4116,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4121,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4123,1
    - Dst: ConvertToCompressedBitArray
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4124,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4132,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - data
    - buffer
    - size
    - blob_version
    - commandCount
    argTypes:
    - PERSISTENT_DATA*
    - BYTE**
    - INT32*
    - UINT16
    - UINT32
    assertStmts:
    - condition: (!COMPRESSED_LISTS)
      pos:
        line_end: 4115
        line_start: 4115
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    - condition: (commandCount <= 110)
      pos:
        line_end: 4120
        line_start: 4120
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    - condition: (sizeof(ppList) >= array_size)
      pos:
        line_end: 4122
        line_start: 4122
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    constantsTouched: []
    func_position:
      end: 4136
      start: 4107
    functionDepth: 1
    functionLinenumber: 4107
    functionLinenumberEnd: 4136
    functionName: PERSISTENT_DATA_PPList_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - Array_Marshal
    - assert
    - ConvertToCompressedBitArray
    - UINT16_Marshal
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 PERSISTENT_DATA_PPList_Marshal(PERSISTENT_DATA *data, BYTE
      **buffer, INT32 *size,\n                               UINT16 blob_version,
      UINT32 commandCount)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4145,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4148,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4153,1
    - Dst: ConvertFromCompressedBitArray
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4157,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4160,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4161,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - data
    - buffer
    - size
    - blob_version
    argTypes:
    - PERSISTENT_DATA*
    - BYTE**
    - INT32*
    - UINT16
    assertStmts:
    - condition: (!COMPRESSED_LISTS)
      pos:
        line_end: 4144
        line_start: 4144
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    - condition: (array_size <= sizeof(data->ppList))
      pos:
        line_end: 4160
        line_start: 4160
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    constantsTouched: []
    func_position:
      end: 4167
      start: 4138
    functionDepth: 1
    functionLinenumber: 4138
    functionLinenumberEnd: 4167
    functionName: PERSISTENT_DATA_PPList_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - Array_Unmarshal
    - memcpy
    - ConvertFromCompressedBitArray
    - memset
    - assert
    - UINT16_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC PERSISTENT_DATA_PPList_Unmarshal(PERSISTENT_DATA *data, BYTE
      **buffer, INT32 *size,\n                                 UINT16 blob_version)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4178,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4184,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4186,1
    - Dst: ConvertToCompressedBitArray
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4187,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4195,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 5
    argNames:
    - data
    - buffer
    - size
    - blob_version
    - commandCount
    argTypes:
    - PERSISTENT_DATA*
    - BYTE**
    - INT32*
    - UINT16
    - UINT32
    assertStmts:
    - condition: (!COMPRESSED_LISTS)
      pos:
        line_end: 4177
        line_start: 4177
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    - condition: (sizeof(auditCommands) >= array_size)
      pos:
        line_end: 4185
        line_start: 4185
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    - condition: (commandCount <= 110)
      pos:
        line_end: 4183
        line_start: 4183
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    constantsTouched: []
    func_position:
      end: 4199
      start: 4169
    functionDepth: 1
    functionLinenumber: 4169
    functionLinenumberEnd: 4199
    functionName: PERSISTENT_DATA_AuditCommands_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - Array_Marshal
    - assert
    - ConvertToCompressedBitArray
    - UINT16_Marshal
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 PERSISTENT_DATA_AuditCommands_Marshal(PERSISTENT_DATA *data,
      BYTE **buffer, INT32 *size,\n                                      UINT16 blob_version,
      UINT32 commandCount)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4208,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4211,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4216,1
    - Dst: ConvertFromCompressedBitArray
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4220,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4223,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4224,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - data
    - buffer
    - size
    - blob_version
    argTypes:
    - PERSISTENT_DATA*
    - BYTE**
    - INT32*
    - UINT16
    assertStmts:
    - condition: (!COMPRESSED_LISTS)
      pos:
        line_end: 4207
        line_start: 4207
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    - condition: (array_size <= sizeof(data->auditCommands))
      pos:
        line_end: 4223
        line_start: 4223
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    constantsTouched: []
    func_position:
      end: 4230
      start: 4201
    functionDepth: 1
    functionLinenumber: 4201
    functionLinenumberEnd: 4230
    functionName: PERSISTENT_DATA_AuditCommands_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - Array_Unmarshal
    - memcpy
    - ConvertFromCompressedBitArray
    - memset
    - assert
    - UINT16_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC PERSISTENT_DATA_AuditCommands_Unmarshal(PERSISTENT_DATA *data,
      BYTE **buffer, INT32 *size,\n                                        UINT16
      blob_version)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeCommandsCountEnabled
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4240,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4249,1
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4259,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4263,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4264,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4265,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4266,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4267,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4268,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4269,1
    - Dst: TPM2B_AUTH_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4270,1
    - Dst: TPM2B_AUTH_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4271,1
    - Dst: TPM2B_AUTH_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4272,1
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4273,1
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4274,1
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4275,1
    - Dst: TPM2B_PROOF_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4276,1
    - Dst: TPM2B_PROOF_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4277,1
    - Dst: TPM2B_PROOF_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4278,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4279,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4280,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4287,1
    - Dst: PCR_POLICY_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4290,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4292,1
    - Dst: TPML_PCR_SELECTION_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4294,1
    - Dst: PERSISTENT_DATA_PPList_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4296,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4297,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4298,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4299,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4300,1
    - Dst: BOOL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4301,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4302,1
    - Dst: PERSISTENT_DATA_AuditCommands_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4304,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4305,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4306,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4307,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4308,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4309,1
    - Dst: UINT8_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4312,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4313,1
    - Dst: UINT8_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4316,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4317,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4320,1
    - Dst: TPML_PCR_SELECTION_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4323,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4325,1
    - Dst: SEED_COMPAT_LEVEL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4326,1
    - Dst: SEED_COMPAT_LEVEL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4328,1
    - Dst: SEED_COMPAT_LEVEL_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4330,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4333,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4336,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4337,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4338,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 69
    argCount: 4
    argNames:
    - data
    - buffer
    - size
    - RuntimeProfile
    argTypes:
    - PERSISTENT_DATA*
    - BYTE**
    - INT32*
    - struct RuntimeProfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4343
      start: 4236
    functionDepth: 3
    functionLinenumber: 4236
    functionLinenumberEnd: 4343
    functionName: PERSISTENT_DATA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - PERSISTENT_DATA_PPList_Marshal
    - pAssert
    - NV_HEADER_Marshal
    - TPML_PCR_SELECTION_Marshal
    - TPM2B_AUTH_Marshal
    - UINT8_Marshal
    - UINT64_Marshal
    - PCR_POLICY_Marshal
    - UINT32_Marshal
    - BOOL_Marshal
    - RuntimeCommandsCountEnabled
    - TPM_ALG_ID_Marshal
    - TPM2B_Marshal
    - TPM2B_DIGEST_Marshal
    - TPM2B_PROOF_Marshal
    - PERSISTENT_DATA_AuditCommands_Marshal
    - SEED_COMPAT_LEVEL_Marshal
    - BLOCK_SKIP_WRITE_POP
    - BLOCK_SKIP_WRITE_PUSH
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 PERSISTENT_DATA_Marshal(PERSISTENT_DATA *data, BYTE **buffer,
      INT32 *size,\n                        struct RuntimeProfile *RuntimeProfile)"
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4354,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4360,1
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4363,1
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4366,1
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4369,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4372,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4375,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4378,1
    - Dst: TPM2B_AUTH_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4381,1
    - Dst: TPM2B_AUTH_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4384,1
    - Dst: TPM2B_AUTH_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4387,1
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4390,1
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4393,1
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4396,1
    - Dst: TPM2B_PROOF_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4399,1
    - Dst: TPM2B_PROOF_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4402,1
    - Dst: TPM2B_PROOF_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4405,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4408,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4411,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4420,1
    - Dst: PCR_POLICY_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4425,1
    - Dst: TPML_PCR_SELECTION_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4431,1
    - Dst: PERSISTENT_DATA_PPList_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4438,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4442,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4445,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4448,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4451,1
    - Dst: BOOL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4454,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4458,1
    - Dst: PERSISTENT_DATA_AuditCommands_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4463,1
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4466,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4469,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4472,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4475,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4478,1
    - Dst: UINT8_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4482,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4487,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4493,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4497,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4503,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4516,1
    - Dst: TPML_PCR_SELECTION_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4519,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4523,1
    - Dst: SEED_COMPAT_LEVEL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4528,1
    - Dst: SEED_COMPAT_LEVEL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4532,1
    - Dst: SEED_COMPAT_LEVEL_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4536,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4541,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4550,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 161
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - PERSISTENT_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4554
      start: 4345
    functionDepth: 4
    functionLinenumber: 4345
    functionLinenumberEnd: 4554
    functionName: PERSISTENT_DATA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_AUTH_Unmarshal
    - NV_HEADER_Unmarshal
    - SEED_COMPAT_LEVEL_Unmarshal
    - TPM2B_Unmarshal
    - PERSISTENT_DATA_PPList_Unmarshal
    - UINT64_Unmarshal
    - UINT8_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    - TPM_ALG_ID_Unmarshal
    - TPM2B_PROOF_Unmarshal
    - UINT32_Unmarshal
    - BOOL_Unmarshal
    - TPML_PCR_SELECTION_Unmarshal
    - UINT16_Unmarshal
    - PERSISTENT_DATA_AuditCommands_Unmarshal
    - TPMLIB_LogTPM2Error
    - PCR_POLICY_Unmarshal
    - BLOCK_SKIP_READ
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC PERSISTENT_DATA_Unmarshal(PERSISTENT_DATA *data, BYTE **buffer,
      INT32 *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4569,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4574,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4579,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4584,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4588,1
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4590,1
    - Dst: TPMA_NV_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4591,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4594,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4600,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4606,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4609,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4621,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4624,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - array
    - array_size
    - buffer
    - size
    argTypes:
    - void*
    - size_t
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4629
      start: 4558
    functionDepth: 2
    functionLinenumber: 4558
    functionLinenumberEnd: 4629
    functionName: INDEX_ORDERLY_RAM_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - memcpy
    - Array_Marshal
    - TPM_HANDLE_Marshal
    - NV_HEADER_Marshal
    - TPMA_NV_Marshal
    - BLOCK_SKIP_WRITE_PUSH
    - BLOCK_SKIP_WRITE_POP
    - TPMLIB_LogTPM2Error
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT32
    signature: "UINT32 INDEX_ORDERLY_RAM_Marshal(void *array, size_t array_size,\n
      \                         BYTE **buffer, INT32 *size)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4643,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4651,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4655,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4667,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4680,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4682,1
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4691,1
    - Dst: TPMA_NV_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4694,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4697,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4705,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4720,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4729,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 4
    argNames:
    - array
    - array_size
    - buffer
    - size
    argTypes:
    - void*
    - size_t
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4734
      start: 4631
    functionDepth: 3
    functionLinenumber: 4631
    functionLinenumberEnd: 4734
    functionName: INDEX_ORDERLY_RAM_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - Array_Unmarshal
    - NV_HEADER_Unmarshal
    - memcpy
    - memset
    - BLOCK_SKIP_READ
    - UINT32_Unmarshal
    - TPMA_NV_Unmarshal
    - UINT16_Unmarshal
    - TPMLIB_LogTPM2Error
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC INDEX_ORDERLY_RAM_Unmarshal(void *array, size_t array_size,\n
      \                           BYTE **buffer, INT32 *size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4748,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4752,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4753,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4761,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4762,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4764,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4766,1
    - Dst: NvReadNvIndexInfo
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4768,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4770,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4773,1
    - Dst: NvReadObject
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4775,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4776,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4782,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4787,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4789,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4790,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4791,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4792
      start: 4736
    functionDepth: 3
    functionLinenumber: 4736
    functionLinenumberEnd: 4792
    functionName: USER_NVRAM_Display
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - NvReadNvIndexInfo
    - HandleGetType
    - NvRead
    - NvReadObject
    - fprintf
    - TPMLIB_LogTPM2Error
    linkageType: ''
    returnType: void
    signature: void USER_NVRAM_Display(const char *msg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: USER_NVRAM_Display
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4812,1
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4814,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4818,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4822,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4826,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4831,1
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4832,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4834,1
    - Dst: NvReadNvIndexInfo
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4837,1
    - Dst: NV_INDEX_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4840,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4843,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4846,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4847,1
    - Dst: NvReadObject
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4851,1
    - Dst: ANY_OBJECT_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4852,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4858,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4863,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4864,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4866,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4869,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 3
    argNames:
    - buffer
    - size
    - RuntimeProfile
    argTypes:
    - BYTE**
    - INT32*
    - struct RuntimeProfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4874
      start: 4796
    functionDepth: 8
    functionLinenumber: 4796
    functionLinenumberEnd: 4874
    functionName: USER_NVRAM_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - NvReadNvIndexInfo
    - NV_INDEX_Marshal
    - TPM_HANDLE_Marshal
    - UINT64_Marshal
    - NV_HEADER_Marshal
    - USER_NVRAM_Display
    - Array_Marshal
    - HandleGetType
    - NvRead
    - BLOCK_SKIP_WRITE_PUSH
    - NvReadObject
    - ANY_OBJECT_Marshal
    - TPMLIB_LogTPM2Error
    - BLOCK_SKIP_WRITE_POP
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT32
    signature: UINT32 USER_NVRAM_Marshal(BYTE **buffer, INT32 *size, struct RuntimeProfile
      *RuntimeProfile)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4905,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4910,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4920,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4926,1
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4932,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4936,1
    - Dst: NV_INDEX_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4945,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4947,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4952,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4959,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4971,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4972,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4991,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4994,1
    - Dst: ANY_OBJECT_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4995,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4996,1
    - Dst: NvObjectToBuffer
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4998,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NVMarshal.c:4999,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5006,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5013,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5026,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5027,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5033,1
    - Dst: USER_NVRAM_Display
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5041,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5046,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 111
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5052
      start: 4885
    functionDepth: 9
    functionLinenumber: 4885
    functionLinenumberEnd: 5052
    functionName: USER_NVRAM_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 0
    functionsReached:
    - Array_Unmarshal
    - NvWrite
    - ANY_OBJECT_Unmarshal
    - NV_HEADER_Unmarshal
    - NV_INDEX_Unmarshal
    - NvObjectToBuffer
    - UINT64_Unmarshal
    - pAssert
    - USER_NVRAM_Display
    - HandleGetType
    - memset
    - BLOCK_SKIP_READ
    - UINT32_Unmarshal
    - TPMLIB_LogTPM2Error
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC USER_NVRAM_Unmarshal(BYTE **buffer, INT32 *size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5083,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5084,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5085,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5086,1
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5089,1
    - Dst: RuntimeProfileWasNullProfile
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5104,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5105,1
    - Dst: RuntimeProfileWasNullProfile
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5106,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5107,1
    - Dst: NV_HEADER_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5109,1
    - Dst: RuntimeProfileGetJSON
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5113,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5114,1
    - Dst: String_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5115,1
    - Dst: PACompileConstants_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5117,1
    - Dst: PERSISTENT_DATA_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5118,1
    - Dst: ORDERLY_DATA_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5119,1
    - Dst: STATE_RESET_DATA_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5123,1
    - Dst: STATE_CLEAR_DATA_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5124,1
    - Dst: INDEX_ORDERLY_RAM_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5126,1
    - Dst: USER_NVRAM_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5128,1
    - Dst: BLOCK_SKIP_WRITE_PUSH
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5130,1
    - Dst: BLOCK_SKIP_WRITE_POP
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5133,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5136,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - BYTE**
    - INT32*
    assertStmts:
    - condition: (profileJSON)
      pos:
        line_end: 5113
        line_start: 5113
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    - condition: (false)
      pos:
        line_end: 5104
        line_start: 5104
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    - condition: (false)
      pos:
        line_end: 5106
        line_start: 5106
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    constantsTouched: []
    func_position:
      end: 5141
      start: 5067
    functionDepth: 9
    functionLinenumber: 5067
    functionLinenumberEnd: 5141
    functionName: PERSISTENT_ALL_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 1
    functionsReached:
    - STATE_RESET_DATA_Marshal
    - String_Marshal
    - UINT32_Marshal
    - PERSISTENT_DATA_Marshal
    - INDEX_ORDERLY_RAM_Marshal
    - NV_HEADER_Marshal
    - PACompileConstants_Marshal
    - ORDERLY_DATA_Marshal
    - NvRead
    - STATE_CLEAR_DATA_Marshal
    - assert
    - RuntimeProfileWasNullProfile
    - USER_NVRAM_Marshal
    - BLOCK_SKIP_WRITE_POP
    - BLOCK_SKIP_WRITE_PUSH
    - RuntimeProfileGetJSON
    linkageType: ''
    returnType: UINT32
    signature: UINT32 PERSISTENT_ALL_Marshal(BYTE **buffer, INT32 *size)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5157,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5158,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5159,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5160,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5161,1
    - Dst: NV_HEADER_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5164,1
    - Dst: String_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5170,1
    - Dst: RuntimeProfileSet
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5175,1
    - Dst: RuntimeAlgorithmSetProfile
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5179,1
    - Dst: PACompileConstants_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5182,1
    - Dst: PERSISTENT_DATA_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5185,1
    - Dst: ORDERLY_DATA_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5194,1
    - Dst: STATE_RESET_DATA_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5197,1
    - Dst: STATE_CLEAR_DATA_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5200,1
    - Dst: INDEX_ORDERLY_RAM_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5203,1
    - Dst: USER_NVRAM_Unmarshal
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5208,1
    - Dst: BLOCK_SKIP_READ
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5216,1
    - Dst: UINT32_Unmarshal_Check
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5223,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5229,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5230,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5231,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5232,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5233,1
    - Dst: RuntimeProfileSet
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5235,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/NVMarshal.c:5238,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 2
    argNames:
    - buffer
    - size
    argTypes:
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5241
      start: 5143
    functionDepth: 10
    functionLinenumber: 5143
    functionLinenumberEnd: 5241
    functionName: PERSISTENT_ALL_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 2
    functionsReached:
    - NvWrite
    - UINT32_Unmarshal_Check
    - NV_HEADER_Unmarshal
    - ORDERLY_DATA_Unmarshal
    - INDEX_ORDERLY_RAM_Unmarshal
    - PERSISTENT_DATA_Unmarshal
    - RuntimeProfileSet
    - memset
    - PACompileConstants_Unmarshal
    - USER_NVRAM_Unmarshal
    - BLOCK_SKIP_READ
    - STATE_CLEAR_DATA_Unmarshal
    - STATE_RESET_DATA_Unmarshal
    - String_Unmarshal
    - free
    - RuntimeAlgorithmSetProfile
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC PERSISTENT_ALL_Unmarshal(BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5250
      start: 5243
    functionDepth: 0
    functionLinenumber: 5243
    functionLinenumberEnd: 5250
    functionName: NVShadowRestore
    functionSourceFile: /src/libtpms/src/tpm2/NVMarshal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NVShadowRestore(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MUST_BE
      Src: /src/libtpms/src/tpm2/Context_spt.c:110,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/Context_spt.c:111,1
    - Dst: MUST_BE
      Src: /src/libtpms/src/tpm2/Context_spt.c:115,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/Context_spt.c:116,1
    - Dst: CryptGetSymmetricBlockSize
      Src: /src/libtpms/src/tpm2/Context_spt.c:122,1
    - Dst: HierarchyGetProof
      Src: /src/libtpms/src/tpm2/Context_spt.c:125,1
    - Dst: CryptKDFa
      Src: /src/libtpms/src/tpm2/Context_spt.c:130,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Context_spt.c:140,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Context_spt.c:143,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/Context_spt.c:144,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Context_spt.c:147,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/Context_spt.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 3
    argNames:
    - contextBlob
    - symKey
    - iv
    argTypes:
    - TPMS_CONTEXT*
    - TPM2B_SYM_KEY*
    - TPM2B_IV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 151
    functionName: ComputeContextProtectionKey
    functionSourceFile: /src/libtpms/src/tpm2/Context_spt.c
    functionUses: 2
    functionsReached:
    - MemoryCopy
    - HierarchyGetProof
    - CryptGetSymmetricBlockSize
    - pAssert
    - MemorySet
    - CryptKDFa
    - MUST_BE
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC ComputeContextProtectionKey(TPMS_CONTEXT*  contextBlob,  //
      IN: context blob\n                                   TPM2B_SYM_KEY* symKey,
      \ // OUT: the symmetric key\n                                   TPM2B_IV*      iv
      \      // OUT: the IV.\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HierarchyGetProof
      Src: /src/libtpms/src/tpm2/Context_spt.c:194,1
    - Dst: CryptHmacStart2B
      Src: /src/libtpms/src/tpm2/Context_spt.c:200,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Context_spt.c:202,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/Context_spt.c:209,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/Context_spt.c:215,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/Context_spt.c:220,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/Context_spt.c:224,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/Context_spt.c:229,1
    - Dst: CryptHmacEnd2B
      Src: /src/libtpms/src/tpm2/Context_spt.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - contextBlob
    - integrity
    argTypes:
    - TPMS_CONTEXT*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 184
    functionDepth: 4
    functionLinenumber: 184
    functionLinenumberEnd: 237
    functionName: ComputeContextIntegrity
    functionSourceFile: /src/libtpms/src/tpm2/Context_spt.c
    functionUses: 2
    functionsReached:
    - HierarchyGetProof
    - CryptDigestUpdateInt
    - CryptHmacEnd2B
    - CryptDigestUpdate
    - MemorySet
    - CryptHmacStart2B
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC ComputeContextIntegrity(TPMS_CONTEXT* contextBlob,  // IN:
      context blob\n                               TPM2B_DIGEST* integrity     //
      OUT: integrity\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashExportState
      Src: /src/libtpms/src/tpm2/Context_spt.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - object
    - exportObject
    argTypes:
    - HASH_OBJECT*
    - HASH_OBJECT_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 265
    functionName: SequenceDataExport
    functionSourceFile: /src/libtpms/src/tpm2/Context_spt.c
    functionUses: 0
    functionsReached:
    - CryptHashExportState
    linkageType: ''
    returnType: void
    signature: "void SequenceDataExport(\n    HASH_OBJECT*        object,       //
      IN: an internal hash object\n    HASH_OBJECT_BUFFER* exportObject  // OUT: a
      sequence context in a buffer\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashImportState
      Src: /src/libtpms/src/tpm2/Context_spt.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - object
    - exportObject
    argTypes:
    - HASH_OBJECT*
    - HASH_OBJECT_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 292
    functionName: SequenceDataImport
    functionSourceFile: /src/libtpms/src/tpm2/Context_spt.c
    functionUses: 0
    functionsReached:
    - CryptHashImportState
    linkageType: ''
    returnType: void
    signature: "void SequenceDataImport(\n    HASH_OBJECT*        object,       //
      IN/OUT: an internal hash object\n    HASH_OBJECT_BUFFER* exportObject  // IN/OUT:
      a sequence context in a buffer\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/PP.c:85,1
    - Dst: SET_BIT
      Src: /src/libtpms/src/tpm2/PP.c:92,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/PP.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 97
    functionName: PhysicalPresencePreInstall_Init
    functionSourceFile: /src/libtpms/src/tpm2/PP.c
    functionUses: 0
    functionsReached:
    - MemorySet
    - NV_SYNC_PERSISTENT
    - SET_BIT
    linkageType: ''
    returnType: void
    signature: void PhysicalPresencePreInstall_Init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CommandCodeToCommandIndex
      Src: /src/libtpms/src/tpm2/PP.c:105,1
    - Dst: SET_BIT
      Src: /src/libtpms/src/tpm2/PP.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - commandCode
    argTypes:
    - TPM_CC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 102
    functionDepth: 4
    functionLinenumber: 102
    functionLinenumberEnd: 115
    functionName: PhysicalPresenceCommandSet
    functionSourceFile: /src/libtpms/src/tpm2/PP.c
    functionUses: 1
    functionsReached:
    - CommandCodeToCommandIndex
    - SET_BIT
    linkageType: ''
    returnType: void
    signature: 'void PhysicalPresenceCommandSet(TPM_CC commandCode  // IN: command
      code

      )'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CommandCodeToCommandIndex
      Src: /src/libtpms/src/tpm2/PP.c:123,1
    - Dst: CLEAR_BIT
      Src: /src/libtpms/src/tpm2/PP.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - commandCode
    argTypes:
    - TPM_CC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 134
    functionName: PhysicalPresenceCommandClear
    functionSourceFile: /src/libtpms/src/tpm2/PP.c
    functionUses: 1
    functionsReached:
    - CLEAR_BIT
    - CommandCodeToCommandIndex
    linkageType: ''
    returnType: void
    signature: 'void PhysicalPresenceCommandClear(TPM_CC commandCode  // IN: command
      code

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/PP.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - commandIndex
    argTypes:
    - COMMAND_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: PhysicalPresenceIsRequired
    functionSourceFile: /src/libtpms/src/tpm2/PP.c
    functionUses: 0
    functionsReached:
    - TEST_BIT
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL PhysicalPresenceIsRequired(COMMAND_INDEX commandIndex  // IN:
      command index

      )'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetClosestCommandIndex
      Src: /src/libtpms/src/tpm2/PP.c:172,1
    - Dst: GetNextCommandIndex
      Src: /src/libtpms/src/tpm2/PP.c:174,1
    - Dst: PhysicalPresenceIsRequired
      Src: /src/libtpms/src/tpm2/PP.c:176,1
    - Dst: GetCommandCode
      Src: /src/libtpms/src/tpm2/PP.c:183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - commandCode
    - count
    - commandList
    argTypes:
    - TPM_CC
    - UINT32
    - TPML_CC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 196
    functionName: PhysicalPresenceCapGetCCList
    functionSourceFile: /src/libtpms/src/tpm2/PP.c
    functionUses: 0
    functionsReached:
    - GetClosestCommandIndex
    - GetNextCommandIndex
    - PhysicalPresenceIsRequired
    - GetCommandCode
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO PhysicalPresenceCapGetCCList(TPM_CC   commandCode,  //
      IN: start command code\n                             UINT32   count,        //
      IN: count of returned TPM_CC\n                             TPML_CC* commandList
      \  // OUT: list of TPM_CC\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CommandCodeToCommandIndex
      Src: /src/libtpms/src/tpm2/PP.c:202,1
    - Dst: PhysicalPresenceIsRequired
      Src: /src/libtpms/src/tpm2/PP.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - commandCode
    argTypes:
    - TPM_CC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 208
    functionName: PhysicalPresenceCapGetOneCC
    functionSourceFile: /src/libtpms/src/tpm2/PP.c
    functionUses: 0
    functionsReached:
    - CommandCodeToCommandIndex
    - PhysicalPresenceIsRequired
    linkageType: ''
    returnType: BOOL
    signature: BOOL PhysicalPresenceCapGetOneCC(TPM_CC commandCode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/SessionProcess.c:95,1
    - Dst: ObjectGetPublicAttributes
      Src: /src/libtpms/src/tpm2/SessionProcess.c:106,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:107,1
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/SessionProcess.c:112,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 124
    functionName: IsDAExempted
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - NvGetIndexInfo
    - HandleGetType
    - ObjectGetPublicAttributes
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL IsDAExempted(TPM_HANDLE handle  // IN: entity handle

      )'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: IsDAExempted
      Src: /src/libtpms/src/tpm2/SessionProcess.c:145,1
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/SessionProcess.c:150,1
    - Dst: IsDAExempted
      Src: /src/libtpms/src/tpm2/SessionProcess.c:158,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/SessionProcess.c:165,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/SessionProcess.c:176,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/SessionProcess.c:189,1
    - Dst: DARegisterFailure
      Src: /src/libtpms/src/tpm2/SessionProcess.c:196,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 1
    argNames:
    - sessionIndex
    argTypes:
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 199
    functionName: IncrementLockout
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - IsDAExempted
    - pAssert
    - NV_SYNC_PERSISTENT
    - SessionGet
    - DARegisterFailure
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC IncrementLockout(UINT32 sessionIndex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SessionComputeBoundEntity
      Src: /src/libtpms/src/tpm2/SessionProcess.c:222,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - associatedHandle
    - session
    argTypes:
    - TPM_HANDLE
    - SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 228
    functionName: IsSessionBindEntity
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - SessionComputeBoundEntity
    - MemoryEqual2B
    linkageType: ''
    returnType: BOOL
    signature: "BOOL IsSessionBindEntity(\n    TPM_HANDLE associatedHandle,  // IN:
      handle to be authorized\n    SESSION*   session            // IN: associated
      session\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CommandAuthRole
      Src: /src/libtpms/src/tpm2/SessionProcess.c:251,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/SessionProcess.c:252,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/SessionProcess.c:264,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:266,1
    - Dst: PCRPolicyIsAvailable
      Src: /src/libtpms/src/tpm2/SessionProcess.c:275,1
    - Dst: PCRGetAuthPolicy
      Src: /src/libtpms/src/tpm2/SessionProcess.c:279,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - commandIndex
    - sessionIndex
    argTypes:
    - COMMAND_INDEX
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 285
    functionName: IsPolicySessionRequired
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - PCRPolicyIsAvailable
    - HandleToObject
    - HandleGetType
    - CommandAuthRole
    - PCRGetAuthPolicy
    linkageType: ''
    returnType: BOOL
    signature: "BOOL IsPolicySessionRequired(COMMAND_INDEX commandIndex,  // IN: command
      index\n                                    UINT32        sessionIndex   // IN:
      session index\n)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/SessionProcess.c:309,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/SessionProcess.c:355,1
    - Dst: ObjectIsSequence
      Src: /src/libtpms/src/tpm2/SessionProcess.c:362,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:372,1
    - Dst: CommandAuthRole
      Src: /src/libtpms/src/tpm2/SessionProcess.c:373,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:374,1
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/SessionProcess.c:383,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/SessionProcess.c:386,1
    - Dst: IsWriteOperation
      Src: /src/libtpms/src/tpm2/SessionProcess.c:390,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:393,1
    - Dst: IsNvPinFailIndex
      Src: /src/libtpms/src/tpm2/SessionProcess.c:401,1
    - Dst: IsNvPinPassIndex
      Src: /src/libtpms/src/tpm2/SessionProcess.c:402,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:405,1
    - Dst: NvGetUINT64Data
      Src: /src/libtpms/src/tpm2/SessionProcess.c:408,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:413,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 3
    argNames:
    - handle
    - commandIndex
    - sessionIndex
    argTypes:
    - TPM_HANDLE
    - COMMAND_INDEX
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 302
    functionDepth: 4
    functionLinenumber: 302
    functionLinenumberEnd: 428
    functionName: IsAuthValueAvailable
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - ObjectIsSequence
    - IS_ATTRIBUTE
    - IsNvPinFailIndex
    - IsNvPinPassIndex
    - IsWriteOperation
    - pAssert
    - HandleToObject
    - HandleGetType
    - CommandAuthRole
    - NvGetUINT64Data
    - NvGetIndexInfo
    linkageType: ''
    returnType: BOOL
    signature: "BOOL IsAuthValueAvailable(TPM_HANDLE    handle,        // IN: handle
      of entity\n                                 COMMAND_INDEX commandIndex,  //
      IN: command index\n                                 UINT32        sessionIndex
      \  // IN: session index\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 340
    functionName: FOR_EACH_ACT
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FOR_EACH_ACT(CASE_ACT_HANDLE)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/SessionProcess.c:447,1
    - Dst: FOR_EACH_ACT
      Src: /src/libtpms/src/tpm2/SessionProcess.c:473,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/SessionProcess.c:489,1
    - Dst: ObjectIsSequence
      Src: /src/libtpms/src/tpm2/SessionProcess.c:496,1
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/SessionProcess.c:504,1
    - Dst: IsPolicySessionRequired
      Src: /src/libtpms/src/tpm2/SessionProcess.c:512,1
    - Dst: IsWriteOperation
      Src: /src/libtpms/src/tpm2/SessionProcess.c:516,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:518,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:523,1
    - Dst: PCRPolicyIsAvailable
      Src: /src/libtpms/src/tpm2/SessionProcess.c:531,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 54
    argCount: 3
    argNames:
    - handle
    - commandIndex
    - sessionIndex
    argTypes:
    - TPM_HANDLE
    - COMMAND_INDEX
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 538
    functionName: IsAuthPolicyAvailable
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - ObjectIsSequence
    - IS_ATTRIBUTE
    - PCRPolicyIsAvailable
    - IsWriteOperation
    - HandleToObject
    - HandleGetType
    - IsPolicySessionRequired
    - NvGetIndexInfo
    - FOR_EACH_ACT
    linkageType: ''
    returnType: BOOL
    signature: "BOOL IsAuthPolicyAvailable(TPM_HANDLE    handle,        // IN: handle
      of entity\n                                  COMMAND_INDEX commandIndex,  //
      IN: command index\n                                  UINT32        sessionIndex
      \  // IN: session index\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 472
    functionName: ACT_GET_POLICY
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACT_GET_POLICY(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FOR_EACH_HASH
      Src: /src/libtpms/src/tpm2/SessionProcess.c:550,1
    - Dst: FOR_EACH_HASH
      Src: /src/libtpms/src/tpm2/SessionProcess.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - command
    argTypes:
    - COMMAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 553
    functionName: ClearCpRpHashes
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 1
    functionsReached:
    - FOR_EACH_HASH
    linkageType: ''
    returnType: void
    signature: void ClearCpRpHashes(COMMAND* command)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HASH
    - ','
    - Hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 550
    functionName: CLEAR_CP_HASH
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_CP_HASH(HASH, Hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HASH
    - ','
    - Hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 552
    functionName: CLEAR_RP_HASH
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_RP_HASH(HASH, Hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FOR_EACH_HASH
      Src: /src/libtpms/src/tpm2/SessionProcess.c:574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - command
    - hashAlg
    argTypes:
    - COMMAND*
    - TPMI_ALG_HASH
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 580
    functionName: GetCpHashPointer
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - FOR_EACH_HASH
    linkageType: ''
    returnType: TPM2B_DIGEST
    signature: TPM2B_DIGEST * GetCpHashPointer(COMMAND* command, TPMI_ALG_HASH hashAlg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HASH
    - ','
    - Hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: GET_CP_HASH_POINTER
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CP_HASH_POINTER(HASH, Hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FOR_EACH_HASH
      Src: /src/libtpms/src/tpm2/SessionProcess.c:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - command
    - hashAlg
    argTypes:
    - COMMAND*
    - TPMI_ALG_HASH
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 607
    functionName: GetRpHashPointer
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - FOR_EACH_HASH
    linkageType: ''
    returnType: TPM2B_DIGEST
    signature: TPM2B_DIGEST * GetRpHashPointer(COMMAND* command, TPMI_ALG_HASH hashAlg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HASH
    - ','
    - Hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 594
    functionName: GET_RP_HASH_POINTER
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_RP_HASH_POINTER(HASH, Hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetCpHashPointer
      Src: /src/libtpms/src/tpm2/SessionProcess.c:627,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/SessionProcess.c:630,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/SessionProcess.c:632,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:635,1
    - Dst: EntityGetName
      Src: /src/libtpms/src/tpm2/SessionProcess.c:636,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/SessionProcess.c:638,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - command
    - hashAlg
    argTypes:
    - COMMAND*
    - TPMI_ALG_HASH
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 611
    functionDepth: 5
    functionLinenumber: 611
    functionLinenumberEnd: 644
    functionName: ComputeCpHash
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - EntityGetName
    - CryptDigestUpdate2B
    - CryptDigestUpdateInt
    - CryptHashStart
    - GetCpHashPointer
    - CryptHashEnd2B
    - CryptDigestUpdate
    linkageType: ''
    returnType: TPM2B_DIGEST
    signature: "TPM2B_DIGEST * ComputeCpHash(COMMAND* command,  // IN: command parsing
      structure\n                                   TPMI_ALG_HASH hashAlg  // IN:
      hash algorithm\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCpHashPointer
      Src: /src/libtpms/src/tpm2/SessionProcess.c:650,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/SessionProcess.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - command
    - hashAlg
    argTypes:
    - COMMAND*
    - TPMI_ALG_HASH
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 654
    functionName: GetCpHash
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - GetCpHashPointer
    - pAssert
    linkageType: ''
    returnType: TPM2B_DIGEST
    signature: TPM2B_DIGEST * GetCpHash(COMMAND* command, TPMI_ALG_HASH hashAlg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/SessionProcess.c:683,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/SessionProcess.c:695,1
    - Dst: CryptHashBlock
      Src: /src/libtpms/src/tpm2/SessionProcess.c:701,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:703,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - command
    - session
    argTypes:
    - COMMAND*
    - SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 704
    functionName: CompareTemplateHash
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - UINT16_Unmarshal
    - MemoryEqual2B
    - CryptHashBlock
    linkageType: ''
    returnType: BOOL
    signature: "BOOL CompareTemplateHash(COMMAND* command,  // IN: parsing structure\n
      \                               SESSION* session   // IN: session data\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/SessionProcess.c:718,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:721,1
    - Dst: EntityGetName
      Src: /src/libtpms/src/tpm2/SessionProcess.c:722,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:724,1
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/SessionProcess.c:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - command
    - session
    argTypes:
    - COMMAND*
    - SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 709
    functionDepth: 5
    functionLinenumber: 709
    functionLinenumberEnd: 728
    functionName: CompareNameHash
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - EntityGetName
    - CryptDigestUpdate2B
    - CryptHashEnd2B
    - CryptHashStart
    - MemoryEqual
    linkageType: ''
    returnType: BOOL
    signature: "BOOL CompareNameHash(COMMAND* command,  // IN: main parsing structure\n
      \                    SESSION* session   // IN: session structure with nameHash\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/SessionProcess.c:740,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/SessionProcess.c:742,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/SessionProcess.c:744,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:746,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - command
    - session
    argTypes:
    - COMMAND*
    - SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 749
    functionName: CompareParametersHash
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - MemoryEqual2B
    - CryptHashEnd2B
    - CryptDigestUpdateInt
    - CryptHashStart
    - CryptDigestUpdate
    linkageType: ''
    returnType: BOOL
    signature: "BOOL CompareParametersHash(COMMAND* command,  // IN: main parsing
      structure\n                           SESSION* session   // IN: session structure
      with pHash\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MemoryRemoveTrailingZeros
      Src: /src/libtpms/src/tpm2/SessionProcess.c:770,1
    - Dst: EntityGetAuthValue
      Src: /src/libtpms/src/tpm2/SessionProcess.c:773,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:776,1
    - Dst: IncrementLockout
      Src: /src/libtpms/src/tpm2/SessionProcess.c:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sessionIndex
    argTypes:
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 762
    functionDepth: 5
    functionLinenumber: 762
    functionLinenumberEnd: 785
    functionName: CheckPWAuthSession
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - MemoryRemoveTrailingZeros
    - IncrementLockout
    - EntityGetAuthValue
    - MemoryEqual2B
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CheckPWAuthSession(\n    UINT32 sessionIndex  // IN: index
      of session to be processed\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_TYPE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:835,1
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/SessionProcess.c:861,1
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/SessionProcess.c:871,1
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/SessionProcess.c:877,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:880,1
    - Dst: EntityGetAuthValue
      Src: /src/libtpms/src/tpm2/SessionProcess.c:894,1
    - Dst: MemoryConcat2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:896,1
    - Dst: CryptHmacStart2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:905,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:908,1
    - Dst: ComputeCpHash
      Src: /src/libtpms/src/tpm2/SessionProcess.c:909,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:911,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:912,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:914,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:916,1
    - Dst: TPMA_SESSION_Marshal
      Src: /src/libtpms/src/tpm2/SessionProcess.c:919,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/SessionProcess.c:920,1
    - Dst: CryptHmacEnd2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:922,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - command
    - sessionIndex
    - hmac
    argTypes:
    - COMMAND*
    - UINT32
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 829
    functionDepth: 6
    functionLinenumber: 829
    functionLinenumberEnd: 925
    functionName: ComputeCommandHMAC
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - CryptDigestUpdate2B
    - TPMA_SESSION_Marshal
    - MemoryConcat2B
    - CryptHmacEnd2B
    - MemoryCopy2B
    - ComputeCpHash
    - CryptDigestUpdate
    - SessionGet
    - EntityGetAuthValue
    - TPM2B_TYPE
    - CryptHmacStart2B
    linkageType: ''
    returnType: TPM2B_DIGEST
    signature: "TPM2B_DIGEST * ComputeCommandHMAC(\n    COMMAND*      command,       //
      IN: primary control structure\n    UINT32        sessionIndex,  // IN: index
      of session to be processed\n    TPM2B_DIGEST* hmac           // OUT: authorization
      HMAC\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ComputeCommandHMAC
      Src: /src/libtpms/src/tpm2/SessionProcess.c:950,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:953,1
    - Dst: IncrementLockout
      Src: /src/libtpms/src/tpm2/SessionProcess.c:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - command
    - sessionIndex
    argTypes:
    - COMMAND*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 942
    functionDepth: 7
    functionLinenumber: 942
    functionLinenumberEnd: 961
    functionName: CheckSessionHMAC
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - MemoryEqual2B
    - IncrementLockout
    - ComputeCommandHMAC
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CheckSessionHMAC(\n    COMMAND* command,      // IN: primary
      control structure\n    UINT32   sessionIndex  // IN: index of session to be
      processed\n)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/SessionProcess.c:998,1
    - Dst: SessionPCRValueIsCurrent
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1007,1
    - Dst: EntityGetAuthPolicy
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1010,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1012,1
    - Dst: CommandAuthRole
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1042,1
    - Dst: TPMA_LOCALITY_Marshal
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1053,1
    - Dst: _plat__LocalityGet
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1059,1
    - Dst: _plat__PhysicalPresenceAsserted
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1081,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1089,1
    - Dst: ComputeCpHash
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1090,1
    - Dst: CompareNameHash
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1093,1
    - Dst: CompareParametersHash
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1095,1
    - Dst: CompareTemplateHash
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1097,1
    - Dst: CompareNameHash
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1099,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1109,1
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1112,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1115,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 63
    argCount: 2
    argNames:
    - command
    - sessionIndex
    argTypes:
    - COMMAND*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 987
    functionDepth: 6
    functionLinenumber: 987
    functionLinenumberEnd: 1120
    functionName: CheckPolicyAuthSession
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - EntityGetAuthPolicy
    - CompareTemplateHash
    - MemoryEqual2B
    - CompareParametersHash
    - _plat__LocalityGet
    - SessionPCRValueIsCurrent
    - _plat__PhysicalPresenceAsserted
    - HandleGetType
    - CommandAuthRole
    - CompareNameHash
    - ComputeCpHash
    - SessionGet
    - NvGetIndexInfo
    - TPMA_LOCALITY_Marshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CheckPolicyAuthSession(\n    COMMAND* command,      // IN:
      primary parsing structure\n    UINT32   sessionIndex  // IN: index of session
      to be processed\n)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_SH_AUTH_SESSION_Unmarshal
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1162,1
    - Dst: TPM2B_NONCE_Unmarshal
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1169,1
    - Dst: TPMA_SESSION_Unmarshal
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1175,1
    - Dst: TPM2B_AUTH_Unmarshal
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1181,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1192,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1193,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1194,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1195,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1196,1
    - Dst: SessionIsLoaded
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1205,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1207,1
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1208,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1225,1
    - Dst: DecryptSize
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1228,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1241,1
    - Dst: EncryptSize
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1244,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1257,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1263,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1268,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1273,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 72
    argCount: 1
    argNames:
    - command
    argTypes:
    - COMMAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1285
    functionName: RetrieveSessionData
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - TPM2B_AUTH_Unmarshal
    - SessionIsLoaded
    - EncryptSize
    - TPMA_SESSION_Unmarshal
    - TPMI_SH_AUTH_SESSION_Unmarshal
    - HandleGetType
    - DecryptSize
    - SessionGet
    - TPM2B_NONCE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC RetrieveSessionData(\n    COMMAND* command  // IN: main parsing
      structure for command\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1313,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1314,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1337,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - lockoutAuthCheck
    argTypes:
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1297
    functionDepth: 1
    functionLinenumber: 1297
    functionLinenumberEnd: 1343
    functionName: CheckLockedOut
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - NV_SYNC_PERSISTENT
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CheckLockedOut(\n    BOOL lockoutAuthCheck  // IN: TRUE if
      checking is for lockoutAuth\n)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1375,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1378,1
    - Dst: PhysicalPresenceIsRequired
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1385,1
    - Dst: _plat__PhysicalPresenceAsserted
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1386,1
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1391,1
    - Dst: IsSessionBindEntity
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1407,1
    - Dst: IsDAExempted
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1419,1
    - Dst: CheckLockedOut
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1422,1
    - Dst: IsPolicySessionRequired
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1431,1
    - Dst: IsAuthValueAvailable
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1436,1
    - Dst: IsAuthPolicyAvailable
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1444,1
    - Dst: CheckPolicyAuthSession
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1447,1
    - Dst: CheckPWAuthSession
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1453,1
    - Dst: CheckSessionHMAC
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1455,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1460,1
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1463,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1467,1
    - Dst: IsNvPinFailIndex
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1471,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1472,1
    - Dst: NvGetUINT64Data
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1474,1
    - Dst: NvWriteUINT64Data
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1479,1
    - Dst: IsNvPinPassIndex
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1486,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1487,1
    - Dst: NvGetUINT64Data
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1491,1
    - Dst: NvWriteUINT64Data
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1493,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 55
    argCount: 2
    argNames:
    - command
    - sessionIndex
    argTypes:
    - COMMAND*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1366
    functionDepth: 8
    functionLinenumber: 1366
    functionLinenumberEnd: 1497
    functionName: CheckAuthSession
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - IsAuthValueAvailable
    - IsDAExempted
    - PhysicalPresenceIsRequired
    - pAssert
    - HandleGetType
    - CheckPWAuthSession
    - IsSessionBindEntity
    - IsNvPinFailIndex
    - CheckPolicyAuthSession
    - IS_ATTRIBUTE
    - NvGetUINT64Data
    - IsPolicySessionRequired
    - SessionGet
    - NvGetIndexInfo
    - IsNvPinPassIndex
    - CheckLockedOut
    - CheckSessionHMAC
    - _plat__PhysicalPresenceAsserted
    - NvWriteUINT64Data
    - IsAuthPolicyAvailable
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CheckAuthSession(\n    COMMAND* command,      // IN: primary
      parsing structure\n    UINT32   sessionIndex  // IN: index of session to be
      processed\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetCommandCode
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1514,1
    - Dst: ComputeCpHash
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - command
    argTypes:
    - COMMAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1507
    functionDepth: 6
    functionLinenumber: 1507
    functionLinenumberEnd: 1521
    functionName: CheckCommandAudit
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - ComputeCpHash
    - GetCommandCode
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC CheckCommandAudit(COMMAND* command)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: IsSessionAllowed
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1546,1
    - Dst: RetrieveSessionData
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1551,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1556,1
    - Dst: CommandAuthRole
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1561,1
    - Dst: HierarchyNormalizeHandle
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1573,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1587,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1588,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1589,1
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1595,1
    - Dst: CheckLockedOut
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1608,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1613,1
    - Dst: ComputeCpHash
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1614,1
    - Dst: CheckAuthSession
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1620,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1622,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1628,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1629,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1630,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1634,1
    - Dst: CheckSessionHMAC
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1638,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1640,1
    - Dst: CommandAuditIsRequired
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1646,1
    - Dst: CheckCommandAudit
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1648,1
    - Dst: EntityGetAuthValue
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1665,1
    - Dst: DecryptSize
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1671,1
    - Dst: CryptParameterDecryption
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1672,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1679,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 68
    argCount: 1
    argNames:
    - command
    argTypes:
    - COMMAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1533
    functionDepth: 9
    functionLinenumber: 1533
    functionLinenumberEnd: 1684
    functionName: ParseSessionBuffer
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 1
    functionsReached:
    - IS_ATTRIBUTE
    - HierarchyNormalizeHandle
    - CryptParameterDecryption
    - CheckLockedOut
    - IsSessionAllowed
    - CheckAuthSession
    - RcSafeAddToResult
    - pAssert
    - CheckSessionHMAC
    - CommandAuditIsRequired
    - CheckCommandAudit
    - DecryptSize
    - CommandAuthRole
    - ComputeCpHash
    - SessionGet
    - RetrieveSessionData
    - EntityGetAuthValue
    linkageType: ''
    returnType: TPM_RC
    signature: 'TPM_RC ParseSessionBuffer(COMMAND* command  // IN: the structure that
      contains

      )'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CommandAuthRole
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1705,1
    - Dst: CommandAuditIsRequired
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1710,1
    - Dst: CheckCommandAudit
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1712,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - command
    argTypes:
    - COMMAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1693
    functionDepth: 7
    functionLinenumber: 1693
    functionLinenumberEnd: 1721
    functionName: CheckAuthNoSession
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 1
    functionsReached:
    - CommandAuthRole
    - CheckCommandAudit
    - CommandAuditIsRequired
    linkageType: ''
    returnType: TPM_RC
    signature: 'TPM_RC CheckAuthNoSession(COMMAND* command  // IN: command parsing
      structure

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetRpHashPointer
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1739,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1747,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1750,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1751,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1752,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - command
    - hashAlg
    argTypes:
    - COMMAND*
    - TPM_ALG_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1734
    functionDepth: 2
    functionLinenumber: 1734
    functionLinenumberEnd: 1758
    functionName: ComputeRpHash
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - CryptHashEnd2B
    - CryptDigestUpdateInt
    - CryptHashStart
    - GetRpHashPointer
    - CryptDigestUpdate
    linkageType: ''
    returnType: TPM2B_DIGEST
    signature: "TPM2B_DIGEST * ComputeRpHash(\n    COMMAND*   command,  // IN: command
      structure\n    TPM_ALG_ID hashAlg   // IN: hash algorithm to compute rpHash\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1772,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - session
    argTypes:
    - SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1762
    functionDepth: 1
    functionLinenumber: 1762
    functionLinenumberEnd: 1777
    functionName: InitAuditSession
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - MemorySet
    linkageType: ''
    returnType: void
    signature: 'void InitAuditSession(SESSION* session  // session to be initialized

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCpHash
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1785,1
    - Dst: ComputeRpHash
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1786,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1788,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1792,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1794,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1796,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1798,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - command
    - hashAlg
    - digest
    argTypes:
    - COMMAND*
    - TPMI_ALG_HASH
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1781
    functionDepth: 3
    functionLinenumber: 1781
    functionLinenumberEnd: 1801
    functionName: UpdateAuditDigest
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - CryptDigestUpdate2B
    - GetCpHash
    - pAssert
    - ComputeRpHash
    - CryptHashStart
    - CryptHashEnd2B
    linkageType: ''
    returnType: void
    signature: "void UpdateAuditDigest(\n    COMMAND* command, TPMI_ALG_HASH hashAlg,
      TPM2B_DIGEST* digest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UpdateAuditDigest
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - command
    - auditSession
    argTypes:
    - COMMAND*
    - SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1805
    functionDepth: 4
    functionLinenumber: 1805
    functionLinenumberEnd: 1812
    functionName: Audit
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 122
    functionsReached:
    - UpdateAuditDigest
    linkageType: ''
    returnType: void
    signature: "void Audit(COMMAND* command,      // IN: primary control structure\n
      \                 SESSION* auditSession  // IN: loaded audit session\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1835,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1836,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1840,1
    - Dst: UpdateAuditDigest
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1842,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - command
    argTypes:
    - COMMAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1844
      start: 1817
    functionDepth: 4
    functionLinenumber: 1817
    functionLinenumberEnd: 1844
    functionName: CommandAudit
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 2
    functionsReached:
    - CryptHashGetDigestSize
    - MemorySet
    - NV_SYNC_PERSISTENT
    - UpdateAuditDigest
    linkageType: ''
    returnType: void
    signature: 'void CommandAudit(COMMAND* command  // IN:

      )'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1870,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1873,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1882,1
    - Dst: InitAuditSession
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1884,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1897,1
    - Dst: CLEAR_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1901,1
    - Dst: Audit
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1904,1
    - Dst: IsSessionAllowed
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1910,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - command
    argTypes:
    - COMMAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1854
    functionDepth: 5
    functionLinenumber: 1854
    functionLinenumberEnd: 1915
    functionName: UpdateAuditSessionStatus
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - Audit
    - CLEAR_ATTRIBUTE
    - IsSessionAllowed
    - SET_ATTRIBUTE
    - SessionGet
    - InitAuditSession
    linkageType: ''
    returnType: void
    signature: "void UpdateAuditSessionStatus(\n    COMMAND* command  // IN: primary
      control structure\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_TYPE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1956,1
    - Dst: ComputeRpHash
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1962,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1965,1
    - Dst: EntityGetAuthValue
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1979,1
    - Dst: MemoryConcat2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1982,1
    - Dst: CryptHmacStart2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1993,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1996,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1997,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:1998,1
    - Dst: TPMA_SESSION_Marshal
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2002,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2003,1
    - Dst: CryptHmacEnd2B
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2006,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - command
    - sessionIndex
    - session
    - hmac
    argTypes:
    - COMMAND*
    - UINT32
    - SESSION*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 1949
    functionDepth: 4
    functionLinenumber: 1949
    functionLinenumberEnd: 2009
    functionName: ComputeResponseHMAC
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - CryptDigestUpdate2B
    - TPMA_SESSION_Marshal
    - ComputeRpHash
    - MemoryConcat2B
    - CryptHmacEnd2B
    - MemoryCopy2B
    - CryptDigestUpdate
    - EntityGetAuthValue
    - TPM2B_TYPE
    - CryptHmacStart2B
    linkageType: ''
    returnType: void
    signature: "void ComputeResponseHMAC(\n    COMMAND*      command,       // IN:
      command structure\n    UINT32        sessionIndex,  // IN: session index to
      be processed\n    SESSION*      session,       // IN: loaded session\n    TPM2B_DIGEST*
      hmac           // OUT: authHMAC\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2021,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2022,1
    - Dst: SessionResetPolicyData
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2026,1
    - Dst: SessionSetStartTime
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2027,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - session
    - i
    argTypes:
    - SESSION*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2015
    functionDepth: 1
    functionLinenumber: 2015
    functionLinenumberEnd: 2030
    functionName: UpdateInternalSession
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - SessionResetPolicyData
    - HandleGetType
    - SessionSetStartTime
    linkageType: ''
    returnType: void
    signature: "void UpdateInternalSession(SESSION* session,  // IN: the session structure\n
      \                                 UINT32   i         // IN: session number\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2041,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2045,1
    - Dst: ComputeResponseHMAC
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2050,1
    - Dst: UpdateInternalSession
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2052,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - command
    - sessionIndex
    - auth
    argTypes:
    - COMMAND*
    - UINT32
    - TPM2B_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2034
    functionDepth: 5
    functionLinenumber: 2034
    functionLinenumberEnd: 2054
    functionName: BuildSingleResponseAuth
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - ComputeResponseHMAC
    - UpdateInternalSession
    - HandleGetType
    - SessionGet
    linkageType: ''
    returnType: TPM2B_NONCE
    signature: "TPM2B_NONCE * BuildSingleResponseAuth(\n    COMMAND*    command,       //
      IN: command structure\n    UINT32      sessionIndex,  // IN: session index to
      be processed\n    TPM2B_AUTH* auth           // OUT: authHMAC\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2069,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2071,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - command
    argTypes:
    - COMMAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2058
    functionDepth: 1
    functionLinenumber: 2058
    functionLinenumberEnd: 2075
    functionName: UpdateAllNonceTPM
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - CryptRandomGenerate
    - SessionGet
    linkageType: ''
    returnType: void
    signature: 'void UpdateAllNonceTPM(COMMAND* command  // IN: controlling structure

      )'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2092,1
    - Dst: UpdateAllNonceTPM
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2102,1
    - Dst: EntityGetAuthValue
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2121,1
    - Dst: EncryptSize
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2124,1
    - Dst: CryptParameterEncryption
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2131,1
    - Dst: UpdateAuditSessionStatus
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2146,1
    - Dst: CommandAuditIsRequired
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2149,1
    - Dst: CommandAudit
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2150,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2157,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2170,1
    - Dst: BuildSingleResponseAuth
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2178,1
    - Dst: TPM2B_NONCE_Marshal
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2181,1
    - Dst: TPMA_SESSION_Marshal
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2182,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2185,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2186,1
    - Dst: SessionFlush
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2187,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - command
    argTypes:
    - COMMAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2085
    functionDepth: 6
    functionLinenumber: 2085
    functionLinenumberEnd: 2193
    functionName: BuildResponseSession
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 1
    functionsReached:
    - IS_ATTRIBUTE
    - TPM2B_DIGEST_Marshal
    - EncryptSize
    - CommandAuditIsRequired
    - CommandAudit
    - pAssert
    - UpdateAllNonceTPM
    - TPMA_SESSION_Marshal
    - SessionFlush
    - SET_ATTRIBUTE
    - BuildSingleResponseAuth
    - CryptParameterEncryption
    - UpdateAuditSessionStatus
    - TPM2B_NONCE_Marshal
    - EntityGetAuthValue
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC BuildResponseSession(COMMAND* command  // IN: structure that
      has relevant command\n                                       //     information\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HierarchyNormalizeHandle
      Src: /src/libtpms/src/tpm2/SessionProcess.c:2205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2199
    functionDepth: 2
    functionLinenumber: 2199
    functionLinenumberEnd: 2210
    functionName: SessionRemoveAssociationToHandle
    functionSourceFile: /src/libtpms/src/tpm2/SessionProcess.c
    functionUses: 0
    functionsReached:
    - HierarchyNormalizeHandle
    linkageType: ''
    returnType: void
    signature: void SessionRemoveAssociationToHandle(TPM_HANDLE handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - UINT8*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 86
    functionName: UINT8_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 6
    functionsReached:
    - pAssert
    linkageType: ''
    returnType: UINT16
    signature: UINT16 UINT8_Marshal(UINT8 *source, BYTE **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - UINT16*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 107
    functionName: UINT16_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 23
    functionsReached:
    - pAssert
    linkageType: ''
    returnType: UINT16
    signature: UINT16 UINT16_Marshal(UINT16 *source, BYTE **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - UINT32*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 130
    functionName: UINT32_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 17
    functionsReached:
    - pAssert
    linkageType: ''
    returnType: UINT16
    signature: UINT16 UINT32_Marshal(UINT32 *source, BYTE **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - UINT64*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 157
    functionName: UINT64_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 9
    functionsReached:
    - pAssert
    linkageType: ''
    returnType: UINT16
    signature: UINT16 UINT64_Marshal(UINT64 *source, BYTE **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/Marshal.c:164,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - sourceBuffer
    - sourceSize
    - buffer
    - size
    argTypes:
    - BYTE*
    - UINT16
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 177
    functionName: Array_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 13
    functionsReached:
    - pAssert
    - memcpy
    linkageType: ''
    returnType: UINT16
    signature: UINT16 Array_Marshal(BYTE *sourceBuffer, UINT16 sourceSize, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtpms/src/tpm2/Marshal.c:183,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:184,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - source
    - maxSize
    - buffer
    - size
    argTypes:
    - TPM2B*
    - UINT32
    - BYTE**
    - INT32*
    assertStmts:
    - condition: (source->size <= maxSize)
      pos:
        line_end: 182
        line_start: 182
        source_file: /src/libtpms/src/tpm2/Marshal.c
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: TPM2B_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 5
    functionsReached:
    - Array_Marshal
    - assert
    - UINT16_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_Marshal(TPM2B *source, UINT32 maxSize, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM_KEY_BITS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: TPM_KEY_BITS_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM_KEY_BITS_Marshal(TPM_KEY_BITS *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM_CONSTANTS32*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 206
    functionName: TPM_CONSTANTS32_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM_CONSTANTS32_Marshal(TPM_CONSTANTS32 *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM_ALG_ID*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: TPM_ALG_ID_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 6
    functionsReached:
    - UINT16_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM_ALG_ID_Marshal(TPM_ALG_ID *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM_ECC_CURVE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: TPM_ECC_CURVE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM_ECC_CURVE_Marshal(TPM_ECC_CURVE *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM_CC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: TPM_CC_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM_CC_Marshal(TPM_CC *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM_RC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 248
    functionName: TPM_RC_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM_RC_Marshal(TPM_RC *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM_ST*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: TPM_ST_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - UINT16_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM_ST_Marshal(TPM_ST *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM_CAP*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 268
    functionName: TPM_CAP_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    linkageType: ''
    returnType: INT16
    signature: INT16 TPM_CAP_Marshal(TPM_CAP *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM_PT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: TPM_PT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM_PT_Marshal(TPM_PT *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM_PT_PCR*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 288
    functionName: TPM_PT_PCR_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM_PT_PCR_Marshal(TPM_PT_PCR *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM_HANDLE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: TPM_HANDLE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 6
    functionsReached:
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM_HANDLE_Marshal(TPM_HANDLE *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMA_ALGORITHM*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: TPMA_ALGORITHM_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMA_ALGORITHM_Marshal(TPMA_ALGORITHM *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMA_OBJECT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 318
    functionName: TPMA_OBJECT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMA_OBJECT_Marshal(TPMA_OBJECT *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMA_SESSION*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 328
    functionName: TPMA_SESSION_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 4
    functionsReached:
    - UINT8_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMA_SESSION_Marshal(TPMA_SESSION *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMA_LOCALITY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 338
    functionName: TPMA_LOCALITY_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - UINT8_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMA_LOCALITY_Marshal(TPMA_LOCALITY *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMA_CC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 348
    functionName: TPMA_CC_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMA_CC_Marshal(TPMA_CC *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_YES_NO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: TPMI_YES_NO_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT8_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_YES_NO_Marshal(TPMI_YES_NO *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMA_ACT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 368
    functionName: TPMA_ACT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMA_ACT_Marshal(TPMA_ACT *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_DH_CONTEXT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 378
    functionName: TPMI_DH_SAVED_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_DH_SAVED_Marshal(TPMI_DH_CONTEXT *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_RH_HIERARCHY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 388
    functionName: TPMI_RH_HIERARCHY_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - TPM_HANDLE_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_RH_HIERARCHY_Marshal(TPMI_RH_HIERARCHY *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_RH_NV_INDEX*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 398
    functionName: TPMI_RH_NV_INDEX_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_RH_NV_INDEX_Marshal(TPMI_RH_NV_INDEX *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_RH_NV_INDEX*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 408
    functionName: TPMI_RH_NV_EXP_INDEX_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_RH_NV_EXP_INDEX_Marshal(TPMI_RH_NV_INDEX *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_ALG_HASH*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 418
    functionName: TPMI_ALG_HASH_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - TPM_ALG_ID_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_ALG_HASH_Marshal(TPMI_ALG_HASH *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_ALG_SYM_OBJECT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 422
    functionDepth: 3
    functionLinenumber: 422
    functionLinenumberEnd: 428
    functionName: TPMI_ALG_SYM_OBJECT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_ALG_ID_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_ALG_SYM_OBJECT_Marshal(TPMI_ALG_SYM_OBJECT *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_ALG_SYM_MODE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 438
    functionName: TPMI_ALG_SYM_MODE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_ALG_ID_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_ALG_SYM_MODE_Marshal(TPMI_ALG_SYM_MODE *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_ALG_KDF*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 3
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: TPMI_ALG_KDF_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_ALG_ID_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_ALG_KDF_Marshal(TPMI_ALG_KDF *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_ALG_SIG_SCHEME*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 452
    functionDepth: 3
    functionLinenumber: 452
    functionLinenumberEnd: 458
    functionName: TPMI_ALG_SIG_SCHEME_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_ALG_ID_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_ALG_SIG_SCHEME_Marshal(TPMI_ALG_SIG_SCHEME *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:470,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:475,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:480,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:485,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:490,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - source
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_HA*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 499
    functionName: TPMU_HA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - pAssert
    - Array_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMU_HA_Marshal(TPMU_HA *source, BYTE **buffer, INT32 *size,
      UINT32 selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:507,1
    - Dst: TPMU_HA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMT_HA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 503
    functionDepth: 4
    functionLinenumber: 503
    functionLinenumberEnd: 510
    functionName: TPMT_HA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_HASH_Marshal
    - TPMU_HA_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMT_HA_Marshal(TPMT_HA *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_DIGEST*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 520
    functionName: TPM2B_DIGEST_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 13
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_DIGEST_Marshal(TPM2B_DIGEST *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 530
    functionName: TPM2B_DATA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_DATA_Marshal(TPM2B_DATA *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_NONCE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 534
    functionDepth: 4
    functionLinenumber: 534
    functionLinenumberEnd: 540
    functionName: TPM2B_NONCE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 3
    functionsReached:
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_NONCE_Marshal(TPM2B_NONCE *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_AUTH*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 544
    functionDepth: 4
    functionLinenumber: 544
    functionLinenumberEnd: 550
    functionName: TPM2B_AUTH_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 8
    functionsReached:
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_AUTH_Marshal(TPM2B_AUTH *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_MAX_BUFFER*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 560
    functionName: TPM2B_MAX_BUFFER_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_MAX_BUFFER_Marshal(TPM2B_MAX_BUFFER *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_MAX_NV_BUFFER*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 564
    functionDepth: 3
    functionLinenumber: 564
    functionLinenumberEnd: 570
    functionName: TPM2B_MAX_NV_BUFFER_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_MAX_NV_BUFFER_Marshal(TPM2B_MAX_NV_BUFFER *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_TIMEOUT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 573
    functionDepth: 3
    functionLinenumber: 573
    functionLinenumberEnd: 579
    functionName: TPM2B_TIMEOUT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_TIMEOUT_Marshal(TPM2B_TIMEOUT *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_IV*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 583
    functionDepth: 3
    functionLinenumber: 583
    functionLinenumberEnd: 589
    functionName: TPM2B_IV_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_IV_Marshal(TPM2B_IV *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_NAME*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 593
    functionDepth: 3
    functionLinenumber: 593
    functionLinenumberEnd: 599
    functionName: TPM2B_NAME_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 2
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_NAME_Marshal(TPM2B_NAME *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:608,1
    - Dst: UINT8_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:609,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_PCR_SELECTION*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 603
    functionDepth: 4
    functionLinenumber: 603
    functionLinenumberEnd: 612
    functionName: TPMS_PCR_SELECTION_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_HASH_Marshal
    - UINT8_Marshal
    - Array_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_PCR_SELECTION_Marshal(TPMS_PCR_SELECTION *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:621,1
    - Dst: TPMI_RH_HIERARCHY_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:622,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMT_TK_CREATION*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 616
    functionDepth: 4
    functionLinenumber: 616
    functionLinenumberEnd: 625
    functionName: TPMT_TK_CREATION_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMI_RH_HIERARCHY_Marshal
    - TPM_ST_Marshal
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMT_TK_CREATION_Marshal(TPMT_TK_CREATION *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:634,1
    - Dst: TPMI_RH_HIERARCHY_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:635,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMT_TK_VERIFIED*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 629
    functionDepth: 4
    functionLinenumber: 629
    functionLinenumberEnd: 638
    functionName: TPMT_TK_VERIFIED_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMI_RH_HIERARCHY_Marshal
    - TPM_ST_Marshal
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMT_TK_VERIFIED_Marshal(TPMT_TK_VERIFIED *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:647,1
    - Dst: TPMI_RH_HIERARCHY_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:648,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMT_TK_AUTH*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 642
    functionDepth: 4
    functionLinenumber: 642
    functionLinenumberEnd: 651
    functionName: TPMT_TK_AUTH_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMI_RH_HIERARCHY_Marshal
    - TPM_ST_Marshal
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMT_TK_AUTH_Marshal(TPMT_TK_AUTH *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:660,1
    - Dst: TPMI_RH_HIERARCHY_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:661,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMT_TK_HASHCHECK*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 655
    functionDepth: 4
    functionLinenumber: 655
    functionLinenumberEnd: 664
    functionName: TPMT_TK_HASHCHECK_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMI_RH_HIERARCHY_Marshal
    - TPM_ST_Marshal
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMT_TK_HASHCHECK_Marshal(TPMT_TK_HASHCHECK *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:673,1
    - Dst: TPMA_ALGORITHM_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_ALG_PROPERTY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 668
    functionDepth: 3
    functionLinenumber: 668
    functionLinenumberEnd: 676
    functionName: TPMS_ALG_PROPERTY_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMA_ALGORITHM_Marshal
    - TPM_ALG_ID_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_ALG_PROPERTY_Marshal(TPMS_ALG_PROPERTY *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_PT_PCR_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:685,1
    - Dst: UINT8_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:686,1
    - Dst: Array_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_TAGGED_PCR_SELECT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 680
    functionDepth: 3
    functionLinenumber: 680
    functionLinenumberEnd: 689
    functionName: TPMS_TAGGED_PCR_SELECT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT8_Marshal
    - TPM_PT_PCR_Marshal
    - Array_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_TAGGED_PCR_SELECT_Marshal(TPMS_TAGGED_PCR_SELECT *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:698,1
    - Dst: TPMT_HA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_TAGGED_POLICY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 693
    functionDepth: 5
    functionLinenumber: 693
    functionLinenumberEnd: 701
    functionName: TPMS_TAGGED_POLICY_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Marshal
    - TPMT_HA_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_TAGGED_POLICY_Marshal(TPMS_TAGGED_POLICY *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:710,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:711,1
    - Dst: TPMA_ACT_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_ACT_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 705
    functionDepth: 3
    functionLinenumber: 705
    functionLinenumberEnd: 714
    functionName: TPMS_ACT_DATA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Marshal
    - TPMA_ACT_Marshal
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_ACT_DATA_Marshal(TPMS_ACT_DATA *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_PT_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:723,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_TAGGED_PROPERTY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 718
    functionDepth: 3
    functionLinenumber: 718
    functionLinenumberEnd: 726
    functionName: TPMS_TAGGED_PROPERTY_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_PT_Marshal
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_TAGGED_PROPERTY_Marshal(TPMS_TAGGED_PROPERTY *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:736,1
    - Dst: TPM_CC_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPML_CC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 730
    functionDepth: 3
    functionLinenumber: 730
    functionLinenumberEnd: 741
    functionName: TPML_CC_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_CC_Marshal
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPML_CC_Marshal(TPML_CC *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:751,1
    - Dst: TPMA_CC_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPML_CCA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 745
    functionDepth: 3
    functionLinenumber: 745
    functionLinenumberEnd: 756
    functionName: TPML_CCA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    - TPMA_CC_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPML_CCA_Marshal(TPML_CCA *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:766,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPML_ALG*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 760
    functionDepth: 3
    functionLinenumber: 760
    functionLinenumberEnd: 771
    functionName: TPML_ALG_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_ALG_ID_Marshal
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPML_ALG_Marshal(TPML_ALG *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:781,1
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPML_HANDLE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 775
    functionDepth: 3
    functionLinenumber: 775
    functionLinenumberEnd: 786
    functionName: TPML_HANDLE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Marshal
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPML_HANDLE_Marshal(TPML_HANDLE *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:796,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPML_DIGEST*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 790
    functionDepth: 4
    functionLinenumber: 790
    functionLinenumberEnd: 801
    functionName: TPML_DIGEST_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPML_DIGEST_Marshal(TPML_DIGEST *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:811,1
    - Dst: TPMT_HA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPML_DIGEST_VALUES*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 805
    functionDepth: 5
    functionLinenumber: 805
    functionLinenumberEnd: 816
    functionName: TPML_DIGEST_VALUES_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    - TPMT_HA_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPML_DIGEST_VALUES_Marshal(TPML_DIGEST_VALUES *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:826,1
    - Dst: TPMS_PCR_SELECTION_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPML_PCR_SELECTION*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 820
    functionDepth: 5
    functionLinenumber: 820
    functionLinenumberEnd: 831
    functionName: TPML_PCR_SELECTION_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - UINT32_Marshal
    - TPMS_PCR_SELECTION_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPML_PCR_SELECTION_Marshal(TPML_PCR_SELECTION *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:842,1
    - Dst: TPMS_ALG_PROPERTY_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPML_ALG_PROPERTY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 836
    functionDepth: 4
    functionLinenumber: 836
    functionLinenumberEnd: 847
    functionName: TPML_ALG_PROPERTY_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    - TPMS_ALG_PROPERTY_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPML_ALG_PROPERTY_Marshal(TPML_ALG_PROPERTY *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:857,1
    - Dst: TPMS_TAGGED_PROPERTY_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPML_TAGGED_TPM_PROPERTY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 851
    functionDepth: 4
    functionLinenumber: 851
    functionLinenumberEnd: 862
    functionName: TPML_TAGGED_TPM_PROPERTY_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_TAGGED_PROPERTY_Marshal
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPML_TAGGED_TPM_PROPERTY_Marshal(TPML_TAGGED_TPM_PROPERTY *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:872,1
    - Dst: TPMS_TAGGED_PCR_SELECT_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPML_TAGGED_PCR_PROPERTY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 866
    functionDepth: 4
    functionLinenumber: 866
    functionLinenumberEnd: 877
    functionName: TPML_TAGGED_PCR_PROPERTY_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_TAGGED_PCR_SELECT_Marshal
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPML_TAGGED_PCR_PROPERTY_Marshal(TPML_TAGGED_PCR_PROPERTY *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:888,1
    - Dst: TPM_ECC_CURVE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPML_ECC_CURVE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 881
    functionDepth: 3
    functionLinenumber: 881
    functionLinenumberEnd: 893
    functionName: TPML_ECC_CURVE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_ECC_CURVE_Marshal
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPML_ECC_CURVE_Marshal(TPML_ECC_CURVE *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:903,1
    - Dst: TPMS_TAGGED_POLICY_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPML_TAGGED_POLICY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 897
    functionDepth: 6
    functionLinenumber: 897
    functionLinenumberEnd: 908
    functionName: TPML_TAGGED_POLICY_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_TAGGED_POLICY_Marshal
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPML_TAGGED_POLICY_Marshal(TPML_TAGGED_POLICY *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:918,1
    - Dst: TPMS_ACT_DATA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPML_ACT_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 912
    functionDepth: 4
    functionLinenumber: 912
    functionLinenumberEnd: 923
    functionName: TPML_ACT_DATA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_ACT_DATA_Marshal
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPML_ACT_DATA_Marshal(TPML_ACT_DATA *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TPML_ALG_PROPERTY_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:934,1
    - Dst: TPML_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:937,1
    - Dst: TPML_CCA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:940,1
    - Dst: TPML_CC_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:943,1
    - Dst: TPML_CC_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:946,1
    - Dst: TPML_PCR_SELECTION_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:949,1
    - Dst: TPML_TAGGED_TPM_PROPERTY_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:952,1
    - Dst: TPML_TAGGED_PCR_PROPERTY_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:955,1
    - Dst: TPML_ECC_CURVE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:958,1
    - Dst: TPML_TAGGED_POLICY_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:961,1
    - Dst: TPML_ACT_DATA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:964,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:967,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 4
    argNames:
    - source
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_CAPABILITIES*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 927
    functionDepth: 7
    functionLinenumber: 927
    functionLinenumberEnd: 970
    functionName: TPMU_CAPABILITIES_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPML_TAGGED_TPM_PROPERTY_Marshal
    - TPML_TAGGED_PCR_PROPERTY_Marshal
    - TPML_CCA_Marshal
    - TPML_TAGGED_POLICY_Marshal
    - TPML_ACT_DATA_Marshal
    - pAssert
    - TPML_ALG_PROPERTY_Marshal
    - TPML_CC_Marshal
    - TPML_ECC_CURVE_Marshal
    - TPML_HANDLE_Marshal
    - TPML_PCR_SELECTION_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMU_CAPABILITIES_Marshal(TPMU_CAPABILITIES *source, BYTE **buffer,
      INT32 *size, UINT32 selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_CAP_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:979,1
    - Dst: TPMU_CAPABILITIES_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_CAPABILITY_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 974
    functionDepth: 8
    functionLinenumber: 974
    functionLinenumberEnd: 982
    functionName: TPMS_CAPABILITY_DATA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_CAP_Marshal
    - TPMU_CAPABILITIES_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_CAPABILITY_DATA_Marshal(TPMS_CAPABILITY_DATA *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:991,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:992,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:993,1
    - Dst: TPMI_YES_NO_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_CLOCK_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 986
    functionDepth: 3
    functionLinenumber: 986
    functionLinenumberEnd: 996
    functionName: TPMS_CLOCK_INFO_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT64_Marshal
    - UINT32_Marshal
    - TPMI_YES_NO_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_CLOCK_INFO_Marshal(TPMS_CLOCK_INFO *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1005,1
    - Dst: TPMS_CLOCK_INFO_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_TIME_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 1000
    functionDepth: 4
    functionLinenumber: 1000
    functionLinenumberEnd: 1008
    functionName: TPMS_TIME_INFO_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT64_Marshal
    - TPMS_CLOCK_INFO_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_TIME_INFO_Marshal(TPMS_TIME_INFO *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_TIME_INFO_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1017,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_TIME_ATTEST_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1012
    functionDepth: 5
    functionLinenumber: 1012
    functionLinenumberEnd: 1020
    functionName: TPMS_TIME_ATTEST_INFO_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT64_Marshal
    - TPMS_TIME_INFO_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_TIME_ATTEST_INFO_Marshal(TPMS_TIME_ATTEST_INFO *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_NAME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1029,1
    - Dst: TPM2B_NAME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_CERTIFY_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1024
    functionDepth: 4
    functionLinenumber: 1024
    functionLinenumberEnd: 1032
    functionName: TPMS_CERTIFY_INFO_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_NAME_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_CERTIFY_INFO_Marshal(TPMS_CERTIFY_INFO *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPML_PCR_SELECTION_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1041,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_QUOTE_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1036
    functionDepth: 6
    functionLinenumber: 1036
    functionLinenumberEnd: 1044
    functionName: TPMS_QUOTE_INFO_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPML_PCR_SELECTION_Marshal
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_QUOTE_INFO_Marshal(TPMS_QUOTE_INFO *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1053,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1054,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1055,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_COMMAND_AUDIT_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1048
    functionDepth: 4
    functionLinenumber: 1048
    functionLinenumberEnd: 1058
    functionName: TPMS_COMMAND_AUDIT_INFO_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT64_Marshal
    - TPM_ALG_ID_Marshal
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_COMMAND_AUDIT_INFO_Marshal(TPMS_COMMAND_AUDIT_INFO *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_YES_NO_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1067,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SESSION_AUDIT_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1062
    functionDepth: 4
    functionLinenumber: 1062
    functionLinenumberEnd: 1070
    functionName: TPMS_SESSION_AUDIT_INFO_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMI_YES_NO_Marshal
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SESSION_AUDIT_INFO_Marshal(TPMS_SESSION_AUDIT_INFO *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_NAME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1079,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_CREATION_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1074
    functionDepth: 4
    functionLinenumber: 1074
    functionLinenumberEnd: 1082
    functionName: TPMS_CREATION_INFO_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_NAME_Marshal
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_CREATION_INFO_Marshal(TPMS_CREATION_INFO *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_NAME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1091,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1092,1
    - Dst: TPM2B_MAX_NV_BUFFER_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_NV_CERTIFY_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1086
    functionDepth: 4
    functionLinenumber: 1086
    functionLinenumberEnd: 1095
    functionName: TPMS_NV_CERTIFY_INFO_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - TPM2B_MAX_NV_BUFFER_Marshal
    - TPM2B_NAME_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_NV_CERTIFY_INFO_Marshal(TPMS_NV_CERTIFY_INFO *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_NAME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1102,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_NV_DIGEST_CERTIFY_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1098
    functionDepth: 4
    functionLinenumber: 1098
    functionLinenumberEnd: 1105
    functionName: TPMS_NV_DIGEST_CERTIFY_INFO_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_NAME_Marshal
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_NV_DIGEST_CERTIFY_INFO_Marshal(TPMS_NV_DIGEST_CERTIFY_INFO
      *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_ST_ATTEST*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1109
    functionDepth: 3
    functionLinenumber: 1109
    functionLinenumberEnd: 1115
    functionName: TPMI_ST_ATTEST_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_ST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_ST_ATTEST_Marshal(TPMI_ST_ATTEST *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_CERTIFY_INFO_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1126,1
    - Dst: TPMS_CREATION_INFO_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1129,1
    - Dst: TPMS_QUOTE_INFO_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1132,1
    - Dst: TPMS_COMMAND_AUDIT_INFO_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1135,1
    - Dst: TPMS_SESSION_AUDIT_INFO_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1138,1
    - Dst: TPMS_TIME_ATTEST_INFO_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1141,1
    - Dst: TPMS_NV_CERTIFY_INFO_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1144,1
    - Dst: TPMS_NV_DIGEST_CERTIFY_INFO_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1147,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:1150,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - source
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_ATTEST*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1119
    functionDepth: 7
    functionLinenumber: 1119
    functionLinenumberEnd: 1153
    functionName: TPMU_ATTEST_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_TIME_ATTEST_INFO_Marshal
    - TPMS_CREATION_INFO_Marshal
    - pAssert
    - TPMS_NV_DIGEST_CERTIFY_INFO_Marshal
    - TPMS_COMMAND_AUDIT_INFO_Marshal
    - TPMS_SESSION_AUDIT_INFO_Marshal
    - TPMS_NV_CERTIFY_INFO_Marshal
    - TPMS_CERTIFY_INFO_Marshal
    - TPMS_QUOTE_INFO_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMU_ATTEST_Marshal(TPMU_ATTEST  *source, BYTE **buffer, INT32
      *size, UINT32 selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_CONSTANTS32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1162,1
    - Dst: TPMI_ST_ATTEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1163,1
    - Dst: TPM2B_NAME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1164,1
    - Dst: TPM2B_DATA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1165,1
    - Dst: TPMS_CLOCK_INFO_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1166,1
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1167,1
    - Dst: TPMU_ATTEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_ATTEST*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1157
    functionDepth: 8
    functionLinenumber: 1157
    functionLinenumberEnd: 1170
    functionName: TPMS_ATTEST_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_DATA_Marshal
    - TPM_CONSTANTS32_Marshal
    - UINT64_Marshal
    - TPMU_ATTEST_Marshal
    - TPM2B_NAME_Marshal
    - TPMI_ST_ATTEST_Marshal
    - TPMS_CLOCK_INFO_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_ATTEST_Marshal(TPMS_ATTEST  *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_ATTEST*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1174
    functionDepth: 3
    functionLinenumber: 1174
    functionLinenumberEnd: 1180
    functionName: TPM2B_ATTEST_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_ATTEST_Marshal(TPM2B_ATTEST *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_KEY_BITS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_AES_KEY_BITS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1184
    functionDepth: 3
    functionLinenumber: 1184
    functionLinenumberEnd: 1190
    functionName: TPMI_AES_KEY_BITS_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_KEY_BITS_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_AES_KEY_BITS_Marshal(TPMI_AES_KEY_BITS *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_KEY_BITS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_TDES_KEY_BITS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1191
    functionDepth: 3
    functionLinenumber: 1191
    functionLinenumberEnd: 1197
    functionName: TPMI_TDES_KEY_BITS_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_KEY_BITS_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_TDES_KEY_BITS_Marshal(TPMI_TDES_KEY_BITS *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_KEY_BITS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_CAMELLIA_KEY_BITS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1200
    functionDepth: 3
    functionLinenumber: 1200
    functionLinenumberEnd: 1206
    functionName: TPMI_CAMELLIA_KEY_BITS_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_KEY_BITS_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_CAMELLIA_KEY_BITS_Marshal(TPMI_CAMELLIA_KEY_BITS *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_AES_KEY_BITS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1219,1
    - Dst: TPMI_SM4_KEY_BITS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1224,1
    - Dst: TPMI_CAMELLIA_KEY_BITS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1229,1
    - Dst: TPMI_TDES_KEY_BITS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1234,1
    - Dst: TPMI_ALG_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1239,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:1245,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - source
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_SYM_KEY_BITS*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1211
    functionDepth: 4
    functionLinenumber: 1211
    functionLinenumberEnd: 1248
    functionName: TPMU_SYM_KEY_BITS_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - TPMI_TDES_KEY_BITS_Marshal
    - TPMI_CAMELLIA_KEY_BITS_Marshal
    - TPMI_SM4_KEY_BITS_Marshal
    - pAssert
    - TPMI_ALG_HASH_Marshal
    - TPMI_AES_KEY_BITS_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMU_SYM_KEY_BITS_Marshal(TPMU_SYM_KEY_BITS *source, BYTE **buffer,
      INT32 *size, UINT32 selector)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_SYM_MODE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1260,1
    - Dst: TPMI_ALG_SYM_MODE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1265,1
    - Dst: TPMI_ALG_SYM_MODE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1270,1
    - Dst: TPMI_ALG_SYM_MODE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1275,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:1284,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - source
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_SYM_MODE*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1252
    functionDepth: 4
    functionLinenumber: 1252
    functionLinenumberEnd: 1287
    functionName: TPMU_SYM_MODE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - pAssert
    - TPMI_ALG_SYM_MODE_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMU_SYM_MODE_Marshal(TPMU_SYM_MODE *source, BYTE **buffer,
      INT32 *size, UINT32 selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_SYM_OBJECT_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1296,1
    - Dst: TPMU_SYM_KEY_BITS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1297,1
    - Dst: TPMU_SYM_MODE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMT_SYM_DEF_OBJECT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1291
    functionDepth: 5
    functionLinenumber: 1291
    functionLinenumberEnd: 1300
    functionName: TPMT_SYM_DEF_OBJECT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_SYM_OBJECT_Marshal
    - TPMU_SYM_KEY_BITS_Marshal
    - TPMU_SYM_MODE_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMT_SYM_DEF_OBJECT_Marshal(TPMT_SYM_DEF_OBJECT *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_SYM_KEY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1304
    functionDepth: 3
    functionLinenumber: 1304
    functionLinenumberEnd: 1310
    functionName: TPM2B_SYM_KEY_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_SYM_KEY_Marshal(TPM2B_SYM_KEY *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMT_SYM_DEF_OBJECT_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SYMCIPHER_PARMS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1314
    functionDepth: 6
    functionLinenumber: 1314
    functionLinenumberEnd: 1321
    functionName: TPMS_SYMCIPHER_PARMS_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMT_SYM_DEF_OBJECT_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SYMCIPHER_PARMS_Marshal(TPMS_SYMCIPHER_PARMS *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_SENSITIVE_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1325
    functionDepth: 3
    functionLinenumber: 1325
    functionLinenumberEnd: 1331
    functionName: TPM2B_SENSITIVE_DATA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_SENSITIVE_DATA_Marshal(TPM2B_SENSITIVE_DATA *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SCHEME_HASH*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1335
    functionDepth: 4
    functionLinenumber: 1335
    functionLinenumberEnd: 1342
    functionName: TPMS_SCHEME_HASH_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SCHEME_HASH_Marshal(TPMS_SCHEME_HASH *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1351,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SCHEME_ECDAA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1346
    functionDepth: 4
    functionLinenumber: 1346
    functionLinenumberEnd: 1354
    functionName: TPMS_SCHEME_ECDAA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - TPMI_ALG_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SCHEME_ECDAA_Marshal(TPMS_SCHEME_ECDAA *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_ALG_KEYEDHASH_SCHEME*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1358
    functionDepth: 3
    functionLinenumber: 1358
    functionLinenumberEnd: 1364
    functionName: TPMI_ALG_KEYEDHASH_SCHEME_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_ALG_ID_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_ALG_KEYEDHASH_SCHEME_Marshal(TPMI_ALG_KEYEDHASH_SCHEME
      *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SCHEME_HMAC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1368
    functionDepth: 5
    functionLinenumber: 1368
    functionLinenumberEnd: 1374
    functionName: TPMS_SCHEME_HMAC_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SCHEME_HMAC_Marshal(TPMS_SCHEME_HMAC *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1383,1
    - Dst: TPMI_ALG_KDF_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SCHEME_XOR*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1378
    functionDepth: 4
    functionLinenumber: 1378
    functionLinenumberEnd: 1386
    functionName: TPMS_SCHEME_XOR_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_KDF_Marshal
    - TPMI_ALG_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SCHEME_XOR_Marshal(TPMS_SCHEME_XOR *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_KEYEDHASH_SCHEME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1395,1
    - Dst: TPMU_SCHEME_KEYEDHASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMT_KEYEDHASH_SCHEME*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1390
    functionDepth: 4
    functionLinenumber: 1390
    functionLinenumberEnd: 1398
    functionName: TPMT_KEYEDHASH_SCHEME_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_KEYEDHASH_SCHEME_Marshal
    - TPMU_SCHEME_KEYEDHASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMT_KEYEDHASH_SCHEME_Marshal(TPMT_KEYEDHASH_SCHEME *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SIG_SCHEME_RSASSA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1402
    functionDepth: 5
    functionLinenumber: 1402
    functionLinenumberEnd: 1408
    functionName: TPMS_SIG_SCHEME_RSASSA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SIG_SCHEME_RSASSA_Marshal(TPMS_SIG_SCHEME_RSASSA *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SIG_SCHEME_RSAPSS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1410
    functionDepth: 5
    functionLinenumber: 1410
    functionLinenumberEnd: 1416
    functionName: TPMS_SIG_SCHEME_RSAPSS_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SIG_SCHEME_RSAPSS_Marshal(TPMS_SIG_SCHEME_RSAPSS *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SIG_SCHEME_ECDSA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1420
    functionDepth: 5
    functionLinenumber: 1420
    functionLinenumberEnd: 1426
    functionName: TPMS_SIG_SCHEME_ECDSA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SIG_SCHEME_ECDSA_Marshal(TPMS_SIG_SCHEME_ECDSA *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SIG_SCHEME_SM2*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1427
    functionDepth: 5
    functionLinenumber: 1427
    functionLinenumberEnd: 1433
    functionName: TPMS_SIG_SCHEME_SM2_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SIG_SCHEME_SM2_Marshal(TPMS_SIG_SCHEME_SM2 *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SIG_SCHEME_ECSCHNORR*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1434
    functionDepth: 5
    functionLinenumber: 1434
    functionLinenumberEnd: 1440
    functionName: TPMS_SIG_SCHEME_ECSCHNORR_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SIG_SCHEME_ECSCHNORR_Marshal(TPMS_SIG_SCHEME_ECSCHNORR
      *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_ECDAA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SIG_SCHEME_ECDAA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1441
    functionDepth: 5
    functionLinenumber: 1441
    functionLinenumberEnd: 1447
    functionName: TPMS_SIG_SCHEME_ECDAA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_ECDAA_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SIG_SCHEME_ECDAA_Marshal(TPMS_SIG_SCHEME_ECDAA *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_ENC_SCHEME_OAEP*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1451
    functionDepth: 5
    functionLinenumber: 1451
    functionLinenumberEnd: 1457
    functionName: TPMS_ENC_SCHEME_OAEP_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_ENC_SCHEME_OAEP_Marshal(TPMS_ENC_SCHEME_OAEP *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_ENC_SCHEME_RSAES*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1461
    functionDepth: 0
    functionLinenumber: 1461
    functionLinenumberEnd: 1468
    functionName: TPMS_ENC_SCHEME_RSAES_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_ENC_SCHEME_RSAES_Marshal(TPMS_ENC_SCHEME_RSAES *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HMAC_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1480,1
    - Dst: TPMS_SCHEME_XOR_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1485,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:1491,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - source
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_SCHEME_KEYEDHASH*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1472
    functionDepth: 6
    functionLinenumber: 1472
    functionLinenumberEnd: 1494
    functionName: TPMU_SCHEME_KEYEDHASH_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - TPMS_SCHEME_XOR_Marshal
    - pAssert
    - TPMS_SCHEME_HMAC_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMU_SCHEME_KEYEDHASH_Marshal(TPMU_SCHEME_KEYEDHASH *source,
      BYTE **buffer, INT32 *size, UINT32 selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_KEY_SCHEME_ECDH*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1498
    functionDepth: 5
    functionLinenumber: 1498
    functionLinenumberEnd: 1504
    functionName: TPMS_KEY_SCHEME_ECDH_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_KEY_SCHEME_ECDH_Marshal(TPMS_KEY_SCHEME_ECDH *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_KEY_SCHEME_ECMQV*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1506
    functionDepth: 5
    functionLinenumber: 1506
    functionLinenumberEnd: 1512
    functionName: TPMS_KEY_SCHEME_ECMQV_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_KEY_SCHEME_ECMQV_Marshal(TPMS_KEY_SCHEME_ECMQV*source,
      BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_KDF_SCHEME_MGF1*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1515
    functionDepth: 5
    functionLinenumber: 1515
    functionLinenumberEnd: 1521
    functionName: TPMS_KDF_SCHEME_MGF1_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_KDF_SCHEME_MGF1_Marshal(TPMS_KDF_SCHEME_MGF1 *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_KDF_SCHEME_KDF1_SP800_56A*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1522
    functionDepth: 5
    functionLinenumber: 1522
    functionLinenumberEnd: 1528
    functionName: TPMS_KDF_SCHEME_KDF1_SP800_56A_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_KDF_SCHEME_KDF1_SP800_56A_Marshal(TPMS_KDF_SCHEME_KDF1_SP800_56A
      *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_KDF_SCHEME_KDF2*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1529
    functionDepth: 5
    functionLinenumber: 1529
    functionLinenumberEnd: 1535
    functionName: TPMS_KDF_SCHEME_KDF2_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_KDF_SCHEME_KDF2_Marshal(TPMS_KDF_SCHEME_KDF2 *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_KDF_SCHEME_KDF1_SP800_108*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1536
    functionDepth: 5
    functionLinenumber: 1536
    functionLinenumberEnd: 1542
    functionName: TPMS_KDF_SCHEME_KDF1_SP800_108_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_KDF_SCHEME_KDF1_SP800_108_Marshal(TPMS_KDF_SCHEME_KDF1_SP800_108
      *source, BYTE **buffer, INT32 *size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_KDF_SCHEME_MGF1_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1555,1
    - Dst: TPMS_KDF_SCHEME_KDF1_SP800_56A_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1560,1
    - Dst: TPMS_KDF_SCHEME_KDF2_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1565,1
    - Dst: TPMS_KDF_SCHEME_KDF1_SP800_108_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1570,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:1576,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - source
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_KDF_SCHEME*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1546
    functionDepth: 6
    functionLinenumber: 1546
    functionLinenumberEnd: 1579
    functionName: TPMU_KDF_SCHEME_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_KDF_SCHEME_KDF1_SP800_56A_Marshal
    - TPMS_KDF_SCHEME_KDF2_Marshal
    - TPMS_KDF_SCHEME_MGF1_Marshal
    - pAssert
    - TPMS_KDF_SCHEME_KDF1_SP800_108_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMU_KDF_SCHEME_Marshal(TPMU_KDF_SCHEME *source, BYTE **buffer,
      INT32 *size, UINT32 selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_KDF_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1588,1
    - Dst: TPMU_KDF_SCHEME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMT_KDF_SCHEME*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1583
    functionDepth: 7
    functionLinenumber: 1583
    functionLinenumberEnd: 1591
    functionName: TPMT_KDF_SCHEME_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_KDF_Marshal
    - TPMU_KDF_SCHEME_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMT_KDF_SCHEME_Marshal(TPMT_KDF_SCHEME *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_KEY_SCHEME_ECDH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1603,1
    - Dst: TPMS_KEY_SCHEME_ECMQV_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1608,1
    - Dst: TPMS_SIG_SCHEME_RSASSA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1613,1
    - Dst: TPMS_SIG_SCHEME_RSAPSS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1618,1
    - Dst: TPMS_SIG_SCHEME_ECDSA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1623,1
    - Dst: TPMS_SIG_SCHEME_ECDAA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1628,1
    - Dst: TPMS_SIG_SCHEME_SM2_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1633,1
    - Dst: TPMS_SIG_SCHEME_ECSCHNORR_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1638,1
    - Dst: TPMS_ENC_SCHEME_RSAES_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1643,1
    - Dst: TPMS_ENC_SCHEME_OAEP_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1648,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:1654,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - source
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_ASYM_SCHEME*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1595
    functionDepth: 6
    functionLinenumber: 1595
    functionLinenumberEnd: 1657
    functionName: TPMU_ASYM_SCHEME_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SIG_SCHEME_SM2_Marshal
    - TPMS_ENC_SCHEME_RSAES_Marshal
    - TPMS_KEY_SCHEME_ECMQV_Marshal
    - TPMS_SIG_SCHEME_ECDSA_Marshal
    - pAssert
    - TPMS_ENC_SCHEME_OAEP_Marshal
    - TPMS_SIG_SCHEME_ECDAA_Marshal
    - TPMS_KEY_SCHEME_ECDH_Marshal
    - TPMS_SIG_SCHEME_ECSCHNORR_Marshal
    - TPMS_SIG_SCHEME_RSAPSS_Marshal
    - TPMS_SIG_SCHEME_RSASSA_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMU_ASYM_SCHEME_Marshal(TPMU_ASYM_SCHEME  *source, BYTE **buffer,
      INT32 *size, UINT32 selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_ALG_RSA_SCHEME*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1661
    functionDepth: 3
    functionLinenumber: 1661
    functionLinenumberEnd: 1667
    functionName: TPMI_ALG_RSA_SCHEME_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_ALG_ID_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_ALG_RSA_SCHEME_Marshal(TPMI_ALG_RSA_SCHEME *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_RSA_SCHEME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1676,1
    - Dst: TPMU_ASYM_SCHEME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMT_RSA_SCHEME*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1671
    functionDepth: 7
    functionLinenumber: 1671
    functionLinenumberEnd: 1679
    functionName: TPMT_RSA_SCHEME_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_RSA_SCHEME_Marshal
    - TPMU_ASYM_SCHEME_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMT_RSA_SCHEME_Marshal(TPMT_RSA_SCHEME *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_PUBLIC_KEY_RSA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1683
    functionDepth: 3
    functionLinenumber: 1683
    functionLinenumberEnd: 1689
    functionName: TPM2B_PUBLIC_KEY_RSA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_PUBLIC_KEY_RSA_Marshal(TPM2B_PUBLIC_KEY_RSA *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_KEY_BITS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_RSA_KEY_BITS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1693
    functionDepth: 3
    functionLinenumber: 1693
    functionLinenumberEnd: 1699
    functionName: TPMI_RSA_KEY_BITS_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_KEY_BITS_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_RSA_KEY_BITS_Marshal(TPMI_RSA_KEY_BITS *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_PRIVATE_KEY_RSA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1703
    functionDepth: 3
    functionLinenumber: 1703
    functionLinenumberEnd: 1709
    functionName: TPM2B_PRIVATE_KEY_RSA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_PRIVATE_KEY_RSA_Marshal(TPM2B_PRIVATE_KEY_RSA *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_ECC_PARAMETER*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1713
    functionDepth: 3
    functionLinenumber: 1713
    functionLinenumberEnd: 1719
    functionName: TPM2B_ECC_PARAMETER_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_ECC_PARAMETER_Marshal(TPM2B_ECC_PARAMETER *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_ECC_PARAMETER_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1728,1
    - Dst: TPM2B_ECC_PARAMETER_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_ECC_POINT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1723
    functionDepth: 4
    functionLinenumber: 1723
    functionLinenumberEnd: 1731
    functionName: TPMS_ECC_POINT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_ECC_PARAMETER_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_ECC_POINT_Marshal(TPMS_ECC_POINT *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_ECC_POINT_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1745,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_ECC_POINT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1735
    functionDepth: 5
    functionLinenumber: 1735
    functionLinenumberEnd: 1753
    functionName: TPM2B_ECC_POINT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - TPMS_ECC_POINT_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_ECC_POINT_Marshal(TPM2B_ECC_POINT *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_ALG_ECC_SCHEME*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1757
    functionDepth: 3
    functionLinenumber: 1757
    functionLinenumberEnd: 1763
    functionName: TPMI_ALG_ECC_SCHEME_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_ALG_ID_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_ALG_ECC_SCHEME_Marshal(TPMI_ALG_ECC_SCHEME *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ECC_CURVE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_ECC_CURVE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1767
    functionDepth: 3
    functionLinenumber: 1767
    functionLinenumberEnd: 1773
    functionName: TPMI_ECC_CURVE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM_ECC_CURVE_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_ECC_CURVE_Marshal(TPMI_ECC_CURVE *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_ECC_SCHEME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1782,1
    - Dst: TPMU_ASYM_SCHEME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMT_ECC_SCHEME*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1777
    functionDepth: 7
    functionLinenumber: 1777
    functionLinenumberEnd: 1785
    functionName: TPMT_ECC_SCHEME_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_ECC_SCHEME_Marshal
    - TPMU_ASYM_SCHEME_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMT_ECC_SCHEME_Marshal(TPMT_ECC_SCHEME *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ECC_CURVE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1794,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1795,1
    - Dst: TPMT_KDF_SCHEME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1796,1
    - Dst: TPMT_ECC_SCHEME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1797,1
    - Dst: TPM2B_ECC_PARAMETER_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1798,1
    - Dst: TPM2B_ECC_PARAMETER_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1799,1
    - Dst: TPM2B_ECC_PARAMETER_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1800,1
    - Dst: TPM2B_ECC_PARAMETER_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1801,1
    - Dst: TPM2B_ECC_PARAMETER_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1802,1
    - Dst: TPM2B_ECC_PARAMETER_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1803,1
    - Dst: TPM2B_ECC_PARAMETER_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_ALGORITHM_DETAIL_ECC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1789
    functionDepth: 8
    functionLinenumber: 1789
    functionLinenumberEnd: 1806
    functionName: TPMS_ALGORITHM_DETAIL_ECC_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - TPM2B_ECC_PARAMETER_Marshal
    - TPMT_ECC_SCHEME_Marshal
    - TPMT_KDF_SCHEME_Marshal
    - TPM_ECC_CURVE_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_ALGORITHM_DETAIL_ECC_Marshal(TPMS_ALGORITHM_DETAIL_ECC
      *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1815,1
    - Dst: TPM2B_PUBLIC_KEY_RSA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SIGNATURE_RSA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1810
    functionDepth: 4
    functionLinenumber: 1810
    functionLinenumberEnd: 1818
    functionName: TPMS_SIGNATURE_RSA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_PUBLIC_KEY_RSA_Marshal
    - TPMI_ALG_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SIGNATURE_RSA_Marshal(TPMS_SIGNATURE_RSA *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SIGNATURE_RSA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SIGNATURE_RSASSA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1821
    functionDepth: 5
    functionLinenumber: 1821
    functionLinenumberEnd: 1827
    functionName: TPMS_SIGNATURE_RSASSA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SIGNATURE_RSA_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SIGNATURE_RSASSA_Marshal(TPMS_SIGNATURE_RSASSA *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SIGNATURE_RSA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SIGNATURE_RSAPSS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1828
    functionDepth: 5
    functionLinenumber: 1828
    functionLinenumberEnd: 1834
    functionName: TPMS_SIGNATURE_RSAPSS_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SIGNATURE_RSA_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SIGNATURE_RSAPSS_Marshal(TPMS_SIGNATURE_RSAPSS *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1843,1
    - Dst: TPM2B_ECC_PARAMETER_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1844,1
    - Dst: TPM2B_ECC_PARAMETER_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SIGNATURE_ECC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1838
    functionDepth: 4
    functionLinenumber: 1838
    functionLinenumberEnd: 1847
    functionName: TPMS_SIGNATURE_ECC_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_ECC_PARAMETER_Marshal
    - TPMI_ALG_HASH_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SIGNATURE_ECC_Marshal(TPMS_SIGNATURE_ECC *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SIGNATURE_ECC_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SIGNATURE_ECDSA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1851
    functionDepth: 5
    functionLinenumber: 1851
    functionLinenumberEnd: 1857
    functionName: TPMS_SIGNATURE_ECDSA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SIGNATURE_ECC_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SIGNATURE_ECDSA_Marshal(TPMS_SIGNATURE_ECDSA *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SIGNATURE_ECC_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SIGNATURE_ECDAA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1859
    functionDepth: 5
    functionLinenumber: 1859
    functionLinenumberEnd: 1865
    functionName: TPMS_SIGNATURE_ECDAA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SIGNATURE_ECC_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SIGNATURE_ECDAA_Marshal(TPMS_SIGNATURE_ECDAA *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SIGNATURE_ECC_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SIGNATURE_SM2*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1867
    functionDepth: 5
    functionLinenumber: 1867
    functionLinenumberEnd: 1873
    functionName: TPMS_SIGNATURE_SM2_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SIGNATURE_ECC_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SIGNATURE_SM2_Marshal(TPMS_SIGNATURE_SM2 *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SIGNATURE_ECC_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_SIGNATURE_ECSCHNORR*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1875
    functionDepth: 5
    functionLinenumber: 1875
    functionLinenumberEnd: 1881
    functionName: TPMS_SIGNATURE_ECSCHNORR_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SIGNATURE_ECC_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_SIGNATURE_ECSCHNORR_Marshal(TPMS_SIGNATURE_ECSCHNORR *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SIGNATURE_RSASSA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1892,1
    - Dst: TPMS_SIGNATURE_RSAPSS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1897,1
    - Dst: TPMS_SIGNATURE_ECDSA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1902,1
    - Dst: TPMS_SIGNATURE_ECDAA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1907,1
    - Dst: TPMS_SIGNATURE_SM2_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1912,1
    - Dst: TPMS_SIGNATURE_ECSCHNORR_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1917,1
    - Dst: TPMT_HA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1922,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:1928,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - source
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_SIGNATURE*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1884
    functionDepth: 6
    functionLinenumber: 1884
    functionLinenumberEnd: 1931
    functionName: TPMU_SIGNATURE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SIGNATURE_ECDAA_Marshal
    - TPMS_SIGNATURE_SM2_Marshal
    - TPMS_SIGNATURE_RSAPSS_Marshal
    - pAssert
    - TPMS_SIGNATURE_ECSCHNORR_Marshal
    - TPMT_HA_Marshal
    - TPMS_SIGNATURE_ECDSA_Marshal
    - TPMS_SIGNATURE_RSASSA_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMU_SIGNATURE_Marshal(TPMU_SIGNATURE *source, BYTE **buffer,
      INT32 *size, UINT32 selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_SIG_SCHEME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1940,1
    - Dst: TPMU_SIGNATURE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMT_SIGNATURE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1935
    functionDepth: 7
    functionLinenumber: 1935
    functionLinenumberEnd: 1943
    functionName: TPMT_SIGNATURE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_SIG_SCHEME_Marshal
    - TPMU_SIGNATURE_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMT_SIGNATURE_Marshal(TPMT_SIGNATURE *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_ENCRYPTED_SECRET*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1947
    functionDepth: 3
    functionLinenumber: 1947
    functionLinenumberEnd: 1953
    functionName: TPM2B_ENCRYPTED_SECRET_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_ENCRYPTED_SECRET_Marshal(TPM2B_ENCRYPTED_SECRET *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMI_ALG_PUBLIC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1958
    functionDepth: 3
    functionLinenumber: 1958
    functionLinenumberEnd: 1964
    functionName: TPMI_ALG_PUBLIC_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - TPM_ALG_ID_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMI_ALG_PUBLIC_Marshal(TPMI_ALG_PUBLIC *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1975,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1980,1
    - Dst: TPM2B_PUBLIC_KEY_RSA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1985,1
    - Dst: TPMS_ECC_POINT_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:1990,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:1994,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - source
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_PUBLIC_ID*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1997
      start: 1967
    functionDepth: 5
    functionLinenumber: 1967
    functionLinenumberEnd: 1997
    functionName: TPMU_PUBLIC_ID_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - pAssert
    - TPM2B_PUBLIC_KEY_RSA_Marshal
    - TPMS_ECC_POINT_Marshal
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMU_PUBLIC_ID_Marshal(TPMU_PUBLIC_ID *source, BYTE **buffer,
      INT32 *size, UINT32 selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMT_KEYEDHASH_SCHEME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_KEYEDHASH_PARMS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 2001
    functionDepth: 5
    functionLinenumber: 2001
    functionLinenumberEnd: 2007
    functionName: TPMS_KEYEDHASH_PARMS_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMT_KEYEDHASH_SCHEME_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_KEYEDHASH_PARMS_Marshal(TPMS_KEYEDHASH_PARMS *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMT_SYM_DEF_OBJECT_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2016,1
    - Dst: TPMT_RSA_SCHEME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2017,1
    - Dst: TPMI_RSA_KEY_BITS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2018,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_RSA_PARMS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 2011
    functionDepth: 8
    functionLinenumber: 2011
    functionLinenumberEnd: 2021
    functionName: TPMS_RSA_PARMS_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    - TPMT_RSA_SCHEME_Marshal
    - TPMT_SYM_DEF_OBJECT_Marshal
    - TPMI_RSA_KEY_BITS_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_RSA_PARMS_Marshal(TPMS_RSA_PARMS *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMT_SYM_DEF_OBJECT_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2030,1
    - Dst: TPMT_ECC_SCHEME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2031,1
    - Dst: TPMI_ECC_CURVE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2032,1
    - Dst: TPMT_KDF_SCHEME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_ECC_PARMS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 2025
    functionDepth: 8
    functionLinenumber: 2025
    functionLinenumberEnd: 2035
    functionName: TPMS_ECC_PARMS_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMT_ECC_SCHEME_Marshal
    - TPMT_KDF_SCHEME_Marshal
    - TPMT_SYM_DEF_OBJECT_Marshal
    - TPMI_ECC_CURVE_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_ECC_PARMS_Marshal(TPMS_ECC_PARMS *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_KEYEDHASH_PARMS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2047,1
    - Dst: TPMS_SYMCIPHER_PARMS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2052,1
    - Dst: TPMS_RSA_PARMS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2057,1
    - Dst: TPMS_ECC_PARMS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2062,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:2066,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - source
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_PUBLIC_PARMS*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2039
    functionDepth: 9
    functionLinenumber: 2039
    functionLinenumberEnd: 2069
    functionName: TPMU_PUBLIC_PARMS_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_RSA_PARMS_Marshal
    - pAssert
    - TPMS_ECC_PARMS_Marshal
    - TPMS_SYMCIPHER_PARMS_Marshal
    - TPMS_KEYEDHASH_PARMS_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMU_PUBLIC_PARMS_Marshal(TPMU_PUBLIC_PARMS *source, BYTE **buffer,
      INT32 *size, UINT32 selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_PUBLIC_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2077,1
    - Dst: TPMI_ALG_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2078,1
    - Dst: TPMA_OBJECT_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2079,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2080,1
    - Dst: TPMU_PUBLIC_PARMS_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2081,1
    - Dst: TPMU_PUBLIC_ID_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMT_PUBLIC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 2073
    functionDepth: 10
    functionLinenumber: 2073
    functionLinenumberEnd: 2084
    functionName: TPMT_PUBLIC_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - TPMU_PUBLIC_PARMS_Marshal
    - TPMU_PUBLIC_ID_Marshal
    - TPMA_OBJECT_Marshal
    - TPMI_ALG_HASH_Marshal
    - TPMI_ALG_PUBLIC_Marshal
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMT_PUBLIC_Marshal(TPMT_PUBLIC *source, BYTE **buffer, INT32
      *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMT_PUBLIC_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2098,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_PUBLIC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 2088
    functionDepth: 11
    functionLinenumber: 2088
    functionLinenumberEnd: 2106
    functionName: TPM2B_PUBLIC_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMT_PUBLIC_Marshal
    - UINT16_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_PUBLIC_Marshal(TPM2B_PUBLIC *source, BYTE **buffer, INT32
      *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_PRIVATE_KEY_RSA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2118,1
    - Dst: TPM2B_ECC_PARAMETER_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2123,1
    - Dst: TPM2B_SENSITIVE_DATA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2128,1
    - Dst: TPM2B_SYM_KEY_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2133,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:2137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - source
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_SENSITIVE_COMPOSITE*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2110
    functionDepth: 4
    functionLinenumber: 2110
    functionLinenumberEnd: 2140
    functionName: TPMU_SENSITIVE_COMPOSITE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - pAssert
    - TPM2B_SENSITIVE_DATA_Marshal
    - TPM2B_SYM_KEY_Marshal
    - TPM2B_ECC_PARAMETER_Marshal
    - TPM2B_PRIVATE_KEY_RSA_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMU_SENSITIVE_COMPOSITE_Marshal(TPMU_SENSITIVE_COMPOSITE *source,
      BYTE **buffer, INT32 *size, UINT32 selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_PUBLIC_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2149,1
    - Dst: TPM2B_AUTH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2150,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2151,1
    - Dst: TPMU_SENSITIVE_COMPOSITE_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMT_SENSITIVE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2144
    functionDepth: 5
    functionLinenumber: 2144
    functionLinenumberEnd: 2154
    functionName: TPMT_SENSITIVE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - TPMU_SENSITIVE_COMPOSITE_Marshal
    - TPMI_ALG_PUBLIC_Marshal
    - TPM2B_AUTH_Marshal
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMT_SENSITIVE_Marshal(TPMT_SENSITIVE *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_PRIVATE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2164
      start: 2158
    functionDepth: 3
    functionLinenumber: 2158
    functionLinenumberEnd: 2164
    functionName: TPM2B_PRIVATE_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_PRIVATE_Marshal(TPM2B_PRIVATE *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_ID_OBJECT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2174
      start: 2168
    functionDepth: 3
    functionLinenumber: 2168
    functionLinenumberEnd: 2174
    functionName: TPM2B_ID_OBJECT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_ID_OBJECT_Marshal(TPM2B_ID_OBJECT *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMA_NV*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2178
    functionDepth: 2
    functionLinenumber: 2178
    functionLinenumberEnd: 2184
    functionName: TPMA_NV_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMA_NV_Marshal(TPMA_NV *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMA_NV_EXP*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2187
    functionDepth: 2
    functionLinenumber: 2187
    functionLinenumberEnd: 2193
    functionName: TPMA_NV_EXP_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT64_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMA_NV_EXP_Marshal(TPMA_NV_EXP *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_RH_NV_INDEX_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2202,1
    - Dst: TPMI_ALG_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2203,1
    - Dst: TPMA_NV_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2204,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2205,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_NV_PUBLIC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2197
    functionDepth: 4
    functionLinenumber: 2197
    functionLinenumberEnd: 2208
    functionName: TPMS_NV_PUBLIC_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - UINT16_Marshal
    - TPMI_ALG_HASH_Marshal
    - TPMA_NV_Marshal
    - TPM2B_DIGEST_Marshal
    - TPMI_RH_NV_INDEX_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_NV_PUBLIC_Marshal(TPMS_NV_PUBLIC *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_NV_PUBLIC_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2222,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_NV_PUBLIC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2212
    functionDepth: 5
    functionLinenumber: 2212
    functionLinenumberEnd: 2230
    functionName: TPM2B_NV_PUBLIC_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - TPMS_NV_PUBLIC_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_NV_PUBLIC_Marshal(TPM2B_NV_PUBLIC *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_RH_NV_EXP_INDEX_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2238,1
    - Dst: TPMI_ALG_HASH_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2239,1
    - Dst: TPMA_NV_EXP_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2240,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2241,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_NV_PUBLIC_EXP_ATTR*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2244
      start: 2233
    functionDepth: 4
    functionLinenumber: 2233
    functionLinenumberEnd: 2244
    functionName: TPMS_NV_PUBLIC_EXP_ATTR_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - TPMI_RH_NV_EXP_INDEX_Marshal
    - TPMA_NV_EXP_Marshal
    - TPMI_ALG_HASH_Marshal
    - TPM2B_DIGEST_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_NV_PUBLIC_EXP_ATTR_Marshal(TPMS_NV_PUBLIC_EXP_ATTR *source,
      BYTE **buffer, INT32 *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_NV_PUBLIC_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2256,1
    - Dst: TPMS_NV_PUBLIC_EXP_ATTR_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2259,1
    - Dst: TPMS_NV_PUBLIC_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2262,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Marshal.c:2265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - source
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_NV_PUBLIC_2*
    - BYTE**
    - INT32*
    - UINT8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2248
    functionDepth: 5
    functionLinenumber: 2248
    functionLinenumberEnd: 2268
    functionName: TPMU_NV_PUBLIC_2_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_NV_PUBLIC_EXP_ATTR_Marshal
    - pAssert
    - TPMS_NV_PUBLIC_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMU_NV_PUBLIC_2_Marshal(TPMU_NV_PUBLIC_2 *source, BYTE **buffer,
      INT32 *size, UINT8 selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2277,1
    - Dst: TPMU_NV_PUBLIC_2_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMT_NV_PUBLIC_2*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2272
    functionDepth: 6
    functionLinenumber: 2272
    functionLinenumberEnd: 2280
    functionName: TPMT_NV_PUBLIC_2_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMU_NV_PUBLIC_2_Marshal
    - UINT8_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMT_NV_PUBLIC_2_Marshal(TPMT_NV_PUBLIC_2 *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMT_NV_PUBLIC_2_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2294,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_NV_PUBLIC_2*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2284
    functionDepth: 7
    functionLinenumber: 2284
    functionLinenumberEnd: 2302
    functionName: TPM2B_NV_PUBLIC_2_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMT_NV_PUBLIC_2_Marshal
    - UINT16_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_NV_PUBLIC_2_Marshal(TPM2B_NV_PUBLIC_2 *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_CONTEXT_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2306
    functionDepth: 3
    functionLinenumber: 2306
    functionLinenumberEnd: 2312
    functionName: TPM2B_CONTEXT_DATA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_CONTEXT_DATA_Marshal(TPM2B_CONTEXT_DATA  *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2321,1
    - Dst: TPMI_DH_SAVED_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2322,1
    - Dst: TPMI_RH_HIERARCHY_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2323,1
    - Dst: TPM2B_CONTEXT_DATA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_CONTEXT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2326
      start: 2316
    functionDepth: 4
    functionLinenumber: 2316
    functionLinenumberEnd: 2326
    functionName: TPMS_CONTEXT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_CONTEXT_DATA_Marshal
    - UINT64_Marshal
    - TPMI_RH_HIERARCHY_Marshal
    - TPMI_DH_SAVED_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_CONTEXT_Marshal(TPMS_CONTEXT *source, BYTE **buffer, INT32
      *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPML_PCR_SELECTION_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2335,1
    - Dst: TPM2B_DIGEST_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2336,1
    - Dst: TPMA_LOCALITY_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2337,1
    - Dst: TPM_ALG_ID_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2338,1
    - Dst: TPM2B_NAME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2339,1
    - Dst: TPM2B_NAME_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2340,1
    - Dst: TPM2B_DATA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_CREATION_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2330
    functionDepth: 6
    functionLinenumber: 2330
    functionLinenumberEnd: 2343
    functionName: TPMS_CREATION_DATA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 1
    functionsReached:
    - TPM_ALG_ID_Marshal
    - TPM2B_DATA_Marshal
    - TPM2B_NAME_Marshal
    - TPM2B_DIGEST_Marshal
    - TPML_PCR_SELECTION_Marshal
    - TPMA_LOCALITY_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_CREATION_DATA_Marshal(TPMS_CREATION_DATA *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_CREATION_DATA_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2357,1
    - Dst: UINT16_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM2B_CREATION_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2347
    functionDepth: 7
    functionLinenumber: 2347
    functionLinenumberEnd: 2365
    functionName: TPM2B_CREATION_DATA_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Marshal
    - TPMS_CREATION_DATA_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM2B_CREATION_DATA_Marshal(TPM2B_CREATION_DATA *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPM_AT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2375
      start: 2369
    functionDepth: 2
    functionLinenumber: 2369
    functionLinenumberEnd: 2375
    functionName: TPM_AT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPM_AT_Marshal(TPM_AT *source, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_AT_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2384,1
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPMS_AC_OUTPUT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2379
    functionDepth: 3
    functionLinenumber: 2379
    functionLinenumberEnd: 2387
    functionName: TPMS_AC_OUTPUT_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Marshal
    - TPM_AT_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPMS_AC_OUTPUT_Marshal(TPMS_AC_OUTPUT *source, BYTE **buffer,
      INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2397,1
    - Dst: TPMS_AC_OUTPUT_Marshal
      Src: /src/libtpms/src/tpm2/Marshal.c:2399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - source
    - buffer
    - size
    argTypes:
    - TPML_AC_CAPABILITIES*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2391
    functionDepth: 4
    functionLinenumber: 2391
    functionLinenumberEnd: 2402
    functionName: TPML_AC_CAPABILITIES_Marshal
    functionSourceFile: /src/libtpms/src/tpm2/Marshal.c
    functionUses: 0
    functionsReached:
    - TPMS_AC_OUTPUT_Marshal
    - UINT32_Marshal
    linkageType: ''
    returnType: UINT16
    signature: UINT16 TPML_AC_CAPABILITIES_Marshal(TPML_AC_CAPABILITIES *source, BYTE
      **buffer, INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BYTES_TO_CRYPT_WORDS
      Src: /src/libtpms/src/tpm2/BnConvert.c:83,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BnConvert.c:90,1
    - Dst: BnGetAllocated
      Src: /src/libtpms/src/tpm2/BnConvert.c:90,1
    - Dst: SWAP_CRYPT_WORD
      Src: /src/libtpms/src/tpm2/BnConvert.c:109,1
    - Dst: BnSetTop
      Src: /src/libtpms/src/tpm2/BnConvert.c:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - bn
    - bytes
    - nBytes
    argTypes:
    - bigNum
    - BYTE*
    - NUMBYTES
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 115
    functionName: BnFromBytes
    functionSourceFile: /src/libtpms/src/tpm2/BnConvert.c
    functionUses: 0
    functionsReached:
    - BYTES_TO_CRYPT_WORDS
    - BnGetAllocated
    - pAssert
    - BnSetTop
    - SWAP_CRYPT_WORD
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnFromBytes(bigNum bn, const BYTE* bytes, NUMBYTES nBytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BnFromBytes
      Src: /src/libtpms/src/tpm2/BnConvert.c:126,1
    - Dst: BnSetTop
      Src: /src/libtpms/src/tpm2/BnConvert.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bn
    - a2B
    argTypes:
    - bigNum
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: BnFrom2B
    functionSourceFile: /src/libtpms/src/tpm2/BnConvert.c
    functionUses: 0
    functionsReached:
    - BnFromBytes
    - BnSetTop
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT BnFrom2B(bigNum       bn,  // OUT:\n                           const
      TPM2B* a2B  // IN: number to convert\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BnConvert.c:157,1
    - Dst: BnSizeInBits
      Src: /src/libtpms/src/tpm2/BnConvert.c:159,1
    - Dst: BN_VAR
      Src: /src/libtpms/src/tpm2/BnConvert.c:170,1
    - Dst: BnCopy
      Src: /src/libtpms/src/tpm2/BnConvert.c:171,1
    - Dst: SWAP_CRYPT_WORD
      Src: /src/libtpms/src/tpm2/BnConvert.c:174,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BnConvert.c:179,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - bn
    - buffer
    - size
    argTypes:
    - bigConst
    - BYTE*
    - NUMBYTES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 197
    functionName: BnToBytes
    functionSourceFile: /src/libtpms/src/tpm2/BnConvert.c
    functionUses: 0
    functionsReached:
    - BnCopy
    - pAssert
    - BN_VAR
    - SWAP_CRYPT_WORD
    - BnSizeInBits
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT BnToBytes(bigConst  bn,\n                          BYTE*
      \    buffer,\n                          NUMBYTES* size  // This the number of
      bytes that are\n                                          // available in the
      buffer. The result\n                                          // should be this
      big.\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BnToBytes
      Src: /src/libtpms/src/tpm2/BnConvert.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - bn
    - a2B
    - size
    argTypes:
    - bigConst
    - TPM2B*
    - NUMBYTES
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 205
    functionDepth: 4
    functionLinenumber: 205
    functionLinenumberEnd: 217
    functionName: BnTo2B
    functionSourceFile: /src/libtpms/src/tpm2/BnConvert.c
    functionUses: 0
    functionsReached:
    - BnToBytes
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT BnTo2B(bigConst bn,   // IN:\n                       TPM2B*
      \  a2B,  // OUT:\n                       NUMBYTES size  // IN: the desired size\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BnFromBytes
      Src: /src/libtpms/src/tpm2/BnConvert.c:237,1
    - Dst: BnFromBytes
      Src: /src/libtpms/src/tpm2/BnConvert.c:238,1
    - Dst: BnSetWord
      Src: /src/libtpms/src/tpm2/BnConvert.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - ecP
    - x
    - nBytesX
    - y
    - nBytesY
    argTypes:
    - bigPoint
    - BYTE*
    - NUMBYTES
    - BYTE*
    - NUMBYTES
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 242
    functionName: BnPointFromBytes
    functionSourceFile: /src/libtpms/src/tpm2/BnConvert.c
    functionUses: 0
    functionsReached:
    - BnSetWord
    - BnFromBytes
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT * BnPointFromBytes(\n    bigPoint    ecP,  // OUT: the
      preallocated point structure\n    const BYTE* x,\n    NUMBYTES    nBytesX,\n
      \   const BYTE* y,\n    NUMBYTES    nBytesY)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BnConvert.c:257,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BnConvert.c:258,1
    - Dst: BnEqualWord
      Src: /src/libtpms/src/tpm2/BnConvert.c:258,1
    - Dst: BnToBytes
      Src: /src/libtpms/src/tpm2/BnConvert.c:259,1
    - Dst: BnToBytes
      Src: /src/libtpms/src/tpm2/BnConvert.c:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 5
    argNames:
    - ecP
    - x
    - pBytesX
    - y
    - pBytesY
    argTypes:
    - pointConst
    - BYTE*
    - NUMBYTES*
    - BYTE*
    - NUMBYTES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 250
    functionDepth: 4
    functionLinenumber: 250
    functionLinenumberEnd: 263
    functionName: BnPointToBytes
    functionSourceFile: /src/libtpms/src/tpm2/BnConvert.c
    functionUses: 0
    functionsReached:
    - BnToBytes
    - pAssert
    - BnEqualWord
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT BnPointToBytes(\n    pointConst ecP,  // OUT: the preallocated
      point structure\n    BYTE*      x,\n    NUMBYTES*  pBytesX,\n    BYTE*      y,\n
      \   NUMBYTES*  pBytesY)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmKeySizeCheckEnabled
      Src: /src/libtpms/src/tpm2/CryptUtil.c:88,1
    - Dst: CryptHmacStart2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:97,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:100,1
    - Dst: CryptHmacEnd
      Src: /src/libtpms/src/tpm2/CryptUtil.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - signature
    - signKey
    - hashData
    argTypes:
    - TPMT_SIGNATURE*
    - OBJECT*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 105
    functionName: CryptHmacSign
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached:
    - CryptHmacEnd
    - RuntimeAlgorithmKeySizeCheckEnabled
    - CryptDigestUpdate2B
    - CryptHmacStart2B
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CryptHmacSign(TPMT_SIGNATURE* signature,  // OUT: signature\n
      \                           OBJECT*         signKey,    // IN: HMAC key sign
      the hash\n                            TPM2B_DIGEST*   hashData    // IN: hash
      to be signed\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmKeySizeCheckEnabled
      Src: /src/libtpms/src/tpm2/CryptUtil.c:125,1
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/CryptUtil.c:147,1
    - Dst: CryptHmacSign
      Src: /src/libtpms/src/tpm2/CryptUtil.c:154,1
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/CryptUtil.c:157,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/CryptUtil.c:159,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 3
    argNames:
    - signKey
    - hashData
    - signature
    argTypes:
    - OBJECT*
    - TPM2B_DIGEST*
    - TPMT_SIGNATURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 163
    functionName: CryptHMACVerifySignature
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - CryptHmacSign
    - RuntimeAlgorithmKeySizeCheckEnabled
    - MemoryEqual
    - RuntimeProfileRequiresAttributeFlags
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CryptHMACVerifySignature(\n    OBJECT*         signKey,   //
      IN: HMAC key signed the hash\n    TPM2B_DIGEST*   hashData,  // IN: digest being
      verified\n    TPMT_SIGNATURE* signature  // IN: signature to be verified\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/CryptUtil.c:195,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CryptUtil.c:205,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CryptUtil.c:206,1
    - Dst: CryptHashGetBlockSize
      Src: /src/libtpms/src/tpm2/CryptUtil.c:208,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:217,1
    - Dst: DRBG_Generate
      Src: /src/libtpms/src/tpm2/CryptUtil.c:226,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - publicArea
    - sensitive
    - sensitiveCreate
    - rand
    argTypes:
    - TPMT_PUBLIC*
    - TPMT_SENSITIVE*
    - TPMS_SENSITIVE_CREATE*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 231
    functionName: CryptGenerateKeyedHash
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - IS_ATTRIBUTE
    - CryptHashGetBlockSize
    - DRBG_Generate
    - MemoryCopy2B
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CryptGenerateKeyedHash(\n    TPMT_PUBLIC* publicArea,                 //
      IN/OUT: the public area template\n                                             //
      \    for the new key.\n    TPMT_SENSITIVE*        sensitive,        // OUT:
      sensitive area\n    TPMS_SENSITIVE_CREATE* sensitiveCreate,  // IN: sensitive
      creation data\n    RAND_STATE*            rand              // IN: \"entropy\"
      source\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - TPM_ALG_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: CryptIsSchemeAnonymous
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL CryptIsSchemeAnonymous(TPM_ALG_ID scheme  // IN: the scheme algorithm
      to test

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetSymmetricBlockSize
      Src: /src/libtpms/src/tpm2/CryptUtil.c:280,1
    - Dst: CryptKDFa
      Src: /src/libtpms/src/tpm2/CryptUtil.c:285,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/CryptUtil.c:294,1
    - Dst: CryptSymmetricDecrypt
      Src: /src/libtpms/src/tpm2/CryptUtil.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 8
    argNames:
    - symAlg
    - hash
    - keySizeInBits
    - key
    - nonceCaller
    - nonceTpm
    - dataSize
    - data
    argTypes:
    - TPM_ALG_ID
    - TPM_ALG_ID
    - UINT16
    - TPM2B*
    - TPM2B*
    - TPM2B*
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 306
    functionName: ParmDecryptSym
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached:
    - CryptGetSymmetricBlockSize
    - CryptKDFa
    - CryptSymmetricDecrypt
    - MemoryCopy
    linkageType: ''
    returnType: void
    signature: "void ParmDecryptSym(TPM_ALG_ID symAlg,         // IN: the symmetric
      algorithm\n                    TPM_ALG_ID hash,           // IN: hash algorithm
      for KDFa\n                    UINT16     keySizeInBits,  // IN: the key size
      in bits\n                    TPM2B*     key,            // IN: KDF HMAC key\n
      \                   TPM2B*     nonceCaller,    // IN: nonce caller\n                    TPM2B*
      \    nonceTpm,       // IN: nonce TPM\n                    UINT32     dataSize,
      \      // IN: size of parameter buffer\n                    BYTE*      data
      \           // OUT: buffer to be decrypted\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetSymmetricBlockSize
      Src: /src/libtpms/src/tpm2/CryptUtil.c:341,1
    - Dst: CryptKDFa
      Src: /src/libtpms/src/tpm2/CryptUtil.c:346,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/CryptUtil.c:355,1
    - Dst: CryptSymmetricEncrypt
      Src: /src/libtpms/src/tpm2/CryptUtil.c:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 8
    argNames:
    - symAlg
    - hash
    - keySizeInBits
    - key
    - nonceCaller
    - nonceTpm
    - dataSize
    - data
    argTypes:
    - TPM_ALG_ID
    - TPM_ALG_ID
    - UINT16
    - TPM2B*
    - TPM2B*
    - TPM2B*
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 367
    functionName: ParmEncryptSym
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached:
    - CryptGetSymmetricBlockSize
    - CryptKDFa
    - CryptSymmetricEncrypt
    - MemoryCopy
    linkageType: ''
    returnType: void
    signature: "void ParmEncryptSym(TPM_ALG_ID symAlg,         // IN: symmetric algorithm\n
      \                   TPM_ALG_ID hash,           // IN: hash algorithm for KDFa\n
      \                   UINT16     keySizeInBits,  // IN: symmetric key size in
      bits\n                    TPM2B*     key,            // IN: KDF HMAC key\n                    TPM2B*
      \    nonceCaller,    // IN: nonce caller\n                    TPM2B*     nonceTpm,
      \      // IN: nonce TPM\n                    UINT32     dataSize,       // IN:
      size of parameter buffer\n                    BYTE*      data            //
      OUT: buffer to be encrypted\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CryptSymKeyValidate
      Src: /src/libtpms/src/tpm2/CryptUtil.c:394,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:397,1
    - Dst: CryptGenerateKeyDes
      Src: /src/libtpms/src/tpm2/CryptUtil.c:404,1
    - Dst: DRBG_Generate
      Src: /src/libtpms/src/tpm2/CryptUtil.c:409,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/CryptUtil.c:410,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - publicArea
    - sensitive
    - sensitiveCreate
    - rand
    argTypes:
    - TPMT_PUBLIC*
    - TPMT_SENSITIVE*
    - TPMS_SENSITIVE_CREATE*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 417
    functionName: CryptGenerateKeySymmetric
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached:
    - CryptSymKeyValidate
    - BITS_TO_BYTES
    - CryptGenerateKeyDes
    - DRBG_Generate
    - MemoryCopy2B
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CryptGenerateKeySymmetric(\n    TPMT_PUBLIC* publicArea,                 //
      IN/OUT: The public area template\n                                             //
      \    for the new key.\n    TPMT_SENSITIVE*        sensitive,        // OUT:
      sensitive area\n    TPMS_SENSITIVE_CREATE* sensitiveCreate,  // IN: sensitive
      creation data\n    RAND_STATE*            rand              // IN: the \"entropy\"
      source for\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/CryptUtil.c:437,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/CryptUtil.c:441,1
    - Dst: CryptKDFa
      Src: /src/libtpms/src/tpm2/CryptUtil.c:447,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 6
    argNames:
    - hash
    - key
    - contextU
    - contextV
    - dataSize
    - data
    argTypes:
    - TPM_ALG_ID
    - TPM2B*
    - TPM2B*
    - TPM2B*
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 463
    functionName: CryptXORObfuscation
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - CryptKDFa
    - pAssert
    linkageType: ''
    returnType: void
    signature: "void CryptXORObfuscation(TPM_ALG_ID hash,      // IN: hash algorithm
      for KDF\n                         TPM2B*     key,       // IN: KDF key\n                         TPM2B*
      \    contextU,  // IN: contextU\n                         TPM2B*     contextV,
      \ // IN: contextV\n                         UINT32     dataSize,  // IN: size
      of data buffer\n                         BYTE*      data       // IN/OUT: data
      to be XORed in place\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmGetImplementedVector
      Src: /src/libtpms/src/tpm2/CryptUtil.c:483,1
    - Dst: CryptInitializeToTest
      Src: /src/libtpms/src/tpm2/CryptUtil.c:486,1
    - Dst: ExtMath_LibInit
      Src: /src/libtpms/src/tpm2/CryptUtil.c:490,1
    - Dst: CryptSymInit
      Src: /src/libtpms/src/tpm2/CryptUtil.c:491,1
    - Dst: CryptRandInit
      Src: /src/libtpms/src/tpm2/CryptUtil.c:492,1
    - Dst: CryptHashInit
      Src: /src/libtpms/src/tpm2/CryptUtil.c:493,1
    - Dst: CryptRsaInit
      Src: /src/libtpms/src/tpm2/CryptUtil.c:495,1
    - Dst: CryptEccInit
      Src: /src/libtpms/src/tpm2/CryptUtil.c:498,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 501
    functionName: CryptInit
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 1
    functionsReached:
    - CryptInitializeToTest
    - AlgorithmGetImplementedVector
    - CryptHashInit
    - ExtMath_LibInit
    - CryptEccInit
    - CryptRandInit
    - CryptRsaInit
    - CryptSymInit
    linkageType: ''
    returnType: BOOL
    signature: BOOL CryptInit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/CryptUtil.c:516,1
    - Dst: CryptSymStartup
      Src: /src/libtpms/src/tpm2/CryptUtil.c:518,1
    - Dst: CryptRandStartup
      Src: /src/libtpms/src/tpm2/CryptUtil.c:518,1
    - Dst: CryptHashStartup
      Src: /src/libtpms/src/tpm2/CryptUtil.c:518,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/CryptUtil.c:534,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/CryptUtil.c:537,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - STARTUP_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 541
    functionName: CryptStartup
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 1
    functionsReached:
    - NOT_REFERENCED
    - CryptRandomGenerate
    - CryptHashStartup
    - CryptRandStartup
    - CryptSymStartup
    - MemorySet
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL CryptStartup(STARTUP_TYPE type  // IN: the startup type

      )'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - algID
    argTypes:
    - TPM_ALG_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 573
    functionName: CryptIsAsymAlgorithm
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL CryptIsAsymAlgorithm(TPM_ALG_ID algID  // IN: algorithm ID

      )'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/CryptUtil.c:610,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CryptUtil.c:612,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/CryptUtil.c:625,1
    - Dst: CryptRsaEncrypt
      Src: /src/libtpms/src/tpm2/CryptUtil.c:628,1
    - Dst: CryptEccIsPointOnCurve
      Src: /src/libtpms/src/tpm2/CryptUtil.c:648,1
    - Dst: CryptEccNewKeyPair
      Src: /src/libtpms/src/tpm2/CryptUtil.c:658,1
    - Dst: TPMS_ECC_POINT_Marshal
      Src: /src/libtpms/src/tpm2/CryptUtil.c:664,1
    - Dst: CryptEccPointMultiply
      Src: /src/libtpms/src/tpm2/CryptUtil.c:671,1
    - Dst: CryptKDFe
      Src: /src/libtpms/src/tpm2/CryptUtil.c:695,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/CryptUtil.c:708,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - encryptKey
    - label
    - data
    - secret
    argTypes:
    - OBJECT*
    - TPM2B*
    - TPM2B_DATA*
    - TPM2B_ENCRYPTED_SECRET*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 587
    functionDepth: 5
    functionLinenumber: 587
    functionLinenumberEnd: 712
    functionName: CryptSecretEncrypt
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - IS_ATTRIBUTE
    - CryptEccPointMultiply
    - CryptRandomGenerate
    - CryptKDFe
    - CryptEccIsPointOnCurve
    - FAIL
    - TPMS_ECC_POINT_Marshal
    - CryptRsaEncrypt
    - CryptEccNewKeyPair
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CryptSecretEncrypt(OBJECT*      encryptKey,  // IN: encryption
      key object\n                   const TPM2B* label,       // IN: a null-terminated
      string as L\n                   TPM2B_DATA*  data,        // OUT: secret value\n
      \                  TPM2B_ENCRYPTED_SECRET* secret  // OUT: secret structure\n)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/CryptUtil.c:786,1
    - Dst: CryptRsaDecrypt
      Src: /src/libtpms/src/tpm2/CryptUtil.c:795,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/CryptUtil.c:809,1
    - Dst: TPMS_ECC_POINT_Unmarshal
      Src: /src/libtpms/src/tpm2/CryptUtil.c:812,1
    - Dst: CryptEccPointMultiply
      Src: /src/libtpms/src/tpm2/CryptUtil.c:815,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/CryptUtil.c:827,1
    - Dst: CryptKDFe
      Src: /src/libtpms/src/tpm2/CryptUtil.c:842,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/CryptUtil.c:860,1
    - Dst: CryptXORObfuscation
      Src: /src/libtpms/src/tpm2/CryptUtil.c:875,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:882,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/CryptUtil.c:891,1
    - Dst: CryptGetSymmetricBlockSize
      Src: /src/libtpms/src/tpm2/CryptUtil.c:896,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/CryptUtil.c:902,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/CryptUtil.c:908,1
    - Dst: CryptSymmetricDecrypt
      Src: /src/libtpms/src/tpm2/CryptUtil.c:916,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/CryptUtil.c:928,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 64
    argCount: 5
    argNames:
    - decryptKey
    - nonceCaller
    - label
    - secret
    - data
    argTypes:
    - OBJECT*
    - TPM2B_NONCE*
    - TPM2B*
    - TPM2B_ENCRYPTED_SECRET*
    - TPM2B_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 932
    functionName: CryptSecretDecrypt
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 1
    functionsReached:
    - CryptHashGetDigestSize
    - CryptKDFe
    - CryptEccPointMultiply
    - TPMS_ECC_POINT_Unmarshal
    - MemoryCopy
    - CryptXORObfuscation
    - CryptGetSymmetricBlockSize
    - CryptRsaDecrypt
    - MemoryCopy2B
    - FAIL
    - MemorySet
    - CryptSymmetricDecrypt
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CryptSecretDecrypt(OBJECT*      decryptKey,   // IN: decrypt
      key\n                   TPM2B_NONCE* nonceCaller,  // IN: nonceCaller.  It is
      needed for\n                                              //     symmetric decryption.
      \ For\n                                              //     asymmetric decryption,
      this\n                                              //     parameter is NULL\n
      \                  const TPM2B*            label,   // IN: a value for L\n                   TPM2B_ENCRYPTED_SECRET*
      secret,  // IN: input secret\n                   TPM2B_DATA*             data
      \    // OUT: decrypted secret value\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/CryptUtil.c:947,1
    - Dst: TPM2B_TYPE
      Src: /src/libtpms/src/tpm2/CryptUtil.c:948,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/CryptUtil.c:955,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/CryptUtil.c:962,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/CryptUtil.c:967,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/CryptUtil.c:969,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/CryptUtil.c:975,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:980,1
    - Dst: MemoryConcat2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:981,1
    - Dst: CryptXORObfuscation
      Src: /src/libtpms/src/tpm2/CryptUtil.c:987,1
    - Dst: ParmEncryptSym
      Src: /src/libtpms/src/tpm2/CryptUtil.c:994,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 6
    argNames:
    - handle
    - nonceCaller
    - bufferSize
    - leadingSizeInByte
    - extraKey
    - buffer
    argTypes:
    - TPM_HANDLE
    - TPM2B*
    - INT32
    - UINT16
    - TPM2B_AUTH*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 1003
    functionName: CryptParameterEncryption
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 1
    functionsReached:
    - ParmEncryptSym
    - CryptXORObfuscation
    - MemoryConcat2B
    - MemoryCopy2B
    - UINT16_Unmarshal
    - SessionGet
    - FAIL
    - TPM2B_TYPE
    linkageType: ''
    returnType: void
    signature: "void CryptParameterEncryption(\n    TPM_HANDLE handle,             //
      IN: encrypt session handle\n    TPM2B*     nonceCaller,        // IN: nonce
      caller\n    INT32      bufferSize,         // IN: size of parameter buffer\n
      \   UINT16     leadingSizeInByte,  // IN: the size of the leading size field
      in\n                                   //     bytes\n    TPM2B_AUTH* extraKey,
      \         // IN: additional key material other than\n                                   //
      \    sessionAuth\n    BYTE* buffer                   // IN/OUT: parameter buffer
      to be encrypted\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1021,1
    - Dst: TPM2B_TYPE
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1025,1
    - Dst: FAIL_RC
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1038,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1042,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1053,1
    - Dst: MemoryConcat2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1054,1
    - Dst: CryptXORObfuscation
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1060,1
    - Dst: ParmDecryptSym
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1068,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - handle
    - nonceCaller
    - bufferSize
    - leadingSizeInByte
    - extraKey
    - buffer
    argTypes:
    - TPM_HANDLE
    - TPM2B*
    - INT32
    - UINT16
    - TPM2B_AUTH*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1010
    functionDepth: 2
    functionLinenumber: 1010
    functionLinenumberEnd: 1078
    functionName: CryptParameterDecryption
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 1
    functionsReached:
    - CryptXORObfuscation
    - MemoryConcat2B
    - MemoryCopy2B
    - FAIL_RC
    - UINT16_Unmarshal
    - ParmDecryptSym
    - SessionGet
    - TPM2B_TYPE
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CryptParameterDecryption(\n    TPM_HANDLE handle,             //
      IN: encrypted session handle\n    TPM2B*     nonceCaller,        // IN: nonce
      caller\n    INT32      bufferSize,         // IN: size of parameter buffer\n
      \   UINT16     leadingSizeInByte,  // IN: the size of the leading size field
      in\n                                   //     byte\n    TPM2B_AUTH* extraKey,
      \         // IN: the authValue\n    BYTE*       buffer             // IN/OUT:
      parameter buffer to be decrypted\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1090,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1091,1
    - Dst: CryptHmacStart2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1095,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1097,1
    - Dst: CryptHmacEnd2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1098,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1104,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1105,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1106,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - publicArea
    - sensitive
    - unique
    argTypes:
    - TPMT_PUBLIC*
    - TPMT_SENSITIVE*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1110
    functionName: CryptComputeSymmetricUnique
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - CryptDigestUpdate2B
    - CryptHashStart
    - CryptHashEnd2B
    - CryptHmacEnd2B
    - CryptHmacStart2B
    linkageType: ''
    returnType: void
    signature: "void CryptComputeSymmetricUnique(\n    TPMT_PUBLIC*    publicArea,
      \ // IN: the object's public area\n    TPMT_SENSITIVE* sensitive,   // IN: the
      associated sensitive area\n    TPM2B_DIGEST*   unique       // OUT: unique buffer\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1167,1
    - Dst: CryptRsaGenerateKey
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1179,1
    - Dst: CryptEccGenerateKey
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1186,1
    - Dst: CryptGenerateKeySymmetric
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1190,1
    - Dst: CryptGenerateKeyedHash
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1195,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1198,1
    - Dst: DRBG_AdditionalData
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1209,1
    - Dst: DRBG_AdditionalData
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1210,1
    - Dst: DRBG_Generate
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1214,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1216,1
    - Dst: CryptComputeSymmetricUnique
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1224,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1230,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1231,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1232,1
    - Dst: PublicMarshalAndComputeName
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1235,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 3
    argNames:
    - object
    - sensitiveCreate
    - rand
    argTypes:
    - OBJECT*
    - TPMS_SENSITIVE_CREATE*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1237
    functionName: CryptCreateObject
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - CryptHashGetDigestSize
    - PublicMarshalAndComputeName
    - CryptEccGenerateKey
    - CryptRsaGenerateKey
    - memset
    - DRBG_AdditionalData
    - DRBG_Generate
    - FAIL
    - CryptComputeSymmetricUnique
    - CryptGenerateKeyedHash
    - CryptGenerateKeySymmetric
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CryptCreateObject(OBJECT*                object,  // IN: new
      object structure pointer\n                  TPMS_SENSITIVE_CREATE* sensitiveCreate,
      \ // IN: sensitive creation\n                  RAND_STATE*            rand  //
      IN: the random number generator\n                                               //
      \     to use\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - auth
    argTypes:
    - TPMT_SIGNATURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1296
    functionName: CryptGetSignHashAlg
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached:
    - FAIL
    linkageType: ''
    returnType: TPMI_ALG_HASH
    signature: 'TPMI_ALG_HASH CryptGetSignHashAlg(TPMT_SIGNATURE* auth  // IN: signature

      )'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - TPM_ALG_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1302
    functionDepth: 0
    functionLinenumber: 1302
    functionLinenumberEnd: 1316
    functionName: CryptIsSplitSign
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL CryptIsSplitSign(TPM_ALG_ID scheme  // IN: the algorithm selector

      )'
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - publicType
    - scheme
    argTypes:
    - TPMI_ALG_PUBLIC
    - TPMI_ALG_ASYM_SCHEME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1320
    functionDepth: 0
    functionLinenumber: 1320
    functionLinenumberEnd: 1376
    functionName: CryptIsAsymSignScheme
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: "BOOL CryptIsAsymSignScheme(TPMI_ALG_PUBLIC      publicType,  // IN:
      Type of the object\n                           TPMI_ALG_ASYM_SCHEME scheme       //
      IN: the scheme\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CryptIsAsymSignScheme
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1392,1
    - Dst: CryptIsAsymSignScheme
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1398,1
    - Dst: CryptHashIsValidAlg
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1423,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - publicType
    - scheme
    argTypes:
    - TPMI_ALG_PUBLIC
    - TPMT_SIG_SCHEME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1382
    functionDepth: 1
    functionLinenumber: 1382
    functionLinenumberEnd: 1429
    functionName: CryptIsValidSignScheme
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached:
    - CryptIsAsymSignScheme
    - CryptHashIsValidAlg
    linkageType: ''
    returnType: BOOL
    signature: "BOOL CryptIsValidSignScheme(TPMI_ALG_PUBLIC   publicType,  // IN:
      Type of the object\n\t\t\t\t   TPMT_SIG_SCHEME*  scheme       // IN: the signing
      scheme\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - publicType
    - scheme
    argTypes:
    - TPMI_ALG_PUBLIC
    - TPMI_ALG_ASYM_SCHEME
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1433
    functionDepth: 0
    functionLinenumber: 1433
    functionLinenumberEnd: 1482
    functionName: CryptIsAsymDecryptScheme
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: "BOOL CryptIsAsymDecryptScheme(TPMI_ALG_PUBLIC publicType,  // IN:
      Type of the object\n                              TPMI_ALG_ASYM_SCHEME scheme
      \ // IN: the scheme\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CryptIsAsymAlgorithm
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1525,1
    - Dst: CryptIsSplitSign
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1558,1
    - Dst: CryptIsValidSignScheme
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1583,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - signObject
    - scheme
    argTypes:
    - OBJECT*
    - TPMT_SIG_SCHEME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1503
    functionDepth: 2
    functionLinenumber: 1503
    functionLinenumberEnd: 1587
    functionName: CryptSelectSignScheme
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 7
    functionsReached:
    - CryptIsAsymAlgorithm
    - CryptIsValidSignScheme
    - CryptIsSplitSign
    linkageType: ''
    returnType: BOOL
    signature: "BOOL CryptSelectSignScheme(OBJECT*          signObject,  // IN: signing
      key\n                           TPMT_SIG_SCHEME* scheme       // IN/OUT: signing
      scheme\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1632,1
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1638,1
    - Dst: CryptRsaSign
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1649,1
    - Dst: CryptEccSign
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1657,1
    - Dst: CryptHmacSign
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1662,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1665,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 4
    argNames:
    - signKey
    - signScheme
    - digest
    - signature
    argTypes:
    - OBJECT*
    - TPMT_SIG_SCHEME*
    - TPM2B_DIGEST*
    - TPMT_SIGNATURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1605
    functionDepth: 4
    functionLinenumber: 1605
    functionLinenumberEnd: 1669
    functionName: CryptSign
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 1
    functionsReached:
    - FAIL
    - CryptHmacSign
    - CryptRsaSign
    - CryptEccSign
    - RuntimeProfileRequiresAttributeFlags
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CryptSign(OBJECT*          signKey,     // IN: signing key\n
      \         TPMT_SIG_SCHEME* signScheme,  // IN: sign scheme.\n          TPM2B_DIGEST*
      \   digest,      // IN: The digest being signed\n          TPMT_SIGNATURE*  signature
      \   // OUT: signature\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1695,1
    - Dst: CryptRsaValidateSignature
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1711,1
    - Dst: CryptEccValidateSignature
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1718,1
    - Dst: CryptHMACVerifySignature
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1726,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - keyHandle
    - digest
    - signature
    argTypes:
    - TPMI_DH_OBJECT
    - TPM2B_DIGEST*
    - TPMT_SIGNATURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1685
    functionDepth: 5
    functionLinenumber: 1685
    functionLinenumberEnd: 1732
    functionName: CryptValidateSignature
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached:
    - CryptHMACVerifySignature
    - CryptRsaValidateSignature
    - HandleToObject
    - CryptEccValidateSignature
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CryptValidateSignature(TPMI_DH_OBJECT  keyHandle,  // IN: The
      handle of sign key\n                       TPM2B_DIGEST*   digest,     // IN:
      The digest being validated\n                       TPMT_SIGNATURE* signature
      \  // IN: signature\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - outData
    argTypes:
    - TPM2B_MAX_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1740
    functionDepth: 0
    functionLinenumber: 1740
    functionLinenumberEnd: 1746
    functionName: CryptGetTestResult
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RC
    signature: 'TPM_RC CryptGetTestResult(TPM2B_MAX_BUFFER* outData  // OUT: test
      result data

      )'
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1773,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1793,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1822,1
    - Dst: CryptEccGetKeySizeForCurve
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1822,1
    - Dst: CryptEccIsPointOnCurve
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1831,1
    - Dst: CryptEccIsValidPrivateKey
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1839,1
    - Dst: CryptEccPointMultiply
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1846,1
    - Dst: AdjustNumberB
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1861,1
    - Dst: AdjustNumberB
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1862,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1863,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1864,1
    - Dst: CryptSymKeyValidate
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1889,1
    - Dst: CryptHashGetBlockSize
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1907,1
    - Dst: CryptHashGetBlockSize
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1911,1
    - Dst: CryptComputeSymmetricUnique
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1930,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1931,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1939,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/CryptUtil.c:1940,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 84
    argCount: 4
    argNames:
    - publicArea
    - sensitive
    - blamePublic
    - blameSensitive
    argTypes:
    - TPMT_PUBLIC*
    - TPMT_SENSITIVE*
    - TPM_RC
    - TPM_RC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1948
      start: 1765
    functionDepth: 2
    functionLinenumber: 1765
    functionLinenumberEnd: 1948
    functionName: CryptValidateKeys
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - CryptEccIsValidPrivateKey
    - CryptEccPointMultiply
    - IS_ATTRIBUTE
    - CryptSymKeyValidate
    - MemoryEqual2B
    - CryptEccIsPointOnCurve
    - BITS_TO_BYTES
    - CryptHashGetBlockSize
    - AdjustNumberB
    - CryptComputeSymmetricUnique
    - CryptEccGetKeySizeForCurve
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CryptValidateKeys(TPMT_PUBLIC*    publicArea,\n                  TPMT_SENSITIVE*
      sensitive,\n                  TPM_RC          blamePublic,\n                  TPM_RC
      \         blameSensitive)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CryptMacIsValidForKey
      Src: /src/libtpms/src/tpm2/CryptUtil.c:2001,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - publicArea
    - inMac
    argTypes:
    - TPMT_PUBLIC*
    - TPMI_ALG_MAC_SCHEME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1957
    functionDepth: 1
    functionLinenumber: 1957
    functionLinenumberEnd: 2004
    functionName: CryptSelectMac
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 0
    functionsReached:
    - CryptMacIsValidForKey
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC CryptSelectMac(TPMT_PUBLIC* publicArea, TPMI_ALG_MAC_SCHEME*
      inMac)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashIsValidAlg
      Src: /src/libtpms/src/tpm2/CryptUtil.c:2013,1
    - Dst: CryptSmacIsValidAlg
      Src: /src/libtpms/src/tpm2/CryptUtil.c:2016,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - keyType
    - macAlg
    - flag
    argTypes:
    - TPM_ALG_ID
    - TPM_ALG_ID
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 2008
    functionDepth: 1
    functionLinenumber: 2008
    functionLinenumberEnd: 2022
    functionName: CryptMacIsValidForKey
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 1
    functionsReached:
    - CryptSmacIsValidAlg
    - CryptHashIsValidAlg
    linkageType: ''
    returnType: BOOL
    signature: BOOL CryptMacIsValidForKey(TPM_ALG_ID keyType, TPM_ALG_ID macAlg, BOOL
      flag)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - alg
    - FLAG
    argTypes:
    - TPM_ALG_ID
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2027
    functionDepth: 0
    functionLinenumber: 2027
    functionLinenumberEnd: 2044
    functionName: CryptSmacIsValidAlg
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: "BOOL CryptSmacIsValidAlg(TPM_ALG_ID alg,\n                         BOOL
      \      FLAG  // IN: Indicates if TPM_ALG_NULL is valid\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - mode
    - flag
    argTypes:
    - TPM_ALG_ID
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2050
    functionDepth: 0
    functionLinenumber: 2050
    functionLinenumberEnd: 2077
    functionName: CryptSymModeIsValid
    functionSourceFile: /src/libtpms/src/tpm2/CryptUtil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL CryptSymModeIsValid(TPM_ALG_ID mode, BOOL flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: MemoryIoBufferAllocationReset
    functionSourceFile: /src/libtpms/src/tpm2/IoBuffers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MemoryIoBufferAllocationReset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtpms/src/tpm2/IoBuffers.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: MemoryIoBufferZero
    functionSourceFile: /src/libtpms/src/tpm2/IoBuffers.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void MemoryIoBufferZero(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/IoBuffers.c:102,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/IoBuffers.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 113
    functionName: MemoryGetInBuffer
    functionSourceFile: /src/libtpms/src/tpm2/IoBuffers.c
    functionUses: 0
    functionsReached:
    - pAssert
    - memset
    linkageType: ''
    returnType: BYTE
    signature: "BYTE * MemoryGetInBuffer(UINT32 size  // Size, in bytes, required
      for the input\n                                     // unmarshaling\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/IoBuffers.c:122,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/IoBuffers.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: MemoryGetOutBuffer
    functionSourceFile: /src/libtpms/src/tpm2/IoBuffers.c
    functionUses: 0
    functionsReached:
    - pAssert
    - memset
    linkageType: ''
    returnType: BYTE
    signature: 'BYTE * MemoryGetOutBuffer(UINT32 size  // required size of the buffer

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: IsLabelProperlyFormatted
    functionSourceFile: /src/libtpms/src/tpm2/IoBuffers.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL IsLabelProperlyFormatted(TPM2B* x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ExtEcc_PointFromBytes
      Src: /src/libtpms/src/tpm2/TpmEcc_Util.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: "Crypt_Point* TpmEcc_PointFrom2B(\n    Crypt_Point*    ecP,  //
      OUT: the preallocated point structure\n    TPMS_ECC_POINT* p     // IN: the
      number to convert\n)"
    functionSourceFile: /src/libtpms/src/tpm2/TpmEcc_Util.c
    functionUses: 0
    functionsReached:
    - ExtEcc_PointFromBytes
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT Crypt_Point* TpmEcc_PointFrom2B(\n    Crypt_Point*    ecP,
      \ // OUT: the preallocated point structure\n    TPMS_ECC_POINT* p     // IN:
      the number to convert\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/TpmEcc_Util.c:112,1
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/TpmEcc_Util.c:113,1
    - Dst: CryptEccGetKeySizeForCurve
      Src: /src/libtpms/src/tpm2/TpmEcc_Util.c:114,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/TpmEcc_Util.c:115,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/TpmEcc_Util.c:116,1
    - Dst: ExtEcc_PointToBytes
      Src: /src/libtpms/src/tpm2/TpmEcc_Util.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - p
    - ecP
    - E
    argTypes:
    - TPMS_ECC_POINT*
    - Crypt_Point*
    - Crypt_EccCurve*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 121
    functionName: TpmEcc_PointTo2B
    functionSourceFile: /src/libtpms/src/tpm2/TpmEcc_Util.c
    functionUses: 0
    functionsReached:
    - ExtEcc_PointToBytes
    - BITS_TO_BYTES
    - pAssert
    - ExtEcc_CurveGetCurveId
    - MemorySet
    - CryptEccGetKeySizeForCurve
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT TpmEcc_PointTo2B(\n    TPMS_ECC_POINT*       p,    // OUT:
      the converted 2B structure\n    const Crypt_Point*    ecP,  // IN: the values
      to be converted\n    const Crypt_EccCurve* E     // IN: curve descriptor for
      the point\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - ci_prime_t*
    - bn_old_prime_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: CopyFromOldPrimeT
    functionSourceFile: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void CopyFromOldPrimeT(ci_prime_t *dst,\n\t\t\t\t     const bn_old_prime_t
      *src)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - object
    argTypes:
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 166
    functionName: ObjectGetHierarchyFromAttributes
    functionSourceFile: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TPMI_RH_HIERARCHY
    signature: TPMI_RH_HIERARCHY ObjectGetHierarchyFromAttributes(OBJECT* object)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ObjectGetHierarchyFromAttributes
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:171,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:181,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:184,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:187,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:190,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:193,1
    - Dst: CopyFromOldPrimeT
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:197,1
    - Dst: CopyFromOldPrimeT
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:198,1
    - Dst: CopyFromOldPrimeT
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:199,1
    - Dst: CopyFromOldPrimeT
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:200,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:203,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:206,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:209,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - OBJECT*
    - RSA2048_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 224
    functionName: RSA2048_OBJECT_To_OBJECT
    functionSourceFile: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    functionUses: 0
    functionsReached:
    - MemoryCopy2B
    - ObjectGetHierarchyFromAttributes
    - CopyFromOldPrimeT
    - memset
    linkageType: ''
    returnType: void
    signature: void RSA2048_OBJECT_To_OBJECT(OBJECT* dest, const RSA2048_OBJECT* src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:234,1
    - Dst: ObjectIsSequence
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:235,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:244,1
    - Dst: RSA2048_OBJECT_To_OBJECT
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - newObject
    - buffer
    - size
    argTypes:
    - OBJECT*
    - BYTE*
    - INT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 251
    functionName: RSA2048_OBJECT_Buffer_To_OBJECT
    functionSourceFile: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    functionUses: 0
    functionsReached:
    - ObjectIsSequence
    - MemoryCopy
    - RSA2048_OBJECT_To_OBJECT
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC RSA2048_OBJECT_Buffer_To_OBJECT(OBJECT* newObject, BYTE* buffer,
      INT32 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - ci_prime_t*
    - bn_rsa3072_prime_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 366
    functionName: CopyFromRSA3072PrimeT
    functionSourceFile: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void CopyFromRSA3072PrimeT(ci_prime_t* dst,\n\t\t\t\t       const
      bn_rsa3072_prime_t* src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - bn_rsa3072_prime_t*
    - ci_prime_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 374
    functionName: CopyToRSA3072PrimeT
    functionSourceFile: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void CopyToRSA3072PrimeT(bn_rsa3072_prime_t* dst,\n                                       const
      ci_prime_t* src)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ObjectGetHierarchyFromAttributes
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:379,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:389,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:392,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:395,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:398,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:401,1
    - Dst: CopyFromRSA3072PrimeT
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:405,1
    - Dst: CopyFromRSA3072PrimeT
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:406,1
    - Dst: CopyFromRSA3072PrimeT
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:407,1
    - Dst: CopyFromRSA3072PrimeT
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:408,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:411,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:414,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:417,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - OBJECT*
    - RSA3072_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 433
    functionName: RSA3072_OBJECT_To_OBJECT
    functionSourceFile: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    functionUses: 0
    functionsReached:
    - MemoryCopy2B
    - ObjectGetHierarchyFromAttributes
    - CopyFromRSA3072PrimeT
    - memset
    linkageType: ''
    returnType: void
    signature: void RSA3072_OBJECT_To_OBJECT(OBJECT* dest, const RSA3072_OBJECT* src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:448,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:453,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:458,1
    - Dst: CopyToRSA3072PrimeT
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:462,1
    - Dst: CopyToRSA3072PrimeT
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:463,1
    - Dst: CopyToRSA3072PrimeT
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:464,1
    - Dst: CopyToRSA3072PrimeT
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:465,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:468,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:471,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:481,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:489,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - RSA3072_OBJECT*
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 490
    functionName: OBJECT_To_RSA3072_OBJECT
    functionSourceFile: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    functionUses: 0
    functionsReached:
    - MemorySet
    - CopyToRSA3072PrimeT
    - MemoryCopy2B
    linkageType: ''
    returnType: void
    signature: void OBJECT_To_RSA3072_OBJECT(RSA3072_OBJECT* dest, const OBJECT* src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:500,1
    - Dst: RSA3072_OBJECT_To_OBJECT
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - object
    - buffer
    - size
    argTypes:
    - OBJECT*
    - BYTE*
    - INT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 505
    functionName: RSA3072_OBJECT_Buffer_To_OBJECT
    functionSourceFile: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    functionUses: 1
    functionsReached:
    - MemoryCopy
    - RSA3072_OBJECT_To_OBJECT
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC RSA3072_OBJECT_Buffer_To_OBJECT(OBJECT *object, BYTE *buffer,
      INT32 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OBJECT_To_RSA3072_OBJECT
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:512,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:514,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - object
    - buffer
    - size
    argTypes:
    - OBJECT*
    - BYTE*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 518
    functionName: OBJECT_To_Buffer_As_RSA3072_OBJECT
    functionSourceFile: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    functionUses: 1
    functionsReached:
    - MemoryCopy
    - pAssert
    - OBJECT_To_RSA3072_OBJECT
    linkageType: ''
    returnType: UINT32
    signature: UINT32 OBJECT_To_Buffer_As_RSA3072_OBJECT(OBJECT* object, BYTE* buffer,
      UINT32 size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _plat__Signal_PowerOn
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:88,1
    - Dst: _plat__Signal_Reset
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - isReset
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: _rpc__Signal_PowerOn
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 1
    functionsReached:
    - _plat__Signal_PowerOn
    - _plat__Signal_Reset
    linkageType: ''
    returnType: void
    signature: void _rpc__Signal_PowerOn(bool isReset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _plat__TimerRestart
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: _rpc__Signal_Restart
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 0
    functionsReached:
    - _plat__TimerRestart
    linkageType: ''
    returnType: void
    signature: void _rpc__Signal_Restart(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _plat__Signal_PowerOff
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: _rpc__Signal_PowerOff
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 2
    functionsReached:
    - _plat__Signal_PowerOff
    linkageType: ''
    returnType: void
    signature: void _rpc__Signal_PowerOff(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetForceFailureMode
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: _rpc__ForceFailureMode
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 0
    functionsReached:
    - SetForceFailureMode
    linkageType: ''
    returnType: void
    signature: void _rpc__ForceFailureMode(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _plat__Signal_PhysicalPresenceOn
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: _rpc__Signal_PhysicalPresenceOn
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 0
    functionsReached:
    - _plat__Signal_PhysicalPresenceOn
    linkageType: ''
    returnType: void
    signature: void _rpc__Signal_PhysicalPresenceOn(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _plat__Signal_PhysicalPresenceOff
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: _rpc__Signal_PhysicalPresenceOff
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 0
    functionsReached:
    - _plat__Signal_PhysicalPresenceOff
    linkageType: ''
    returnType: void
    signature: void _rpc__Signal_PhysicalPresenceOff(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _TPM_Hash_Start
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: _rpc__Signal_Hash_Start
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 0
    functionsReached:
    - _TPM_Hash_Start
    linkageType: ''
    returnType: void
    signature: void _rpc__Signal_Hash_Start(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _TPM_Hash_Data
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - input
    argTypes:
    - _IN_BUFFER
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: _rpc__Signal_Hash_Data
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 0
    functionsReached:
    - _TPM_Hash_Data
    linkageType: ''
    returnType: void
    signature: void _rpc__Signal_Hash_Data(_IN_BUFFER input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _TPM_Hash_End
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 6
    functionLinenumber: 181
    functionLinenumberEnd: 188
    functionName: _rpc__Signal_HashEnd
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 0
    functionsReached:
    - _TPM_Hash_End
    linkageType: ''
    returnType: void
    signature: void _rpc__Signal_HashEnd(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _plat__LocalitySet
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:204,1
    - Dst: _plat__RunCommand
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - locality
    - request
    - response
    argTypes:
    - unsigned char
    - _IN_BUFFER
    - _OUT_BUFFER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 6
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: _rpc__Send_Command
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 1
    functionsReached:
    - _plat__LocalitySet
    - _plat__RunCommand
    linkageType: ''
    returnType: void
    signature: "void _rpc__Send_Command(\n    unsigned char locality, _IN_BUFFER request,
      _OUT_BUFFER* response)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _plat__SetCancel
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 223
    functionName: _rpc__Signal_CancelOn
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 1
    functionsReached:
    - _plat__SetCancel
    linkageType: ''
    returnType: void
    signature: void _rpc__Signal_CancelOn(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _plat__ClearCancel
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 234
    functionName: _rpc__Signal_CancelOff
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 1
    functionsReached:
    - _plat__ClearCancel
    linkageType: ''
    returnType: void
    signature: void _rpc__Signal_CancelOff(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _plat__SetNvAvail
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 247
    functionName: _rpc__Signal_NvOn
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 1
    functionsReached:
    - _plat__SetNvAvail
    linkageType: ''
    returnType: void
    signature: void _rpc__Signal_NvOn(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _plat__ClearNvAvail
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: _rpc__Signal_NvOff
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 0
    functionsReached:
    - _plat__ClearNvAvail
    linkageType: ''
    returnType: void
    signature: void _rpc__Signal_NvOff(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RsaKeyCacheControl
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:270,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - state
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 275
    functionName: _rpc__RsaKeyCacheControl
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 0
    functionsReached:
    - RsaKeyCacheControl
    - NOT_REFERENCED
    linkageType: ''
    returnType: void
    signature: void _rpc__RsaKeyCacheControl(int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _plat__ACT_GetSignaled
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:285,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - actHandle
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 290
    functionName: _rpc__ACT_GetSignaled
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 0
    functionsReached:
    - _plat__ACT_GetSignaled
    - NOT_REFERENCED
    linkageType: ''
    returnType: bool
    signature: bool _rpc__ACT_GetSignaled(uint32_t actHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _plat__SetTpmFirmwareHash
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 299
    functionName: _rpc__SetTpmFirmwareHash
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 0
    functionsReached:
    - _plat__SetTpmFirmwareHash
    linkageType: ''
    returnType: void
    signature: void _rpc__SetTpmFirmwareHash(uint32_t hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _plat__SetTpmFirmwareSvn
      Src: /src/libtpms/src/tpm2/TPMCmdp.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - svn
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: _rpc__SetTpmFirmwareSvn
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 0
    functionsReached:
    - _plat__SetTpmFirmwareSvn
    linkageType: ''
    returnType: void
    signature: void _rpc__SetTpmFirmwareSvn(uint16_t svn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: _rpc__Signal_SetTPMEstablished
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _rpc__Signal_SetTPMEstablished(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: _rpc__Signal_ResetTPMEstablished
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void _rpc__Signal_ResetTPMEstablished(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 328
    functionName: _rpc__Signal_GetTPMEstablished
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _rpc__Signal_GetTPMEstablished(void)
  - 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: _rpc__Signal_IsPowerOn
    functionSourceFile: /src/libtpms/src/tpm2/TPMCmdp.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool _rpc__Signal_IsPowerOn(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - aSize
    - a
    - bSize
    - b
    argTypes:
    - UINT32
    - BYTE*
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 100
    functionName: UnsignedCompareB
    functionSourceFile: /src/libtpms/src/tpm2/MathOnByteBuffers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT UnsignedCompareB(UINT32      aSize,  // IN: size of a\n
      \                               const BYTE* a,      // IN: a\n                                UINT32
      \     bSize,  // IN: size of b\n                                const BYTE*
      b       // IN: b\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UnsignedCompareB
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - aSize
    - a
    - bSize
    - b
    argTypes:
    - UINT32
    - BYTE*
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 121
    functionName: SignedCompareB
    functionSourceFile: /src/libtpms/src/tpm2/MathOnByteBuffers.c
    functionUses: 0
    functionsReached:
    - UnsignedCompareB
    linkageType: ''
    returnType: int
    signature: "int SignedCompareB(const UINT32 aSize,  // IN: size of a\n                   const
      BYTE*  a,      // IN: a buffer\n                   const UINT32 bSize,  // IN:
      size of b\n                   const BYTE*  b       // IN: b buffer\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_INT_MAX
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:156,1
    - Dst: CRYPT_INT_MAX
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:157,1
    - Dst: CRYPT_INT_MAX
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:158,1
    - Dst: CRYPT_INT_MAX
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:159,1
    - Dst: ExtMath_IntFromBytes
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:164,1
    - Dst: ExtMath_IntFromBytes
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:165,1
    - Dst: ExtMath_IntFromBytes
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:166,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:171,1
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:172,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:173,1
    - Dst: ExtMath_ModExp
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:174,1
    - Dst: ExtMath_IntToBytes
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 8
    argNames:
    - cSize
    - c
    - mSize
    - m
    - eSize
    - e
    - nSize
    - n
    argTypes:
    - UINT32
    - BYTE*
    - UINT32
    - BYTE*
    - UINT32
    - BYTE*
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 178
    functionName: ModExpB
    functionSourceFile: /src/libtpms/src/tpm2/MathOnByteBuffers.c
    functionUses: 0
    functionsReached:
    - CRYPT_INT_MAX
    - ExtMath_IntFromBytes
    - ExtMath_UnsignedCmp
    - ERROR_EXIT
    - ExtMath_IntToBytes
    - ExtMath_ModExp
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC ModExpB(UINT32 cSize,  // IN: the size of the output buffer.
      It will\n                       //     need to be the same size as the modulus\n
      \       BYTE* c,       // OUT: the buffer to receive the results\n                       //
      \    (c->size must be set to the maximum size\n                       //     for
      the returned value)\n        const UINT32 mSize,\n        const BYTE*  m,  //
      IN: number to exponentiate\n        const UINT32 eSize,\n        const BYTE*
      \ e,  // IN: power\n        const UINT32 nSize,\n        const BYTE*  n  //
      IN: modulus\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_INT_MAX_INITIALIZED
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:195,1
    - Dst: CRYPT_INT_MAX_INITIALIZED
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:196,1
    - Dst: CRYPT_INT_MAX
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:197,1
    - Dst: CRYPT_INT_MAX
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:198,1
    - Dst: ExtMath_Divide
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:201,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:206,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - n
    - d
    - q
    - r
    argTypes:
    - TPM2B*
    - TPM2B*
    - TPM2B*
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 212
    functionName: DivideB
    functionSourceFile: /src/libtpms/src/tpm2/MathOnByteBuffers.c
    functionUses: 0
    functionsReached:
    - CRYPT_INT_MAX
    - ExtMath_Divide
    - CRYPT_INT_MAX_INITIALIZED
    - TpmMath_IntTo2B
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT DivideB(const TPM2B* n,  // IN: numerator\n                          const
      TPM2B* d,  // IN: denominator\n                          TPM2B*       q,  //
      OUT: quotient\n                          TPM2B*       r   // OUT: remainder\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:239,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:245,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/MathOnByteBuffers.c:246,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - num
    - requestedSize
    argTypes:
    - TPM2B*
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 250
    functionName: AdjustNumberB
    functionSourceFile: /src/libtpms/src/tpm2/MathOnByteBuffers.c
    functionUses: 1
    functionsReached:
    - MemorySet
    - MemoryCopy
    linkageType: ''
    returnType: UINT16
    signature: UINT16 AdjustNumberB(TPM2B* num, UINT16 requestedSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 269
    functionName: ShiftLeft
    functionSourceFile: /src/libtpms/src/tpm2/MathOnByteBuffers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM2B
    signature: 'TPM2B * ShiftLeft(TPM2B* value  // IN/OUT: value to shift and shifted
      value out

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - alg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: TPM_DO_SELF_TEST
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_DO_SELF_TEST(alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: CODELOCATOR
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODELOCATOR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: CODELOCATOR
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODELOCATOR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - errorCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: SETFAILED
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETFAILED(errorCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - failCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: FAIL
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL(failCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - failCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: FAIL_NORET
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_NORET(failCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - failCode
    - ','
    - retval
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: FAIL_IMMEDIATE
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_IMMEDIATE(failCode, retval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - failCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: FAIL_BOOL
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_BOOL(failCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - failCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: FAIL_RC
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_RC(failCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - failCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: FAIL_VOID
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_VOID(failCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - failCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: FAIL_NULL
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_NULL(failCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - failCode
    - ','
    - returnVar
    - ','
    - returnCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: FAIL_EXIT
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_EXIT(failCode, returnVar, returnCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - failCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: FAIL
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL(failCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - failCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: FAIL_NORET
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_NORET(failCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - failCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: FAIL_VOID
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_VOID(failCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - failCode
    - ','
    - retval
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: FAIL_IMMEDIATE
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_IMMEDIATE(failCode, retval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - failCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: FAIL_BOOL
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_BOOL(failCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - failCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: FAIL_RC
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_RC(failCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - failCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 201
    functionName: FAIL_NULL
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_NULL(failCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - failCode
    - ','
    - returnVar
    - ','
    - returnCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 210
    functionName: FAIL_EXIT
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FAIL_EXIT(failCode, returnVar, returnCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - condition
    - ','
    - failCode
    - ','
    - returnCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 225
    functionName: VERIFY
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY(condition, failCode, returnCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - condition
    - ','
    - failCode
    - ','
    - returnVar
    - ','
    - returnCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 236
    functionName: VERIFY_OR_EXIT
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_OR_EXIT(condition, failCode, returnVar, returnCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 253
    functionName: VERIFY_RC
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_RC(rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 263
    functionName: VERIFY_NOT_FAILED
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_NOT_FAILED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rc
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 277
    functionName: VERIFY_RC_VOID
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_RC_VOID(rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: VERIFY_CRYPTO
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_CRYPTO(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 299
    functionName: VERIFY_CRYPTO_BOOL
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_CRYPTO_BOOL(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: VERIFY_CRYPTO_OR_NULL
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_CRYPTO_OR_NULL(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fn
    - ','
    - returnVar
    - ','
    - returnCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: VERIFY_CRYPTO_OR_EXIT
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_CRYPTO_OR_EXIT(fn, returnVar, returnCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: VERIFY_CRYPTO_OR_EXIT_RC
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_CRYPTO_OR_EXIT_RC(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: VERIFY_CRYPTO_OR_EXIT_FALSE
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_CRYPTO_OR_EXIT_FALSE(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 323
    functionName: VERIFY_CRYPTO_RC_OR_EXIT
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_CRYPTO_RC_OR_EXIT(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 326
    functionName: pAssert
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 89
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pAssert(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 333
    functionName: pAssert
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 89
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pAssert(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 340
    functionName: pAssert_ZERO
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pAssert_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: 347
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 347
    functionName: pAssert_RC
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pAssert_RC(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 354
    functionName: pAssert_BOOL
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pAssert_BOOL(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: pAssert_NULL
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pAssert_NULL(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 370
    functionName: pAssert_NORET
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pAssert_NORET(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: pAssert_VOID_OK
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pAssert_VOID_OK(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - returnCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 392
    functionName: ERROR_EXIT
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR_EXIT(returnCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 406
    functionName: GOTO_ERROR_UNLESS
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GOTO_ERROR_UNLESS(_X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 411
    functionName: IsOdd
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsOdd(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: BITS_TO_BYTES
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS_TO_BYTES(bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bit
    - ','
    - vector
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 420
    functionName: TEST_BIT
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BIT(bit, vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bit
    - ','
    - vector
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 421
    functionName: SET_BIT
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BIT(bit, vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bit
    - ','
    - vector
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 422
    functionName: CLEAR_BIT
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_BIT(bit, vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 4
    argNames:
    - (
    - x
    - = x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 434
    functionName: NOT_REFERENCED
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOT_REFERENCED(x = x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - type
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: IS_ATTRIBUTE
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ATTRIBUTE(a, type, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - type
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 456
    functionName: SET_ATTRIBUTE
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ATTRIBUTE(a, type, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - type
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 457
    functionName: CLEAR_ATTRIBUTE
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_ATTRIBUTE(a, type, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - type
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    functionName: GET_ATTRIBUTE
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_ATTRIBUTE(a, type, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: TPMA_ZERO_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_ZERO_INITIALIZER()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - type
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 464
    functionName: IS_ATTRIBUTE
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_ATTRIBUTE(a, type, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - type
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 465
    functionName: SET_ATTRIBUTE
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ATTRIBUTE(a, type, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - type
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 466
    functionName: CLEAR_ATTRIBUTE
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_ATTRIBUTE(a, type, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - type
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 467
    functionName: GET_ATTRIBUTE
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_ATTRIBUTE(a, type, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 468
    functionName: TPMA_ZERO_INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPMA_ZERO_INITIALIZER()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _value_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 484
    functionName: INITIALIZER
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INITIALIZER(_value_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 492
    functionName: MAKE_OID
    functionSourceFile: /src/libtpms/src/tpm2/GpMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAKE_OID(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - object
    argTypes:
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: ObjectFlush
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ObjectFlush(OBJECT* object)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - object
    argTypes:
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: ObjectSetInUse
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ObjectSetInUse(OBJECT* object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ObjectFlush
      Src: /src/libtpms/src/tpm2/Object.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: ObjectStartup
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 1
    functionsReached:
    - ObjectFlush
    linkageType: ''
    returnType: BOOL
    signature: BOOL ObjectStartup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ObjectFlush
      Src: /src/libtpms/src/tpm2/Object.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 126
    functionName: ObjectCleanupEvict
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 1
    functionsReached:
    - ObjectFlush
    linkageType: ''
    returnType: void
    signature: void ObjectCleanupEvict(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_OBJECT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 149
    functionName: IsObjectPresent
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL IsObjectPresent(TPMI_DH_OBJECT handle  // IN: handle to be checked

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: ObjectIsSequence
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 7
    functionsReached:
    - pAssert
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL ObjectIsSequence(OBJECT* object  // IN: handle to be checked

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Object.c:177,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object.c:182,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_OBJECT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: HandleToObject
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 28
    functionsReached:
    - pAssert
    - HandleGetType
    linkageType: ''
    returnType: OBJECT
    signature: 'OBJECT * HandleToObject(TPMI_DH_OBJECT handle  // IN: handle of the
      object

      )'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Object.c:201,1
    - Dst: UINT32_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/Object.c:205,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/Object.c:208,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/Object.c:216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - handle
    - qualifiedName
    argTypes:
    - TPMI_DH_OBJECT
    - TPM2B_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 219
    functionName: GetQualifiedName
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached:
    - FAIL
    - UINT32_TO_BYTE_ARRAY
    - HandleGetType
    - HandleToObject
    linkageType: ''
    returnType: void
    signature: "void GetQualifiedName(TPMI_DH_OBJECT handle,     // IN: handle of
      the object\n                      TPM2B_NAME* qualifiedName  // OUT: qualified
      name of the object\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/Object.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_OBJECT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 230
    functionName: GetHierarchy
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached:
    - HandleToObject
    linkageType: ''
    returnType: TPMI_RH_HIERARCHY
    signature: 'TPMI_RH_HIERARCHY GetHierarchy(TPMI_DH_OBJECT handle  // IN :object
      handle

      )'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Object.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 260
    functionName: FindEmptyObjectSlot
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached:
    - MemorySet
    linkageType: ''
    returnType: OBJECT
    signature: 'OBJECT * FindEmptyObjectSlot(TPMI_DH_OBJECT* handle  // OUT: (optional)

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FindEmptyObjectSlot
      Src: /src/libtpms/src/tpm2/Object.c:267,1
    - Dst: ObjectSetInUse
      Src: /src/libtpms/src/tpm2/Object.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 275
    functionName: ObjectAllocateSlot
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached:
    - ObjectSetInUse
    - FindEmptyObjectSlot
    linkageType: ''
    returnType: OBJECT
    signature: 'OBJECT * ObjectAllocateSlot(TPMI_DH_OBJECT* handle  // OUT: handle
      of allocated object

      )'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/Object.c:286,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object.c:293,1
    - Dst: HierarchyNormalizeHandle
      Src: /src/libtpms/src/tpm2/Object.c:299,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object.c:321,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object.c:339,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object.c:341,1
    - Dst: ComputeQualifiedName
      Src: /src/libtpms/src/tpm2/Object.c:351,1
    - Dst: ObjectSetInUse
      Src: /src/libtpms/src/tpm2/Object.c:357,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - object
    - parentHandle
    - seedCompatLevel
    argTypes:
    - OBJECT*
    - TPM_HANDLE
    - SEED_COMPAT_LEVEL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 359
    functionName: ObjectSetLoadedAttributes
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - HierarchyNormalizeHandle
    - HandleToObject
    - ObjectSetInUse
    - ComputeQualifiedName
    linkageType: ''
    returnType: void
    signature: "void ObjectSetLoadedAttributes(OBJECT* object,  // IN: object attributes
      to finalize\n                               TPM_HANDLE parentHandle, // IN:
      the parent handle\n                               SEED_COMPAT_LEVEL seedCompatLevel
      // IN: seed compat level to use for children\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object.c:385,1
    - Dst: SchemeChecks
      Src: /src/libtpms/src/tpm2/Object.c:392,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Object.c:398,1
    - Dst: PublicAttributesValidation
      Src: /src/libtpms/src/tpm2/Object.c:407,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/Object.c:410,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object.c:424,1
    - Dst: CryptValidateKeys
      Src: /src/libtpms/src/tpm2/Object.c:429,1
    - Dst: CryptRsaLoadPrivateExponent
      Src: /src/libtpms/src/tpm2/Object.c:440,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 7
    argNames:
    - object
    - parent
    - publicArea
    - sensitive
    - blamePublic
    - blameSensitive
    - name
    argTypes:
    - OBJECT*
    - OBJECT*
    - TPMT_PUBLIC*
    - TPMT_SENSITIVE*
    - TPM_RC
    - TPM_RC
    - TPM2B_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 368
    functionDepth: 3
    functionLinenumber: 368
    functionLinenumberEnd: 462
    functionName: ObjectLoad
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - IS_ATTRIBUTE
    - CryptRsaLoadPrivateExponent
    - PublicAttributesValidation
    - RcSafeAddToResult
    - pAssert
    - SchemeChecks
    - CryptValidateKeys
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC ObjectLoad(OBJECT* object,           // IN: pointer to object
      slot\n                                     //     object\n           OBJECT*
      \     parent,      // IN: (optional) the parent object\n           TPMT_PUBLIC*
      publicArea,  // IN: public area to be installed in the object\n           TPMT_SENSITIVE*
      sensitive,  // IN: (optional) sensitive area to be\n                                       //
      \     installed in the object\n           TPM_RC blamePublic,         // IN:
      parameter number to associate with the\n                                       //
      \    publicArea errors\n           TPM_RC blameSensitive,      // IN: parameter
      number to associate with the\n                                       //     sensitive
      area errors\n           TPM2B_NAME* name            // IN: (optional)\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ObjectAllocateSlot
      Src: /src/libtpms/src/tpm2/Object.c:474,1
    - Dst: MUST_BE
      Src: /src/libtpms/src/tpm2/Object.c:479,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Object.c:486,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object.c:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - newHandle
    - auth
    argTypes:
    - TPM_HANDLE*
    - TPM2B_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 469
    functionDepth: 3
    functionLinenumber: 469
    functionLinenumberEnd: 508
    functionName: AllocateSequenceSlot
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached:
    - MemorySet
    - ObjectAllocateSlot
    - MUST_BE
    - SET_ATTRIBUTE
    linkageType: ''
    returnType: HASH_OBJECT
    signature: "HASH_OBJECT * AllocateSequenceSlot(\n    TPM_HANDLE* newHandle,  //
      OUT: receives the allocated handle\n    TPM2B_AUTH* auth        // IN: the authValue
      for the slot\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: AllocateSequenceSlot
      Src: /src/libtpms/src/tpm2/Object.c:526,1
    - Dst: CryptHmacStart
      Src: /src/libtpms/src/tpm2/Object.c:534,1
    - Dst: CryptMacStart
      Src: /src/libtpms/src/tpm2/Object.c:540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - hashAlg
    - keyObject
    - auth
    - newHandle
    argTypes:
    - TPMI_ALG_HASH
    - OBJECT*
    - TPM2B_AUTH*
    - TPMI_DH_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 515
    functionDepth: 4
    functionLinenumber: 515
    functionLinenumberEnd: 548
    functionName: ObjectCreateHMACSequence
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached:
    - CryptHmacStart
    - CryptMacStart
    - AllocateSequenceSlot
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC ObjectCreateHMACSequence(\n    TPMI_ALG_HASH   hashAlg,    //
      IN: hash algorithm\n    OBJECT*         keyObject,  // IN: the object containing
      the HMAC key\n    TPM2B_AUTH*     auth,       // IN: authValue\n    TPMI_DH_OBJECT*
      newHandle   // OUT: HMAC sequence object handle\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AllocateSequenceSlot
      Src: /src/libtpms/src/tpm2/Object.c:561,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/Object.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - hashAlg
    - auth
    - newHandle
    argTypes:
    - TPMI_ALG_HASH
    - TPM2B_AUTH*
    - TPMI_DH_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 555
    functionDepth: 4
    functionLinenumber: 555
    functionLinenumberEnd: 573
    functionName: ObjectCreateHashSequence
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached:
    - CryptHashStart
    - AllocateSequenceSlot
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC ObjectCreateHashSequence(TPMI_ALG_HASH   hashAlg,   // IN:
      hash algorithm\n                         TPM2B_AUTH*     auth,      // IN: authValue\n
      \                        TPMI_DH_OBJECT* newHandle  // OUT: sequence object
      handle\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AllocateSequenceSlot
      Src: /src/libtpms/src/tpm2/Object.c:584,1
    - Dst: CryptHashGetAlgByIndex
      Src: /src/libtpms/src/tpm2/Object.c:595,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/Object.c:596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - auth
    - newHandle
    argTypes:
    - TPM2B_AUTH*
    - TPMI_DH_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 579
    functionDepth: 4
    functionLinenumber: 579
    functionLinenumberEnd: 598
    functionName: ObjectCreateEventSequence
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 1
    functionsReached:
    - CryptHashStart
    - CryptHashGetAlgByIndex
    - AllocateSequenceSlot
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC ObjectCreateEventSequence(TPM2B_AUTH*     auth,      // IN:
      authValue\n                          TPMI_DH_OBJECT* newHandle  // OUT: sequence
      object handle\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/Object.c:609,1
    - Dst: CryptHashGetAlgByIndex
      Src: /src/libtpms/src/tpm2/Object.c:618,1
    - Dst: CryptHashEnd
      Src: /src/libtpms/src/tpm2/Object.c:620,1
    - Dst: FlushObject
      Src: /src/libtpms/src/tpm2/Object.c:623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 626
    functionName: ObjectTerminateEvent
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 1
    functionsReached:
    - CryptHashEnd
    - FlushObject
    - HandleToObject
    - CryptHashGetAlgByIndex
    linkageType: ''
    returnType: void
    signature: void ObjectTerminateEvent(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ObjectAllocateSlot
      Src: /src/libtpms/src/tpm2/Object.c:640,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/Object.c:646,1
    - Dst: ObjectIsSequence
      Src: /src/libtpms/src/tpm2/Object.c:648,1
    - Dst: SequenceDataImport
      Src: /src/libtpms/src/tpm2/Object.c:651,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/Object.c:656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - object
    - handle
    argTypes:
    - ANY_OBJECT_BUFFER*
    - TPMI_DH_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 634
    functionDepth: 3
    functionLinenumber: 634
    functionLinenumberEnd: 660
    functionName: ObjectContextLoad
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached:
    - MemoryCopy
    - ObjectAllocateSlot
    - SequenceDataImport
    - ObjectIsSequence
    linkageType: ''
    returnType: OBJECT
    signature: "OBJECT * ObjectContextLoad(\n    ANY_OBJECT_BUFFER* object,  // IN:
      pointer to object structure in saved\n                                //     context\n
      \   TPMI_DH_OBJECT* handle      // OUT: object handle\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ObjectAllocateSlot
      Src: /src/libtpms/src/tpm2/Object.c:669,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object.c:674,1
    - Dst: ANY_OBJECT_Unmarshal
      Src: /src/libtpms/src/tpm2/Object.c:679,1
    - Dst: RSA2048_OBJECT_Buffer_To_OBJECT
      Src: /src/libtpms/src/tpm2/Object.c:684,1
    - Dst: FlushObject
      Src: /src/libtpms/src/tpm2/Object.c:686,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - buffer
    - size
    - handle
    argTypes:
    - BYTE*
    - INT32
    - TPMI_DH_OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 663
    functionDepth: 9
    functionLinenumber: 663
    functionLinenumberEnd: 692
    functionName: ObjectContextLoadLibtpms
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 1
    functionsReached:
    - ANY_OBJECT_Unmarshal
    - RSA2048_OBJECT_Buffer_To_OBJECT
    - pAssert
    - FlushObject
    - ObjectAllocateSlot
    linkageType: ''
    returnType: OBJECT
    signature: "OBJECT *\nObjectContextLoadLibtpms(BYTE           *buffer,\n                         INT32
      \          size,\n                         TPMI_DH_OBJECT *handle\n                         )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object.c:703,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Object.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_OBJECT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 707
    functionName: FlushObject
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 5
    functionsReached:
    - MemorySet
    - pAssert
    linkageType: ''
    returnType: void
    signature: 'void FlushObject(TPMI_DH_OBJECT handle  // IN: handle to be freed

      )'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/Object.c:737,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 1
    argNames:
    - hierarchy
    argTypes:
    - TPMI_RH_HIERARCHY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 744
    functionName: ObjectFlushHierarchy
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached:
    - FAIL
    linkageType: ''
    returnType: void
    signature: 'void ObjectFlushHierarchy(TPMI_RH_HIERARCHY hierarchy  // IN: hierarchy
      to be flush

      )'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ObjectAllocateSlot
      Src: /src/libtpms/src/tpm2/Object.c:776,1
    - Dst: NvGetEvictObject
      Src: /src/libtpms/src/tpm2/Object.c:783,1
    - Dst: HierarchyNormalizeHandle
      Src: /src/libtpms/src/tpm2/Object.c:793,1
    - Dst: GetCommandCode
      Src: /src/libtpms/src/tpm2/Object.c:794,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - handle
    - commandIndex
    argTypes:
    - TPM_HANDLE*
    - COMMAND_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 754
    functionDepth: 5
    functionLinenumber: 754
    functionLinenumberEnd: 798
    functionName: ObjectLoadEvict
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 1
    functionsReached:
    - ObjectAllocateSlot
    - NvGetEvictObject
    - GetCommandCode
    - HierarchyNormalizeHandle
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC ObjectLoadEvict(TPM_HANDLE* handle,  // IN:OUT: evict object
      handle.  If success, it\n                                     // will be replace
      by the loaded object handle\n                COMMAND_INDEX commandIndex  //
      IN: the command being processed\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashBlock
      Src: /src/libtpms/src/tpm2/Object.c:809,1
    - Dst: UINT16_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/Object.c:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - size
    - publicArea
    - nameAlg
    - name
    argTypes:
    - UINT32
    - BYTE*
    - TPM_ALG_ID
    - TPM2B_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 815
    functionName: ObjectComputeName
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached:
    - UINT16_TO_BYTE_ARRAY
    - CryptHashBlock
    linkageType: ''
    returnType: TPM2B_NAME
    signature: "TPM2B_NAME * ObjectComputeName(UINT32     size,  // IN: the size of
      the area to digest\n                              BYTE*      publicArea,  //
      IN: the public area to digest\n                              TPM_ALG_ID nameAlg,
      \    // IN: the hash algorithm to use\n                              TPM2B_NAME*
      name        // OUT: Computed name\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMT_PUBLIC_Marshal
      Src: /src/libtpms/src/tpm2/Object.c:836,1
    - Dst: ObjectComputeName
      Src: /src/libtpms/src/tpm2/Object.c:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - publicArea
    - name
    argTypes:
    - TPMT_PUBLIC*
    - TPM2B_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 819
    functionDepth: 11
    functionLinenumber: 819
    functionLinenumberEnd: 842
    functionName: PublicMarshalAndComputeName
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 1
    functionsReached:
    - TPMT_PUBLIC_Marshal
    - ObjectComputeName
    linkageType: ''
    returnType: TPM2B_NAME
    signature: "TPM2B_NAME * PublicMarshalAndComputeName(\n    TPMT_PUBLIC* publicArea,
      \ // IN: public area of an object\n    TPM2B_NAME*  name         // OUT: name
      of the object\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/Object.c:858,1
    - Dst: GetQualifiedName
      Src: /src/libtpms/src/tpm2/Object.c:863,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/Object.c:868,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Object.c:871,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Object.c:874,1
    - Dst: CryptHashEnd
      Src: /src/libtpms/src/tpm2/Object.c:877,1
    - Dst: UINT16_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/Object.c:878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - parentHandle
    - nameAlg
    - name
    - qualifiedName
    argTypes:
    - TPM_HANDLE
    - TPM_ALG_ID
    - TPM2B_NAME*
    - TPM2B_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 846
    functionDepth: 3
    functionLinenumber: 846
    functionLinenumberEnd: 882
    functionName: ComputeQualifiedName
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 1
    functionsReached:
    - CryptDigestUpdate2B
    - CryptHashStart
    - MemoryCopy2B
    - GetQualifiedName
    - UINT16_TO_BYTE_ARRAY
    - CryptHashEnd
    linkageType: ''
    returnType: void
    signature: "void ComputeQualifiedName(\n    TPM_HANDLE  parentHandle,  // IN:
      parent's handle\n    TPM_ALG_ID  nameAlg,       // IN: name hash\n    TPM2B_NAME*
      name,          // IN: name of the object\n    TPM2B_NAME* qualifiedName  //
      OUT: qualified name of the object\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/Object.c:894,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object.c:898,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object.c:899,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Object.c:900,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_OBJECT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 891
    functionDepth: 2
    functionLinenumber: 891
    functionLinenumberEnd: 903
    functionName: ObjectIsStorage
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - HandleToObject
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL ObjectIsStorage(TPMI_DH_OBJECT handle  // IN: object handle

      )'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object.c:921,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Object.c:921,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object.c:936,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - handle
    - count
    - handleList
    argTypes:
    - TPMI_DH_OBJECT
    - UINT32
    - TPML_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 956
    functionName: ObjectCapGetLoaded
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached:
    - pAssert
    - HandleGetType
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO ObjectCapGetLoaded(TPMI_DH_OBJECT handle,     // IN: start
      handle\n                   UINT32         count,      // IN: count of returned
      handles\n                   TPML_HANDLE*   handleList  // OUT: list of handle\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object.c:964,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Object.c:964,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Object.c:972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_DH_OBJECT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 979
    functionName: ObjectCapGetOneLoaded
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached:
    - pAssert
    - HandleGetType
    linkageType: ''
    returnType: BOOL
    signature: BOOL ObjectCapGetOneLoaded(TPMI_DH_OBJECT handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 998
    functionName: ObjectCapGetTransientAvail
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: UINT32
    signature: UINT32 ObjectCapGetTransientAvail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/Object.c:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1002
    functionDepth: 2
    functionLinenumber: 1002
    functionLinenumberEnd: 1006
    functionName: ObjectGetPublicAttributes
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 1
    functionsReached:
    - HandleToObject
    linkageType: ''
    returnType: TPMA_OBJECT
    signature: TPMA_OBJECT ObjectGetPublicAttributes(TPM_HANDLE handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/Object.c:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1009
    functionDepth: 2
    functionLinenumber: 1009
    functionLinenumberEnd: 1013
    functionName: ObjectGetProperties
    functionSourceFile: /src/libtpms/src/tpm2/Object.c
    functionUses: 0
    functionsReached:
    - HandleToObject
    linkageType: ''
    returnType: OBJECT_ATTRIBUTES
    signature: OBJECT_ATTRIBUTES ObjectGetProperties(TPM_HANDLE handle)
  - 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: MUST_BE_0_OR_1
    functionSourceFile: /src/libtpms/src/tpm2/VerifyConfiguration.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUST_BE_0_OR_1(x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FindEmptyObjectSlot
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:78,1
    - Dst: CreateChecks
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:90,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:93,1
    - Dst: AdjustAuthSize
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:95,1
    - Dst: HierarchyGetPrimarySeed
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:104,1
    - Dst: DRBG_InstantiateSeeded
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:109,1
    - Dst: PublicMarshalAndComputeName
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:112,1
    - Dst: HierarchyGetPrimarySeedCompatLevel
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:114,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:115,1
    - Dst: HierarchyNormalizeHandle
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:120,1
    - Dst: CryptCreateObject
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:124,1
    - Dst: DRBG_Uninstantiate
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:126,1
    - Dst: FillInCreationData
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:136,1
    - Dst: TicketComputeCreation
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:144,1
    - Dst: EntityGetHierarchy
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:144,1
    - Dst: ObjectSetLoadedAttributes
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:152,1
    - Dst: HierarchyGetPrimarySeedCompatLevel
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:153,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - CreatePrimary_In*
    - CreatePrimary_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 64
    functionDepth: 12
    functionLinenumber: 64
    functionLinenumberEnd: 155
    functionName: TPM2_CreatePrimary
    functionSourceFile: /src/libtpms/src/tpm2/HierarchyCommands.c
    functionUses: 0
    functionsReached:
    - HierarchyNormalizeHandle
    - PublicMarshalAndComputeName
    - RcSafeAddToResult
    - CreateChecks
    - CryptCreateObject
    - HierarchyGetPrimarySeedCompatLevel
    - FillInCreationData
    - HierarchyGetPrimarySeed
    - DRBG_Uninstantiate
    - FindEmptyObjectSlot
    - ObjectSetLoadedAttributes
    - DRBG_InstantiateSeeded
    - EntityGetHierarchy
    - MemorySet
    - AdjustAuthSize
    - TicketComputeCreation
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_CreatePrimary(\n\t\t   CreatePrimary_In    *in,            //
      IN: input parameter list\n\t\t   CreatePrimary_Out   *out            // OUT:
      output parameter list\n\t\t   )"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:202,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:230,1
    - Dst: ObjectFlushHierarchy
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:243,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 48
    argCount: 1
    argNames:
    - in
    argTypes:
    - HierarchyControl_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 249
    functionName: TPM2_HierarchyControl
    functionSourceFile: /src/libtpms/src/tpm2/HierarchyCommands.c
    functionUses: 0
    functionsReached:
    - FAIL
    - ObjectFlushHierarchy
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_HierarchyControl(\n\t\t      HierarchyControl_In     *in
      \            // IN: input parameter list\n\t\t      )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:262,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:276,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:277,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:282,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:283,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:294,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:295,1
    - Dst: FOR_EACH_ACT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:305,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:308,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 1
    argNames:
    - in
    argTypes:
    - SetPrimaryPolicy_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 312
    functionName: TPM2_SetPrimaryPolicy
    functionSourceFile: /src/libtpms/src/tpm2/HierarchyCommands.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - NV_SYNC_PERSISTENT
    - FAIL
    - FOR_EACH_ACT
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_SetPrimaryPolicy(\n\t\t      SetPrimaryPolicy_In     *in
      \            // IN: input parameter list\n\t\t      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 304
    functionName: SET_ACT_POLICY
    functionSourceFile: /src/libtpms/src/tpm2/HierarchyCommands.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ACT_POLICY(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:327,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:330,1
    - Dst: RuntimeProfileGetSeedCompatLevel
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:331,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:334,1
    - Dst: ObjectFlushHierarchy
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:339,1
    - Dst: NvFlushHierarchy
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:341,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:343,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:344,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:345,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - in
    argTypes:
    - ChangePPS_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 317
    functionDepth: 6
    functionLinenumber: 317
    functionLinenumberEnd: 358
    functionName: TPM2_ChangePPS
    functionSourceFile: /src/libtpms/src/tpm2/HierarchyCommands.c
    functionUses: 0
    functionsReached:
    - NOT_REFERENCED
    - CryptRandomGenerate
    - ObjectFlushHierarchy
    - NvFlushHierarchy
    - RuntimeProfileGetSeedCompatLevel
    - NV_SYNC_PERSISTENT
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ChangePPS(\n\t       ChangePPS_In    *in             //
      IN: input parameter list\n\t       )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:373,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:376,1
    - Dst: RuntimeProfileGetSeedCompatLevel
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:377,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:379,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:383,1
    - Dst: ObjectFlushHierarchy
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:390,1
    - Dst: NvFlushHierarchy
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:392,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:394,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:395,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:396,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:397,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:398,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - in
    argTypes:
    - ChangeEPS_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 363
    functionDepth: 6
    functionLinenumber: 363
    functionLinenumberEnd: 403
    functionName: TPM2_ChangeEPS
    functionSourceFile: /src/libtpms/src/tpm2/HierarchyCommands.c
    functionUses: 0
    functionsReached:
    - NOT_REFERENCED
    - CryptRandomGenerate
    - ObjectFlushHierarchy
    - NvFlushHierarchy
    - RuntimeProfileGetSeedCompatLevel
    - NV_SYNC_PERSISTENT
    - MemorySet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ChangeEPS(\n\t       ChangeEPS_In    *in             //
      IN: input parameter list\n\t       )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:414,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:425,1
    - Dst: RuntimeProfileGetSeedCompatLevel
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:426,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:428,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:429,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:433,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:434,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:435,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:438,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:439,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:440,1
    - Dst: ObjectFlushHierarchy
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:442,1
    - Dst: ObjectFlushHierarchy
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:443,1
    - Dst: NvFlushHierarchy
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:445,1
    - Dst: NvFlushHierarchy
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:446,1
    - Dst: DAPreInstall_Init
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:448,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:452,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:459,1
    - Dst: PCR_ClearAuth
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:461,1
    - Dst: PCRChanged
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - in
    argTypes:
    - Clear_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 408
    functionDepth: 6
    functionLinenumber: 408
    functionLinenumberEnd: 467
    functionName: TPM2_Clear
    functionSourceFile: /src/libtpms/src/tpm2/HierarchyCommands.c
    functionUses: 0
    functionsReached:
    - PCRChanged
    - NvWrite
    - NOT_REFERENCED
    - CryptRandomGenerate
    - ObjectFlushHierarchy
    - NvFlushHierarchy
    - DAPreInstall_Init
    - RuntimeProfileGetSeedCompatLevel
    - PCR_ClearAuth
    - MemorySet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Clear(\n\t   Clear_In        *in             // IN: input
      parameter list\n\t   )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - in
    argTypes:
    - ClearControl_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 491
    functionName: TPM2_ClearControl
    functionSourceFile: /src/libtpms/src/tpm2/HierarchyCommands.c
    functionUses: 0
    functionsReached:
    - NV_SYNC_PERSISTENT
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ClearControl(\n\t\t  ClearControl_In     *in             //
      IN: input parameter list\n\t\t  )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MemoryRemoveTrailingZeros
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:508,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:515,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:519,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:528,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/HierarchyCommands.c:531,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - in
    argTypes:
    - HierarchyChangeAuth_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 535
    functionName: TPM2_HierarchyChangeAuth
    functionSourceFile: /src/libtpms/src/tpm2/HierarchyCommands.c
    functionUses: 0
    functionsReached:
    - FAIL
    - NV_SYNC_PERSISTENT
    - MemoryRemoveTrailingZeros
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_HierarchyChangeAuth(\n\t\t\t HierarchyChangeAuth_In  *in
      \            // IN: input parameter list\n\t\t\t )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/AuditCommands.c:88,1
    - Dst: CommandAuditSet
      Src: /src/libtpms/src/tpm2/AuditCommands.c:97,1
    - Dst: CommandAuditClear
      Src: /src/libtpms/src/tpm2/AuditCommands.c:102,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/AuditCommands.c:107,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - in
    argTypes:
    - SetCommandCodeAuditStatus_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 64
    functionDepth: 5
    functionLinenumber: 64
    functionLinenumberEnd: 110
    functionName: TPM2_SetCommandCodeAuditStatus
    functionSourceFile: /src/libtpms/src/tpm2/AuditCommands.c
    functionUses: 0
    functionsReached:
    - CommandAuditClear
    - NV_SYNC_PERSISTENT
    - CommandAuditSet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_SetCommandCodeAuditStatus(\n\t\t\t       SetCommandCodeAuditStatus_In
      \   *in\t// IN: input parameter list\n\t\t\t       )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/NVCommands.c:89,1
    - Dst: NvDefineSpace
      Src: /src/libtpms/src/tpm2/NVCommands.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - NV_DefineSpace_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 100
    functionName: TPM2_NV_DefineSpace
    functionSourceFile: /src/libtpms/src/tpm2/NVCommands.c
    functionUses: 0
    functionsReached:
    - HandleGetType
    - NvDefineSpace
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_NV_DefineSpace(\n\t\t    NV_DefineSpace_In   *in             //
      IN: input parameter list\n\t\t    )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/NVCommands.c:112,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NVCommands.c:115,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NVCommands.c:120,1
    - Dst: NvDeleteIndex
      Src: /src/libtpms/src/tpm2/NVCommands.c:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - NV_UndefineSpace_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 5
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: TPM2_NV_UndefineSpace
    functionSourceFile: /src/libtpms/src/tpm2/NVCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - NvGetIndexInfo
    - NvDeleteIndex
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_NV_UndefineSpace(\n\t\t      NV_UndefineSpace_In     *in
      \            // IN: input parameter list\n\t\t      )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/NVCommands.c:138,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NVCommands.c:141,1
    - Dst: NvDeleteIndex
      Src: /src/libtpms/src/tpm2/NVCommands.c:145,1
    - Dst: SessionRemoveAssociationToHandle
      Src: /src/libtpms/src/tpm2/NVCommands.c:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - NV_UndefineSpaceSpecial_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 131
    functionDepth: 5
    functionLinenumber: 131
    functionLinenumberEnd: 152
    functionName: TPM2_NV_UndefineSpaceSpecial
    functionSourceFile: /src/libtpms/src/tpm2/NVCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - NvGetIndexInfo
    - SessionRemoveAssociationToHandle
    - NvDeleteIndex
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_NV_UndefineSpaceSpecial(\n\t\t\t     NV_UndefineSpaceSpecial_In
      \ *in             // IN: input parameter list\n\t\t\t     )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/NVCommands.c:163,1
    - Dst: NvGetIndexName
      Src: /src/libtpms/src/tpm2/NVCommands.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - NV_ReadPublic_In*
    - NV_ReadPublic_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 170
    functionName: TPM2_NV_ReadPublic
    functionSourceFile: /src/libtpms/src/tpm2/NVCommands.c
    functionUses: 0
    functionsReached:
    - NvGetIndexInfo
    - NvGetIndexName
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_NV_ReadPublic(\n\t\t   NV_ReadPublic_In    *in,            //
      IN: input parameter list\n\t\t   NV_ReadPublic_Out   *out            // OUT:
      output parameter list\n\t\t   )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/NVCommands.c:180,1
    - Dst: NvWriteAccessChecks
      Src: /src/libtpms/src/tpm2/NVCommands.c:186,1
    - Dst: IsNvCounterIndex
      Src: /src/libtpms/src/tpm2/NVCommands.c:193,1
    - Dst: IsNvBitsIndex
      Src: /src/libtpms/src/tpm2/NVCommands.c:194,1
    - Dst: IsNvExtendIndex
      Src: /src/libtpms/src/tpm2/NVCommands.c:195,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NVCommands.c:207,1
    - Dst: NvWriteIndexData
      Src: /src/libtpms/src/tpm2/NVCommands.c:214,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - in
    argTypes:
    - NV_Write_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 175
    functionDepth: 4
    functionLinenumber: 175
    functionLinenumberEnd: 216
    functionName: TPM2_NV_Write
    functionSourceFile: /src/libtpms/src/tpm2/NVCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - NvWriteAccessChecks
    - IsNvCounterIndex
    - IsNvBitsIndex
    - IsNvExtendIndex
    - NvGetIndexInfo
    - NvWriteIndexData
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_NV_Write(\n\t      NV_Write_In     *in             //
      IN: input parameter list\n\t      )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/NVCommands.c:228,1
    - Dst: NvWriteAccessChecks
      Src: /src/libtpms/src/tpm2/NVCommands.c:233,1
    - Dst: IsNvCounterIndex
      Src: /src/libtpms/src/tpm2/NVCommands.c:239,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NVCommands.c:243,1
    - Dst: NvReadMaxCount
      Src: /src/libtpms/src/tpm2/NVCommands.c:244,1
    - Dst: NvGetUINT64Data
      Src: /src/libtpms/src/tpm2/NVCommands.c:247,1
    - Dst: NvWriteUINT64Data
      Src: /src/libtpms/src/tpm2/NVCommands.c:253,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NVCommands.c:259,1
    - Dst: SET_NV_UPDATE
      Src: /src/libtpms/src/tpm2/NVCommands.c:263,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - in
    argTypes:
    - NV_Increment_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 267
    functionName: TPM2_NV_Increment
    functionSourceFile: /src/libtpms/src/tpm2/NVCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - NvWriteAccessChecks
    - IsNvCounterIndex
    - SET_NV_UPDATE
    - NvGetUINT64Data
    - NvWriteUINT64Data
    - NvReadMaxCount
    - NvGetIndexInfo
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_NV_Increment(\n\t\t  NV_Increment_In     *in             //
      IN: input parameter list\n\t\t  )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/NVCommands.c:279,1
    - Dst: NvWriteAccessChecks
      Src: /src/libtpms/src/tpm2/NVCommands.c:286,1
    - Dst: IsNvExtendIndex
      Src: /src/libtpms/src/tpm2/NVCommands.c:292,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/NVCommands.c:296,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NVCommands.c:297,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NVCommands.c:298,1
    - Dst: NvGetIndexData
      Src: /src/libtpms/src/tpm2/NVCommands.c:300,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/NVCommands.c:304,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/NVCommands.c:307,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/NVCommands.c:309,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/NVCommands.c:311,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/NVCommands.c:313,1
    - Dst: NvWriteIndexData
      Src: /src/libtpms/src/tpm2/NVCommands.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - in
    argTypes:
    - NV_Extend_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 317
    functionName: TPM2_NV_Extend
    functionSourceFile: /src/libtpms/src/tpm2/NVCommands.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - NvWriteAccessChecks
    - IS_ATTRIBUTE
    - CryptDigestUpdate2B
    - NvGetIndexData
    - pAssert
    - IsNvExtendIndex
    - CryptHashStart
    - CryptHashEnd2B
    - MemorySet
    - NvGetIndexInfo
    - NvWriteIndexData
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_NV_Extend(\n\t       NV_Extend_In    *in             //
      IN: input parameter list\n\t       )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/NVCommands.c:329,1
    - Dst: NvWriteAccessChecks
      Src: /src/libtpms/src/tpm2/NVCommands.c:335,1
    - Dst: IsNvBitsIndex
      Src: /src/libtpms/src/tpm2/NVCommands.c:341,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NVCommands.c:344,1
    - Dst: NvGetUINT64Data
      Src: /src/libtpms/src/tpm2/NVCommands.c:348,1
    - Dst: NvWriteUINT64Data
      Src: /src/libtpms/src/tpm2/NVCommands.c:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - in
    argTypes:
    - NV_SetBits_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 322
    functionDepth: 5
    functionLinenumber: 322
    functionLinenumberEnd: 353
    functionName: TPM2_NV_SetBits
    functionSourceFile: /src/libtpms/src/tpm2/NVCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - NvWriteAccessChecks
    - IsNvBitsIndex
    - NvGetUINT64Data
    - NvWriteUINT64Data
    - NvGetIndexInfo
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_NV_SetBits(\n\t\tNV_SetBits_In   *in             // IN:
      input parameter list\n\t\t)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/NVCommands.c:365,1
    - Dst: NvWriteAccessChecks
      Src: /src/libtpms/src/tpm2/NVCommands.c:370,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NVCommands.c:381,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NVCommands.c:382,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NVCommands.c:388,1
    - Dst: NvWriteIndexAttributes
      Src: /src/libtpms/src/tpm2/NVCommands.c:390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - in
    argTypes:
    - NV_WriteLock_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 358
    functionDepth: 4
    functionLinenumber: 358
    functionLinenumberEnd: 392
    functionName: TPM2_NV_WriteLock
    functionSourceFile: /src/libtpms/src/tpm2/NVCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - NvWriteAccessChecks
    - SET_ATTRIBUTE
    - NvWriteIndexAttributes
    - NvGetIndexInfo
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_NV_WriteLock(\n\t\t  NV_WriteLock_In     *in             //
      IN: input parameter list\n\t\t  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/NVCommands.c:403,1
    - Dst: NvSetGlobalLock
      Src: /src/libtpms/src/tpm2/NVCommands.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - NV_GlobalWriteLock_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 397
    functionDepth: 4
    functionLinenumber: 397
    functionLinenumberEnd: 407
    functionName: TPM2_NV_GlobalWriteLock
    functionSourceFile: /src/libtpms/src/tpm2/NVCommands.c
    functionUses: 0
    functionsReached:
    - NvSetGlobalLock
    - NOT_REFERENCED
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_NV_GlobalWriteLock(\n\t\t\tNV_GlobalWriteLock_In   *in
      \            // IN: input parameter list\n\t\t\t)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/NVCommands.c:426,1
    - Dst: NvReadAccessChecks
      Src: /src/libtpms/src/tpm2/NVCommands.c:431,1
    - Dst: NvGetIndexData
      Src: /src/libtpms/src/tpm2/NVCommands.c:448,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - NV_Read_In*
    - NV_Read_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 450
    functionName: TPM2_NV_Read
    functionSourceFile: /src/libtpms/src/tpm2/NVCommands.c
    functionUses: 0
    functionsReached:
    - NvReadAccessChecks
    - NvGetIndexInfo
    - NvGetIndexData
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_NV_Read(\n\t     NV_Read_In      *in,            // IN:
      input parameter list\n\t     NV_Read_Out     *out            // OUT: output
      parameter list\n\t     )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/NVCommands.c:464,1
    - Dst: NvReadAccessChecks
      Src: /src/libtpms/src/tpm2/NVCommands.c:469,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NVCommands.c:480,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NVCommands.c:484,1
    - Dst: NvWriteIndexAttributes
      Src: /src/libtpms/src/tpm2/NVCommands.c:486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - in
    argTypes:
    - NV_ReadLock_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 455
    functionDepth: 4
    functionLinenumber: 455
    functionLinenumberEnd: 489
    functionName: TPM2_NV_ReadLock
    functionSourceFile: /src/libtpms/src/tpm2/NVCommands.c
    functionUses: 0
    functionsReached:
    - NvReadAccessChecks
    - IS_ATTRIBUTE
    - SET_ATTRIBUTE
    - NvWriteIndexAttributes
    - NvGetIndexInfo
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_NV_ReadLock(\n\t\t NV_ReadLock_In  *in             //
      IN: input parameter list\n\t\t )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/NVCommands.c:500,1
    - Dst: MemoryRemoveTrailingZeros
      Src: /src/libtpms/src/tpm2/NVCommands.c:504,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/NVCommands.c:505,1
    - Dst: NvWriteIndexAuth
      Src: /src/libtpms/src/tpm2/NVCommands.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - in
    argTypes:
    - NV_ChangeAuth_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 510
    functionName: TPM2_NV_ChangeAuth
    functionSourceFile: /src/libtpms/src/tpm2/NVCommands.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - NvGetIndexInfo
    - NvWriteIndexAuth
    - MemoryRemoveTrailingZeros
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_NV_ChangeAuth(\n\t\t   NV_ChangeAuth_In    *in             //
      IN: input parameter list\n\t\t   )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/NVCommands.c:524,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/NVCommands.c:526,1
    - Dst: IsSigningObject
      Src: /src/libtpms/src/tpm2/NVCommands.c:528,1
    - Dst: CryptSelectSignScheme
      Src: /src/libtpms/src/tpm2/NVCommands.c:530,1
    - Dst: NvReadAccessChecks
      Src: /src/libtpms/src/tpm2/NVCommands.c:534,1
    - Dst: FillInAttestInfo
      Src: /src/libtpms/src/tpm2/NVCommands.c:552,1
    - Dst: NvGetIndexName
      Src: /src/libtpms/src/tpm2/NVCommands.c:556,1
    - Dst: NvGetIndexData
      Src: /src/libtpms/src/tpm2/NVCommands.c:572,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/NVCommands.c:583,1
    - Dst: NvHashIndexData
      Src: /src/libtpms/src/tpm2/NVCommands.c:584,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/NVCommands.c:586,1
    - Dst: SignAttestInfo
      Src: /src/libtpms/src/tpm2/NVCommands.c:590,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - NV_Certify_In*
    - NV_Certify_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 516
    functionDepth: 4
    functionLinenumber: 516
    functionLinenumberEnd: 592
    functionName: TPM2_NV_Certify
    functionSourceFile: /src/libtpms/src/tpm2/NVCommands.c
    functionUses: 0
    functionsReached:
    - NvReadAccessChecks
    - NvGetIndexName
    - FillInAttestInfo
    - IsSigningObject
    - NvGetIndexData
    - SignAttestInfo
    - HandleToObject
    - CryptHashStart
    - CryptHashEnd2B
    - CryptSelectSignScheme
    - NvGetIndexInfo
    - NvHashIndexData
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_NV_Certify(\n\t\tNV_Certify_In   *in,            // IN:
      input parameter list\n\t\tNV_Certify_Out  *out            // OUT: output parameter
      list\n\t\t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/NVCommands.c:611,1
    - Dst: NvPublic2FromNvPublic
      Src: /src/libtpms/src/tpm2/NVCommands.c:618,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/NVCommands.c:621,1
    - Dst: NvGetIndexName
      Src: /src/libtpms/src/tpm2/NVCommands.c:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - NV_ReadPublic2_In*
    - NV_ReadPublic2_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 603
    functionDepth: 3
    functionLinenumber: 603
    functionLinenumberEnd: 628
    functionName: TPM2_NV_ReadPublic2
    functionSourceFile: /src/libtpms/src/tpm2/NVCommands.c
    functionUses: 0
    functionsReached:
    - NvGetIndexInfo
    - NvGetIndexName
    - NvPublic2FromNvPublic
    - RcSafeAddToResult
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_NV_ReadPublic2(NV_ReadPublic2_In*  in,  // IN: input parameter
      list\n\t\t    NV_ReadPublic2_Out* out  // OUT: output parameter list\n\t\t    )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPMA_NV_EXP_TO_UINT64
      Src: /src/libtpms/src/tpm2/NVCommands.c:673,1
    - Dst: NvPublicFromNvPublic2
      Src: /src/libtpms/src/tpm2/NVCommands.c:686,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/NVCommands.c:689,1
    - Dst: NvDefineSpace
      Src: /src/libtpms/src/tpm2/NVCommands.c:692,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - in
    argTypes:
    - NV_DefineSpace2_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 698
    functionName: TPM2_NV_DefineSpace2
    functionSourceFile: /src/libtpms/src/tpm2/NVCommands.c
    functionUses: 0
    functionsReached:
    - TPMA_NV_EXP_TO_UINT64
    - NvDefineSpace
    - NvPublicFromNvPublic2
    - RcSafeAddToResult
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_NV_DefineSpace2(NV_DefineSpace2_In* in  // IN: input parameter
      list\n\t\t     )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vector
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: TEST_DEFAULT_TEST_HASH
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_DEFAULT_TEST_HASH(vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - alg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: CLEAR_BOTH
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_BOTH(alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - alg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: SET_BOTH
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_BOTH(alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - alg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: TEST_BOTH
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_BOTH(alg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:126,1
    - Dst: FOR_EACH_HASH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:133,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:136,1
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:139,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:146,1
    - Dst: CryptHmacStart
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:147,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:148,1
    - Dst: CryptHashGetBlockSize
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:149,1
    - Dst: CryptHmacEnd
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:152,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - hashAlg
    - toTest
    argTypes:
    - TPM_ALG_ID
    - ALGORITHM_VECTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 157
    functionName: TestHash
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - CLEAR_BOTH
    - pAssert
    - CryptHashGetBlockSize
    - CryptHmacEnd
    - memcmp
    - CryptDigestUpdate
    - FOR_EACH_HASH
    - FAIL
    - CryptHmacStart
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TestHash(TPM_ALG_ID hashAlg, ALGORITHM_VECTOR* toTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HASH
    - ','
    - hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: HASH_CASE_FOR_TEST
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_CASE_FOR_TEST(HASH, hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - mode
    - size
    - iv
    argTypes:
    - TPM_ALG_ID
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 220
    functionName: MakeIv
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UINT32
    signature: "UINT32 MakeIv(TPM_ALG_ID mode,  // IN: symmetric mode\n                     UINT32
      \    size,  // IN: block size of the algorithm\n                     BYTE*      iv
      \    // OUT: IV to fill in\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmKeySizeCheckEnabled
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:236,1
    - Dst: MakeIv
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:245,1
    - Dst: CryptSymmetricEncrypt
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:248,1
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:257,1
    - Dst: MakeIv
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:261,1
    - Dst: CryptSymmetricDecrypt
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:262,1
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - test
    - mode
    argTypes:
    - SYMMETRIC_TEST_VECTOR*
    - TPM_ALG_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 273
    functionName: TestSymmetricAlgorithm
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached:
    - CryptSymmetricEncrypt
    - RuntimeAlgorithmKeySizeCheckEnabled
    - MakeIv
    - MemoryEqual
    - CryptSymmetricDecrypt
    linkageType: ''
    returnType: void
    signature: "void TestSymmetricAlgorithm(const SYMMETRIC_TEST_VECTOR* test,  //\n
      \                                  TPM_ALG_ID                   mode   //\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TEST_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:284,1
    - Dst: TEST_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - toTest
    argTypes:
    - ALGORITHM_VECTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: AllSymsAreDone
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached:
    - TEST_BOTH
    linkageType: ''
    returnType: BOOL
    signature: BOOL AllSymsAreDone(ALGORITHM_VECTOR* toTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - toTest
    argTypes:
    - ALGORITHM_VECTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 300
    functionName: AllModesAreDone
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached:
    - TEST_BOTH
    linkageType: ''
    returnType: BOOL
    signature: BOOL AllModesAreDone(ALGORITHM_VECTOR* toTest)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:310,1
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:315,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:324,1
    - Dst: TestSymmetricAlgorithm
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:325,1
    - Dst: AllSymsAreDone
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:330,1
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:334,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:347,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:347,1
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:349,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:355,1
    - Dst: TestSymmetricAlgorithm
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:356,1
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:359,1
    - Dst: AllModesAreDone
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:362,1
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:364,1
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:365,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:369,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 37
    argCount: 2
    argNames:
    - alg
    - toTest
    argTypes:
    - TPM_ALG_ID
    - ALGORITHM_VECTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 371
    functionName: TestSymmetric
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached:
    - CLEAR_BOTH
    - pAssert
    - AllModesAreDone
    - TestSymmetricAlgorithm
    - TEST_BIT
    - AllSymsAreDone
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TestSymmetric(TPM_ALG_ID alg, ALGORITHM_VECTOR* toTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:401,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - testObject
    argTypes:
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 411
    functionName: RsaKeyInitialize
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached:
    - MemoryCopy2B
    linkageType: ''
    returnType: void
    signature: void RsaKeyInitialize(OBJECT* testObject)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: RsaKeyInitialize
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:429,1
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:432,1
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:433,1
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:436,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:440,1
    - Dst: CryptRsaEncrypt
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:443,1
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:446,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:448,1
    - Dst: CryptRsaDecrypt
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:450,1
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:453,1
    - Dst: TEST_DEFAULT_TEST_HASH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:472,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:484,1
    - Dst: CryptRsaEncrypt
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:489,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:492,1
    - Dst: CryptRsaDecrypt
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:495,1
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:500,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:504,1
    - Dst: CryptRsaDecrypt
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:506,1
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:510,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - scheme
    - toTest
    argTypes:
    - TPM_ALG_ID
    - ALGORITHM_VECTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 515
    functionName: TestRsaEncryptDecrypt
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached:
    - CLEAR_BOTH
    - TEST_DEFAULT_TEST_HASH
    - memcpy
    - RsaKeyInitialize
    - CryptRsaDecrypt
    - MemoryCopy2B
    - CryptRsaEncrypt
    - MemoryEqual
    - RuntimeProfileRequiresAttributeFlags
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TestRsaEncryptDecrypt(TPM_ALG_ID        scheme,  // IN: the
      scheme\n                                    ALGORITHM_VECTOR* toTest   //\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:538,1
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:539,1
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:540,1
    - Dst: RsaKeyInitialize
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:542,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:543,1
    - Dst: CryptRsaSign
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:563,1
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:569,1
    - Dst: CryptRsaValidateSignature
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:576,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:582,1
    - Dst: CryptRsaValidateSignature
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:586,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - scheme
    - toTest
    argTypes:
    - TPM_ALG_ID
    - ALGORITHM_VECTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 590
    functionName: TestRsaSignAndVerify
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached:
    - CLEAR_BOTH
    - memcpy
    - RsaKeyInitialize
    - CryptRsaSign
    - MemoryCopy2B
    - CryptRsaValidateSignature
    - MemoryEqual
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TestRsaSignAndVerify(TPM_ALG_ID scheme, ALGORITHM_VECTOR* toTest)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:608,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:609,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:610,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:611,1
    - Dst: TestRsaEncryptDecrypt
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:614,1
    - Dst: TestRsaEncryptDecrypt
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:620,1
    - Dst: TestRsaSignAndVerify
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:624,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - alg
    - toTest
    argTypes:
    - TPM_ALG_ID
    - ALGORITHM_VECTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 595
    functionDepth: 3
    functionLinenumber: 595
    functionLinenumberEnd: 630
    functionName: TestRsa
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached:
    - TestRsaEncryptDecrypt
    - TestRsaSignAndVerify
    - TEST_BIT
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TestRsa(TPM_ALG_ID alg, ALGORITHM_VECTOR* toTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - TPM2B_ECC_PARAMETER*
    - TPM2B_EC_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 645
    functionName: LoadEccParameter
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached:
    - MemoryCopy2B
    linkageType: ''
    returnType: void
    signature: "void LoadEccParameter(TPM2B_ECC_PARAMETER* to,   // target\n                             const
      TPM2B_EC_TEST* from  // source\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:652,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - point
    - x
    - y
    argTypes:
    - TPMS_ECC_POINT*
    - TPM2B_EC_TEST*
    - TPM2B_EC_TEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 654
    functionName: LoadEccPoint
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached:
    - MemoryCopy2B
    linkageType: ''
    returnType: void
    signature: "void LoadEccPoint(TPMS_ECC_POINT*      point,  // target\n                         const
      TPM2B_EC_TEST* x,      // source\n                         const TPM2B_EC_TEST*
      y)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:667,1
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:668,1
    - Dst: LoadEccParameter
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:669,1
    - Dst: LoadEccPoint
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:670,1
    - Dst: CryptEccPointMultiply
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:671,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:673,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - scheme
    - toTest
    argTypes:
    - TPM_ALG_ID
    - ALGORITHM_VECTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 677
    functionName: TestECDH
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached:
    - NOT_REFERENCED
    - CLEAR_BOTH
    - LoadEccParameter
    - CryptEccPointMultiply
    - MemoryEqual2B
    - LoadEccPoint
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TestECDH(TPM_ALG_ID        scheme,  // IN: for consistency\n
      \                      ALGORITHM_VECTOR* toTest  // IN/OUT: modified after test
      is run\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:692,1
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:693,1
    - Dst: LoadEccParameter
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:699,1
    - Dst: LoadEccParameter
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:700,1
    - Dst: LoadEccParameter
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:703,1
    - Dst: LoadEccParameter
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:705,1
    - Dst: TEST_DEFAULT_TEST_HASH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:715,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:720,1
    - Dst: LoadEccPoint
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:723,1
    - Dst: CryptEccValidateSignature
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:728,1
    - Dst: CryptEccSign
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:737,1
    - Dst: CryptEccValidateSignature
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:744,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - scheme
    - toTest
    argTypes:
    - TPM_ALG_ID
    - ALGORITHM_VECTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 751
    functionName: TestEccSignAndVerify
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached:
    - CLEAR_BOTH
    - LoadEccParameter
    - TEST_DEFAULT_TEST_HASH
    - LoadEccPoint
    - CryptEccValidateSignature
    - MemoryCopy2B
    - CryptEccSign
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TestEccSignAndVerify(TPM_ALG_ID scheme, ALGORITHM_VECTOR* toTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:759,1
    - Dst: CryptKDFa
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:761,1
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - toTest
    argTypes:
    - ALGORITHM_VECTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 775
    functionName: TestKDFa
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached:
    - CryptKDFa
    - CLEAR_BOTH
    - MemoryEqual
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TestKDFa(ALGORITHM_VECTOR* toTest)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:781,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:791,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:792,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:793,1
    - Dst: TestECDH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:795,1
    - Dst: TestEccSignAndVerify
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:801,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - alg
    - toTest
    argTypes:
    - TPM_ALG_ID
    - ALGORITHM_VECTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 778
    functionDepth: 3
    functionLinenumber: 778
    functionLinenumberEnd: 808
    functionName: TestEcc
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached:
    - TestECDH
    - NOT_REFERENCED
    - TestEccSignAndVerify
    - TEST_BIT
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TestEcc(TPM_ALG_ID alg, ALGORITHM_VECTOR* toTest)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:859,1
    - Dst: CLEAR_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:861,1
    - Dst: TestSMAC
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:877,1
    - Dst: TestSymmetric
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:902,1
    - Dst: TestSymmetric
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:917,1
    - Dst: CLEAR_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:923,1
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:931,1
    - Dst: TestHash
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:934,1
    - Dst: SET_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:938,1
    - Dst: FOR_EACH_HASH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:943,1
    - Dst: TestHash
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:946,1
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:951,1
    - Dst: TestRsa
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:953,1
    - Dst: SET_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:955,1
    - Dst: TestRsa
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:963,1
    - Dst: TestKDFa
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:969,1
    - Dst: CLEAR_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:980,1
    - Dst: TestEcc
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:982,1
    - Dst: SET_BOTH
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:984,1
    - Dst: TestEcc
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:991,1
    - Dst: CLEAR_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmTests.c:995,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 78
    argCount: 2
    argNames:
    - alg
    - toTest
    argTypes:
    - TPM_ALG_ID
    - ALGORITHM_VECTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 832
    functionDepth: 5
    functionLinenumber: 832
    functionLinenumberEnd: 1002
    functionName: TestAlgorithm
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached:
    - TestEcc
    - CLEAR_BOTH
    - CLEAR_BIT
    - TestSymmetric
    - TestKDFa
    - TestRsa
    - TestSMAC
    - FOR_EACH_HASH
    - SET_BOTH
    - TestHash
    - TEST_BIT
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT TestAlgorithm(TPM_ALG_ID alg, ALGORITHM_VECTOR* toTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HASH
    - ','
    - hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 943
    functionName: HASH_CASE_TEST
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmTests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_CASE_TEST(HASH, hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - Vendor_TCG_Test_In*
    - Vendor_TCG_Test_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: TPM2_Vendor_TCG_Test
    functionSourceFile: /src/libtpms/src/tpm2/Vendor_TCG_Test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Vendor_TCG_Test(Vendor_TCG_Test_In*  in,  // IN: input
      parameter list\n                     Vendor_TCG_Test_Out* out  // OUT: output
      parameter list\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptSelfTest
      Src: /src/libtpms/src/tpm2/TestingCommands.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - SelfTest_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: TPM2_SelfTest
    functionSourceFile: /src/libtpms/src/tpm2/TestingCommands.c
    functionUses: 0
    functionsReached:
    - CryptSelfTest
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_SelfTest(\n\t      SelfTest_In     *in             //
      IN: input parameter list\n\t      )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptIncrementalSelfTest
      Src: /src/libtpms/src/tpm2/TestingCommands.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - IncrementalSelfTest_In*
    - IncrementalSelfTest_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: TPM2_IncrementalSelfTest
    functionSourceFile: /src/libtpms/src/tpm2/TestingCommands.c
    functionUses: 0
    functionsReached:
    - CryptIncrementalSelfTest
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_IncrementalSelfTest(\n\t\t\t IncrementalSelfTest_In      *in,
      \           // IN: input parameter list\n\t\t\t IncrementalSelfTest_Out     *out
      \           // OUT: output parameter list\n\t\t\t )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetTestResult
      Src: /src/libtpms/src/tpm2/TestingCommands.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - GetTestResult_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: TPM2_GetTestResult
    functionSourceFile: /src/libtpms/src/tpm2/TestingCommands.c
    functionUses: 0
    functionsReached:
    - CryptGetTestResult
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_GetTestResult(\n\t\t   GetTestResult_Out   *out            //
      OUT: output parameter list\n\t\t   )"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/EncryptDecrypt_spt.c:96,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/EncryptDecrypt_spt.c:103,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/EncryptDecrypt_spt.c:106,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/EncryptDecrypt_spt.c:110,1
    - Dst: CryptSymModeIsValid
      Src: /src/libtpms/src/tpm2/EncryptDecrypt_spt.c:115,1
    - Dst: CryptGetSymmetricBlockSize
      Src: /src/libtpms/src/tpm2/EncryptDecrypt_spt.c:137,1
    - Dst: CryptSymmetricDecrypt
      Src: /src/libtpms/src/tpm2/EncryptDecrypt_spt.c:166,1
    - Dst: CryptSymmetricEncrypt
      Src: /src/libtpms/src/tpm2/EncryptDecrypt_spt.c:178,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 6
    argNames:
    - keyHandleIn
    - decryptIn
    - modeIn
    - ivIn
    - inData
    - out
    argTypes:
    - TPMI_DH_OBJECT
    - TPMI_YES_NO
    - TPMI_ALG_SYM_MODE
    - TPM2B_IV*
    - TPM2B_MAX_BUFFER*
    - EncryptDecrypt_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 188
    functionName: EncryptDecryptShared
    functionSourceFile: /src/libtpms/src/tpm2/EncryptDecrypt_spt.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - CryptSymModeIsValid
    - CryptGetSymmetricBlockSize
    - CryptSymmetricEncrypt
    - HandleToObject
    - CryptSymmetricDecrypt
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC EncryptDecryptShared(TPMI_DH_OBJECT      keyHandleIn,\n                     TPMI_YES_NO
      \        decryptIn,\n                     TPMI_ALG_SYM_MODE   modeIn,\n                     TPM2B_IV*
      \          ivIn,\n                     TPM2B_MAX_BUFFER*   inData,\n                     EncryptDecrypt_Out*
      out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/Unique.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - which
    - bSize
    - b
    argTypes:
    - uint32_t
    - uint32_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 106
    functionName: _plat__GetUnique
    functionSourceFile: /src/libtpms/src/tpm2/Unique.c
    functionUses: 0
    functionsReached:
    - MemoryCopy
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _plat__GetUnique(uint32_t which,  // which vendor value
      to return?\n                                     uint32_t bSize,  // size of
      the buffer\n                                     unsigned char* b  // output
      buffer\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/HashCommands.c:76,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/HashCommands.c:82,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/HashCommands.c:85,1
    - Dst: ObjectCreateHMACSequence
      Src: /src/libtpms/src/tpm2/HashCommands.c:106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - HMAC_Start_In*
    - HMAC_Start_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 65
    functionDepth: 5
    functionLinenumber: 65
    functionLinenumberEnd: 110
    functionName: TPM2_HMAC_Start
    functionSourceFile: /src/libtpms/src/tpm2/HashCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - ObjectCreateHMACSequence
    - HandleToObject
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_HMAC_Start(\n\t\tHMAC_Start_In   *in,            // IN:
      input parameter list\n\t\tHMAC_Start_Out  *out            // OUT: output parameter
      list\n\t\t)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/HashCommands.c:132,1
    - Dst: CryptSelectMac
      Src: /src/libtpms/src/tpm2/HashCommands.c:135,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/HashCommands.c:143,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/HashCommands.c:145,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/HashCommands.c:148,1
    - Dst: ObjectCreateHMACSequence
      Src: /src/libtpms/src/tpm2/HashCommands.c:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - MAC_Start_In*
    - MAC_Start_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 121
    functionDepth: 5
    functionLinenumber: 121
    functionLinenumberEnd: 157
    functionName: TPM2_MAC_Start
    functionSourceFile: /src/libtpms/src/tpm2/HashCommands.c
    functionUses: 0
    functionsReached:
    - CryptSelectMac
    - IS_ATTRIBUTE
    - RcSafeAddToResult
    - HandleToObject
    - ObjectCreateHMACSequence
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_MAC_Start(\n\t       MAC_Start_In   *in,            //
      IN: input parameter list\n\t       MAC_Start_Out  *out            // OUT: output
      parameter list\n\t       )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ObjectCreateEventSequence
      Src: /src/libtpms/src/tpm2/HashCommands.c:172,1
    - Dst: ObjectCreateHashSequence
      Src: /src/libtpms/src/tpm2/HashCommands.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - HashSequenceStart_In*
    - HashSequenceStart_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 162
    functionDepth: 5
    functionLinenumber: 162
    functionLinenumberEnd: 176
    functionName: TPM2_HashSequenceStart
    functionSourceFile: /src/libtpms/src/tpm2/HashCommands.c
    functionUses: 0
    functionsReached:
    - ObjectCreateHashSequence
    - ObjectCreateEventSequence
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_HashSequenceStart(\n\t\t       HashSequenceStart_In    *in,
      \           // IN: input parameter list\n\t\t       HashSequenceStart_Out   *out
      \           // OUT: output parameter list\n\t\t       )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/HashCommands.c:190,1
    - Dst: ObjectIsSequence
      Src: /src/libtpms/src/tpm2/HashCommands.c:193,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/HashCommands.c:203,1
    - Dst: TicketIsSafe
      Src: /src/libtpms/src/tpm2/HashCommands.c:219,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/HashCommands.c:223,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/HashCommands.c:228,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - in
    argTypes:
    - SequenceUpdate_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 233
    functionName: TPM2_SequenceUpdate
    functionSourceFile: /src/libtpms/src/tpm2/HashCommands.c
    functionUses: 0
    functionsReached:
    - ObjectIsSequence
    - TicketIsSafe
    - HandleToObject
    - CryptDigestUpdate2B
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_SequenceUpdate(\n\t\t    SequenceUpdate_In   *in             //
      IN: input parameter list\n\t\t    )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/HashCommands.c:249,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/HashCommands.c:260,1
    - Dst: CryptHashEnd
      Src: /src/libtpms/src/tpm2/HashCommands.c:262,1
    - Dst: TicketIsSafe
      Src: /src/libtpms/src/tpm2/HashCommands.c:270,1
    - Dst: TicketComputeHashCheck
      Src: /src/libtpms/src/tpm2/HashCommands.c:290,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/HashCommands.c:297,1
    - Dst: CryptHmacEnd
      Src: /src/libtpms/src/tpm2/HashCommands.c:300,1
    - Dst: CryptMacEnd
      Src: /src/libtpms/src/tpm2/HashCommands.c:305,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - SequenceComplete_In*
    - SequenceComplete_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 318
    functionName: TPM2_SequenceComplete
    functionSourceFile: /src/libtpms/src/tpm2/HashCommands.c
    functionUses: 0
    functionsReached:
    - TicketIsSafe
    - CryptDigestUpdate2B
    - HandleToObject
    - CryptHmacEnd
    - CryptHashEnd
    - TicketComputeHashCheck
    - CryptMacEnd
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_SequenceComplete(\n\t\t      SequenceComplete_In     *in,
      \           // IN: input parameter list\n\t\t      SequenceComplete_Out    *out
      \           // OUT: output parameter list\n\t\t      )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/HashCommands.c:334,1
    - Dst: PCRIsExtendAllowed
      Src: /src/libtpms/src/tpm2/HashCommands.c:342,1
    - Dst: PCRIsStateSaved
      Src: /src/libtpms/src/tpm2/HashCommands.c:354,1
    - Dst: CryptHashGetAlgByIndex
      Src: /src/libtpms/src/tpm2/HashCommands.c:361,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/HashCommands.c:363,1
    - Dst: CryptHashEnd
      Src: /src/libtpms/src/tpm2/HashCommands.c:366,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/HashCommands.c:367,1
    - Dst: PCRExtend
      Src: /src/libtpms/src/tpm2/HashCommands.c:371,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/HashCommands.c:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - EventSequenceComplete_In*
    - EventSequenceComplete_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 323
    functionDepth: 5
    functionLinenumber: 323
    functionLinenumberEnd: 380
    functionName: TPM2_EventSequenceComplete
    functionSourceFile: /src/libtpms/src/tpm2/HashCommands.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - CryptHashGetAlgByIndex
    - CryptDigestUpdate2B
    - PCRExtend
    - HandleToObject
    - PCRIsStateSaved
    - CryptHashEnd
    - PCRIsExtendAllowed
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_EventSequenceComplete(\n\t\t\t   EventSequenceComplete_In
      \   *in,            // IN: input parameter list\n\t\t\t   EventSequenceComplete_Out
      \  *out            // OUT: output parameter list\n\t\t\t   )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 94
    functionName: TPM2B_TYPE
    functionSourceFile: /src/libtpms/src/tpm2/TPMB.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM2B_TYPE(name, bytes)
  - 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: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: TPM2B_INIT
    functionSourceFile: /src/libtpms/src/tpm2/TPMB.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM2B_INIT(TYPE, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: TPM2B_BYTE_VALUE
    functionSourceFile: /src/libtpms/src/tpm2/TPMB.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM2B_BYTE_VALUE(bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnSupportLibInit
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: ExtMath_LibInit
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 1
    functionsReached:
    - BnSupportLibInit
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT ExtMath_LibInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnMathLibraryCompatibilityCheck
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: ExtMath_Debug_CompatibilityCheck
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnMathLibraryCompatibilityCheck
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT ExtMath_Debug_CompatibilityCheck(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnInit
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:98,1
    - Dst: BN_STRUCT_ALLOCATION
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - var
    - bitCount
    argTypes:
    - Crypt_Int*
    - NUMBYTES
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: ExtMath_Initialize_Int
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BN_STRUCT_ALLOCATION
    - BnInit
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT * ExtMath_Initialize_Int(Crypt_Int* var, NUMBYTES bitCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnFromBytes
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buffer
    - input
    - byteCount
    argTypes:
    - Crypt_Int*
    - BYTE*
    - NUMBYTES
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: ExtMath_IntFromBytes
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 3
    functionsReached:
    - BnFromBytes
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT * ExtMath_IntFromBytes(\n    Crypt_Int* buffer, const BYTE*
      input, NUMBYTES byteCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnToBytes
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - value
    - output
    - pByteCount
    argTypes:
    - Crypt_Int*
    - BYTE*
    - NUMBYTES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: ExtMath_IntToBytes
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 2
    functionsReached:
    - BnToBytes
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtMath_IntToBytes(\n    const Crypt_Int* value, BYTE*
      output, NUMBYTES* pByteCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnSetWord
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - n
    - w
    argTypes:
    - Crypt_Int*
    - crypt_uword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: ExtMath_SetWord
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 3
    functionsReached:
    - BnSetWord
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT * ExtMath_SetWord(Crypt_Int* n, crypt_uword_t w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnCopy
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: ExtMath_Copy
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 2
    functionsReached:
    - BnCopy
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT ExtMath_Copy(Crypt_Int* out, const Crypt_Int* in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnMult
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - result
    - multiplicand
    - multiplier
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: ExtMath_Multiply
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 1
    functionsReached:
    - BnMult
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtMath_Multiply(\n    Crypt_Int* result, const Crypt_Int*
      multiplicand, const Crypt_Int* multiplier)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnDiv
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - quotient
    - remainder
    - dividend
    - divisor
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: ExtMath_Divide
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 2
    functionsReached:
    - BnDiv
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtMath_Divide(Crypt_Int*       quotient,\n                               Crypt_Int*
      \      remainder,\n                               const Crypt_Int* dividend,\n
      \                              const Crypt_Int* divisor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnGcd
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gcd
    - number1
    - number2
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: ExtMath_GCD
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnGcd
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtMath_GCD(\n    Crypt_Int* gcd, const Crypt_Int* number1,
      const Crypt_Int* number2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnAdd
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - result
    - op1
    - op2
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: ExtMath_Add
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 2
    functionsReached:
    - BnAdd
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtMath_Add(\n    Crypt_Int* result, const Crypt_Int* op1,
      const Crypt_Int* op2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnAddWord
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - result
    - op
    - word
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - crypt_uword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: ExtMath_AddWord
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnAddWord
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtMath_AddWord(\n    Crypt_Int* result, const Crypt_Int*
      op, crypt_uword_t word)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnSub
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - result
    - op1
    - op2
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: ExtMath_Subtract
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 1
    functionsReached:
    - BnSub
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtMath_Subtract(\n    Crypt_Int* result, const Crypt_Int*
      op1, const Crypt_Int* op2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnSubWord
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - result
    - op
    - word
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - crypt_uword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: ExtMath_SubtractWord
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnSubWord
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtMath_SubtractWord(\n    Crypt_Int* result, const Crypt_Int*
      op, crypt_uword_t word)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExtMath_Divide
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - valueAndResult
    - modulus
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: ExtMath_Mod
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 3
    functionsReached:
    - ExtMath_Divide
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT ExtMath_Mod(Crypt_Int* valueAndResult, const Crypt_Int*
      modulus)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnModMult
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - result
    - op1
    - op2
    - modulus
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: ExtMath_ModMult
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 2
    functionsReached:
    - BnModMult
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtMath_ModMult(Crypt_Int*       result,\n                                const
      Crypt_Int* op1,\n                                const Crypt_Int* op2,\n                                const
      Crypt_Int* modulus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnModExp
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - result
    - number
    - exponent
    - modulus
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: ExtMath_ModExp
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 1
    functionsReached:
    - BnModExp
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtMath_ModExp(Crypt_Int*       result,\n                               const
      Crypt_Int* number,\n                               const Crypt_Int* exponent,\n
      \                              const Crypt_Int* modulus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnModInverse
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - result
    - number
    - modulus
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: ExtMath_ModInverse
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 2
    functionsReached:
    - BnModInverse
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtMath_ModInverse(\n    Crypt_Int* result, const Crypt_Int*
      number, const Crypt_Int* modulus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crypt_word_t::BnModWord
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - numerator
    - modulus
    argTypes:
    - Crypt_Int*
    - crypt_word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: crypt_word_t::ExtMath_ModWord
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - crypt_word_t::BnModWord
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT crypt_word_t ExtMath_ModWord(const Crypt_Int* numerator,\n
      \                                       crypt_word_t     modulus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnUnsignedCmp
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op1
    - op2
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 264
    functionName: ExtMath_UnsignedCmp
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 4
    functionsReached:
    - BnUnsignedCmp
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT ExtMath_UnsignedCmp(const Crypt_Int* op1, const Crypt_Int*
      op2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnUnsignedCmpWord
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - op1
    - word
    argTypes:
    - Crypt_Int*
    - crypt_uword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: ExtMath_UnsignedCmpWord
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnUnsignedCmpWord
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT ExtMath_UnsignedCmpWord(const Crypt_Int* op1, crypt_uword_t
      word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnEqualWord
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bn
    - word
    argTypes:
    - Crypt_Int*
    - crypt_uword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 280
    functionName: ExtMath_IsEqualWord
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnEqualWord
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT ExtMath_IsEqualWord(const Crypt_Int* bn, crypt_uword_t word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnEqualZero
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op1
    argTypes:
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: ExtMath_IsZero
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 3
    functionsReached:
    - BnEqualZero
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT ExtMath_IsZero(const Crypt_Int* op1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnMsb
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bn
    argTypes:
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: ExtMath_MostSigBitNum
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnMsb
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT ExtMath_MostSigBitNum(const Crypt_Int* bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MUST_BE
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:299,1
    - Dst: BnGetWord
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:301,1
    - Dst: BnGetWord
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bn
    argTypes:
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 306
    functionName: ExtMath_GetLeastSignificant32bits
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnGetWord
    - MUST_BE
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT ExtMath_GetLeastSignificant32bits(const Crypt_Int* bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnSizeInBits
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 3
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: ExtMath_SizeInBits
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 5
    functionsReached:
    - BnSizeInBits
    linkageType: ''
    returnType: LIB_EXPORT unsigned
    signature: LIB_EXPORT unsigned ExtMath_SizeInBits(const Crypt_Int* n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnSetBit
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bn
    - bitNum
    argTypes:
    - Crypt_Int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: ExtMath_SetBit
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnSetBit
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT ExtMath_SetBit(Crypt_Int* bn, unsigned int bitNum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnTestBit
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bn
    - bitNum
    argTypes:
    - Crypt_Int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: ExtMath_TestBit
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnTestBit
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtMath_TestBit(Crypt_Int*   bn,     // IN: number to check\n
      \                               unsigned int bitNum  // IN: bit to test\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnMaskBits
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bn
    - maskBit
    argTypes:
    - Crypt_Int*
    - crypt_uword_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 352
    functionName: ExtMath_MaskBits
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 1
    functionsReached:
    - BnMaskBits
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtMath_MaskBits(\n    Crypt_Int*    bn,      // IN/OUT:
      number to mask\n    crypt_uword_t maskBit  // IN: the bit number for the mask.\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnShiftRight
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - result
    - toShift
    - shiftAmount
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 361
    functionName: ExtMath_ShiftRight
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 1
    functionsReached:
    - BnShiftRight
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtMath_ShiftRight(\n    Crypt_Int* result, const Crypt_Int*
      toShift, uint32_t shiftAmount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnInit
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:375,1
    - Dst: BN_STRUCT_ALLOCATION
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:375,1
    - Dst: BnInit
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:376,1
    - Dst: BN_STRUCT_ALLOCATION
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:376,1
    - Dst: BnInit
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:377,1
    - Dst: BN_STRUCT_ALLOCATION
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:377,1
    - Dst: BnInitializePoint
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: Crypt_Point* ExtEcc_Initialize_Point(Crypt_Point* point, NUMBYTES
      bitCount)
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnInitializePoint
    - BN_STRUCT_ALLOCATION
    - BnInit
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT Crypt_Point* ExtEcc_Initialize_Point(Crypt_Point* point,
      NUMBYTES bitCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnCurveInitialize
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 393
    functionName: "Crypt_EccCurve* ExtEcc_CurveInitialize(Crypt_EccCurve* E,\n                                                        TPM_ECC_CURVE
      \  curveId)"
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnCurveInitialize
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT Crypt_EccCurve* ExtEcc_CurveInitialize(Crypt_EccCurve*
      E,\n                                                        TPM_ECC_CURVE   curveId)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnCurveFree
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - E
    argTypes:
    - Crypt_EccCurve*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: ExtEcc_CurveFree
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnCurveFree
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT ExtEcc_CurveFree(const Crypt_EccCurve* E)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnPointFromBytes
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 418
    functionName: "Crypt_Point* ExtEcc_PointFromBytes(Crypt_Point* point,\n                                              const
      BYTE*  x,\n                                              NUMBYTES     nBytesX,\n
      \                                             const BYTE*  y,\n                                              NUMBYTES
      \    nBytesY)"
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnPointFromBytes
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT Crypt_Point* ExtEcc_PointFromBytes(Crypt_Point* point,\n
      \                                             const BYTE*  x,\n                                              NUMBYTES
      \    nBytesX,\n                                              const BYTE*  y,\n
      \                                             NUMBYTES     nBytesY)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnPointToBytes
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - point
    - x
    - pBytesX
    - y
    - pBytesY
    argTypes:
    - Crypt_Point*
    - BYTE*
    - NUMBYTES*
    - BYTE*
    - NUMBYTES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 420
    functionDepth: 5
    functionLinenumber: 420
    functionLinenumberEnd: 424
    functionName: ExtEcc_PointToBytes
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 1
    functionsReached:
    - BnPointToBytes
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtEcc_PointToBytes(\n    const Crypt_Point* point, BYTE*
      x, NUMBYTES* pBytesX, BYTE* y, NUMBYTES* pBytesY)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnEccModMult
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - R
    - S
    - d
    - E
    argTypes:
    - Crypt_Point*
    - Crypt_Point*
    - Crypt_Int*
    - Crypt_EccCurve*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 437
    functionName: ExtEcc_PointMultiply
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnEccModMult
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtEcc_PointMultiply(\n    Crypt_Point* R, const Crypt_Point*
      S, const Crypt_Int* d, const Crypt_EccCurve* E)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnEccModMult2
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - R
    - S
    - d
    - Q
    - u
    - E
    argTypes:
    - Crypt_Point*
    - Crypt_Point*
    - Crypt_Int*
    - Crypt_Point*
    - Crypt_Int*
    - Crypt_EccCurve*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 456
    functionName: ExtEcc_PointMultiplyAndAdd
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnEccModMult2
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtEcc_PointMultiplyAndAdd(Crypt_Point*          R,\n                                           const
      Crypt_Point*    S,\n                                           const Crypt_Int*
      \     d,\n                                           const Crypt_Point*    Q,\n
      \                                          const Crypt_Int*      u,\n                                           const
      Crypt_EccCurve* E)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnEccAdd
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - R
    - S
    - Q
    - E
    argTypes:
    - Crypt_Point*
    - Crypt_Point*
    - Crypt_Point*
    - Crypt_EccCurve*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 464
    functionName: ExtEcc_PointAdd
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnEccAdd
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT ExtEcc_PointAdd(Crypt_Point*          R,\n                                const
      Crypt_Point*    S,\n                                const Crypt_Point*    Q,\n
      \                               const Crypt_EccCurve* E)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnIsPointOnCurve
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:471,1
    - Dst: AccessCurveConstants
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - Q
    - E
    argTypes:
    - Crypt_Point*
    - Crypt_EccCurve*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 4
    functionLinenumber: 469
    functionLinenumberEnd: 472
    functionName: ExtEcc_IsPointOnCurve
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - AccessCurveConstants
    - BnIsPointOnCurve
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT ExtEcc_IsPointOnCurve(const Crypt_Point* Q, const Crypt_EccCurve*
      E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - point
    argTypes:
    - Crypt_Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: ExtEcc_PointX
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT * ExtEcc_PointX(const Crypt_Point* point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnEqualZero
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - point
    argTypes:
    - Crypt_Point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 482
    functionName: ExtEcc_IsInfinityPoint
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnEqualZero
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT ExtEcc_IsInfinityPoint(const Crypt_Point* point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnCurveGetPrime
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:489,1
    - Dst: BnGetCurveData
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curveId
    argTypes:
    - TPM_ECC_CURVE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 490
    functionName: ExtEcc_CurveGetPrime
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnGetCurveData
    - BnCurveGetPrime
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT * ExtEcc_CurveGetPrime(TPM_ECC_CURVE curveId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnCurveGetOrder
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:494,1
    - Dst: BnGetCurveData
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curveId
    argTypes:
    - TPM_ECC_CURVE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 495
    functionName: ExtEcc_CurveGetOrder
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 4
    functionsReached:
    - BnCurveGetOrder
    - BnGetCurveData
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT * ExtEcc_CurveGetOrder(TPM_ECC_CURVE curveId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnCurveGetCofactor
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:499,1
    - Dst: BnGetCurveData
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curveId
    argTypes:
    - TPM_ECC_CURVE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: ExtEcc_CurveGetCofactor
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnGetCurveData
    - BnCurveGetCofactor
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT * ExtEcc_CurveGetCofactor(TPM_ECC_CURVE curveId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnCurveGet_a
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:504,1
    - Dst: BnGetCurveData
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curveId
    argTypes:
    - TPM_ECC_CURVE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 505
    functionName: ExtEcc_CurveGet_a
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnGetCurveData
    - BnCurveGet_a
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT * ExtEcc_CurveGet_a(TPM_ECC_CURVE curveId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnCurveGet_b
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:509,1
    - Dst: BnGetCurveData
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curveId
    argTypes:
    - TPM_ECC_CURVE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 510
    functionName: ExtEcc_CurveGet_b
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnGetCurveData
    - BnCurveGet_b
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT * ExtEcc_CurveGet_b(TPM_ECC_CURVE curveId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnCurveGetG
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:514,1
    - Dst: BnGetCurveData
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 515
    functionName: Crypt_Point* ExtEcc_CurveGetG(TPM_ECC_CURVE curveId)
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnGetCurveData
    - BnCurveGetG
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT Crypt_Point* ExtEcc_CurveGetG(TPM_ECC_CURVE curveId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnCurveGetGx
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:519,1
    - Dst: BnGetCurveData
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curveId
    argTypes:
    - TPM_ECC_CURVE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 520
    functionName: ExtEcc_CurveGetGx
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnGetCurveData
    - BnCurveGetGx
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT * ExtEcc_CurveGetGx(TPM_ECC_CURVE curveId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BnCurveGetGy
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:524,1
    - Dst: BnGetCurveData
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curveId
    argTypes:
    - TPM_ECC_CURVE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 525
    functionName: ExtEcc_CurveGetGy
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - BnCurveGetGy
    - BnGetCurveData
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT * ExtEcc_CurveGetGy(TPM_ECC_CURVE curveId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ECC_CURVE::BnCurveGetCurveId
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:529,1
    - Dst: AccessCurveConstants
      Src: /src/libtpms/src/tpm2/TpmBigNumThunks.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - E
    argTypes:
    - Crypt_EccCurve*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 530
    functionName: TPM_ECC_CURVE::ExtEcc_CurveGetCurveId
    functionSourceFile: /src/libtpms/src/tpm2/TpmBigNumThunks.c
    functionUses: 0
    functionsReached:
    - AccessCurveConstants
    - TPM_ECC_CURVE::BnCurveGetCurveId
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT TPM_ECC_CURVE ExtEcc_CurveGetCurveId(const Crypt_EccCurve*
      E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ptr
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: ZeroMemory
    functionSourceFile: /src/libtpms/src/tpm2/simulator_sysheaders.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZeroMemory(ptr, sz)
  - 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: closesocket
    functionSourceFile: /src/libtpms/src/tpm2/simulator_sysheaders.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: closesocket(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: WSAGetLastError
    functionSourceFile: /src/libtpms/src/tpm2/simulator_sysheaders.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WSAGetLastError()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/EphemeralCommands.c:98,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/EphemeralCommands.c:102,1
    - Dst: CryptIsSchemeAnonymous
      Src: /src/libtpms/src/tpm2/EphemeralCommands.c:114,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/EphemeralCommands.c:123,1
    - Dst: ExtEcc_CurveGetPrime
      Src: /src/libtpms/src/tpm2/EphemeralCommands.c:123,1
    - Dst: CryptGenerateR
      Src: /src/libtpms/src/tpm2/EphemeralCommands.c:128,1
    - Dst: CryptHashBlock
      Src: /src/libtpms/src/tpm2/EphemeralCommands.c:143,1
    - Dst: DivideB
      Src: /src/libtpms/src/tpm2/EphemeralCommands.c:157,1
    - Dst: CryptEccIsPointOnCurve
      Src: /src/libtpms/src/tpm2/EphemeralCommands.c:160,1
    - Dst: CryptEccIsPointOnCurve
      Src: /src/libtpms/src/tpm2/EphemeralCommands.c:172,1
    - Dst: CryptEccCommitCompute
      Src: /src/libtpms/src/tpm2/EphemeralCommands.c:180,1
    - Dst: CryptCommit
      Src: /src/libtpms/src/tpm2/EphemeralCommands.c:193,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - Commit_In*
    - Commit_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 196
    functionName: TPM2_Commit
    functionSourceFile: /src/libtpms/src/tpm2/EphemeralCommands.c
    functionUses: 0
    functionsReached:
    - CryptCommit
    - TpmMath_IntTo2B
    - CryptEccIsPointOnCurve
    - HandleToObject
    - DivideB
    - CryptIsSchemeAnonymous
    - CryptEccCommitCompute
    - CryptHashBlock
    - ExtEcc_CurveGetPrime
    - RuntimeProfileRequiresAttributeFlags
    - CryptGenerateR
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Commit(Commit_In*  in,  // IN: input parameter list\n\t
      \   Commit_Out* out  // OUT: output parameter list\n\t    )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/EphemeralCommands.c:212,1
    - Dst: CryptGenerateR
      Src: /src/libtpms/src/tpm2/EphemeralCommands.c:221,1
    - Dst: CryptEccPointMultiply
      Src: /src/libtpms/src/tpm2/EphemeralCommands.c:224,1
    - Dst: CryptCommit
      Src: /src/libtpms/src/tpm2/EphemeralCommands.c:230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - EC_Ephemeral_In*
    - EC_Ephemeral_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 233
    functionName: TPM2_EC_Ephemeral
    functionSourceFile: /src/libtpms/src/tpm2/EphemeralCommands.c
    functionUses: 0
    functionsReached:
    - CryptEccPointMultiply
    - CryptCommit
    - RuntimeProfileRequiresAttributeFlags
    - CryptGenerateR
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_EC_Ephemeral(\n\t\t  EC_Ephemeral_In     *in,            //
      IN: input parameter list\n\t\t  EC_Ephemeral_Out    *out            // OUT:
      output parameter list\n\t\t  )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:123,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:124,1
    - Dst: ObjectIsParent
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:127,1
    - Dst: FindEmptyObjectSlot
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:131,1
    - Dst: CreateChecks
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:146,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:151,1
    - Dst: AdjustAuthSize
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:153,1
    - Dst: CryptCreateObject
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:158,1
    - Dst: FillInCreationData
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:162,1
    - Dst: TicketComputeCreation
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:170,1
    - Dst: EntityGetHierarchy
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:170,1
    - Dst: SensitiveToPrivate
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - Create_In*
    - Create_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 113
    functionDepth: 6
    functionLinenumber: 113
    functionLinenumberEnd: 189
    functionName: TPM2_Create
    functionSourceFile: /src/libtpms/src/tpm2/ObjectCommands.c
    functionUses: 0
    functionsReached:
    - CreateChecks
    - RcSafeAddToResult
    - pAssert
    - CryptCreateObject
    - HandleToObject
    - FillInCreationData
    - ObjectIsParent
    - FindEmptyObjectSlot
    - EntityGetHierarchy
    - SensitiveToPrivate
    - AdjustAuthSize
    - TicketComputeCreation
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Create(Create_In*  in,  // IN: input parameter list\n\t
      \   Create_Out* out  // OUT: output parameter list\n\t    )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FindEmptyObjectSlot
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:235,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:240,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:241,1
    - Dst: ObjectIsParent
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:243,1
    - Dst: PublicMarshalAndComputeName
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:247,1
    - Dst: PrivateToSensitive
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:251,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:255,1
    - Dst: ObjectLoad
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:258,1
    - Dst: ObjectSetLoadedAttributes
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:265,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - Load_In*
    - Load_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 223
    functionDepth: 12
    functionLinenumber: 223
    functionLinenumberEnd: 269
    functionName: TPM2_Load
    functionSourceFile: /src/libtpms/src/tpm2/ObjectCommands.c
    functionUses: 0
    functionsReached:
    - PublicMarshalAndComputeName
    - RcSafeAddToResult
    - pAssert
    - HandleToObject
    - PrivateToSensitive
    - ObjectLoad
    - ObjectIsParent
    - FindEmptyObjectSlot
    - ObjectSetLoadedAttributes
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Load(\n\t  Load_In         *in,            // IN: input
      parameter list\n\t  Load_Out        *out            // OUT: output parameter
      list\n\t  )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FindEmptyObjectSlot
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:286,1
    - Dst: HierarchyIsEnabled
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:291,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:303,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:304,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:306,1
    - Dst: PublicMarshalAndComputeName
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:314,1
    - Dst: ObjectLoad
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:316,1
    - Dst: ObjectSetLoadedAttributes
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:324,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - LoadExternal_In*
    - LoadExternal_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 275
    functionDepth: 12
    functionLinenumber: 275
    functionLinenumberEnd: 330
    functionName: TPM2_LoadExternal
    functionSourceFile: /src/libtpms/src/tpm2/ObjectCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - HierarchyIsEnabled
    - PublicMarshalAndComputeName
    - ObjectLoad
    - FindEmptyObjectSlot
    - ObjectSetLoadedAttributes
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_LoadExternal(\n\t\t  LoadExternal_In     *in,            //
      IN: input parameter list\n\t\t  LoadExternal_Out    *out            // OUT:
      output parameter list\n\t\t  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:341,1
    - Dst: ObjectIsSequence
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - ReadPublic_In*
    - ReadPublic_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 351
    functionName: TPM2_ReadPublic
    functionSourceFile: /src/libtpms/src/tpm2/ObjectCommands.c
    functionUses: 0
    functionsReached:
    - ObjectIsSequence
    - HandleToObject
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ReadPublic(\n\t\tReadPublic_In   *in,            // IN:
      input parameter list\n\t\tReadPublic_Out  *out            // OUT: output parameter
      list\n\t\t)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:369,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:371,1
    - Dst: CryptIsAsymAlgorithm
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:373,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:374,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:375,1
    - Dst: CryptSecretDecrypt
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:382,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:387,1
    - Dst: CredentialToSecret
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:391,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - ActivateCredential_In*
    - ActivateCredential_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 399
    functionName: TPM2_ActivateCredential
    functionSourceFile: /src/libtpms/src/tpm2/ObjectCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - RcSafeAddToResult
    - CryptIsAsymAlgorithm
    - CryptSecretDecrypt
    - CredentialToSecret
    - HandleToObject
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ActivateCredential(\n\t\t\tActivateCredential_In   *in,
      \           // IN: input parameter list\n\t\t\tActivateCredential_Out  *out
      \           // OUT: output parameter list\n\t\t\t)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:416,1
    - Dst: CryptIsAsymAlgorithm
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:419,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:420,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:421,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:425,1
    - Dst: CryptSecretEncrypt
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:430,1
    - Dst: SecretToCredential
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:434,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - MakeCredential_In*
    - MakeCredential_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 405
    functionDepth: 6
    functionLinenumber: 405
    functionLinenumberEnd: 437
    functionName: TPM2_MakeCredential
    functionSourceFile: /src/libtpms/src/tpm2/ObjectCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - CryptHashGetDigestSize
    - CryptIsAsymAlgorithm
    - HandleToObject
    - SecretToCredential
    - CryptSecretEncrypt
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_MakeCredential(\n\t\t    MakeCredential_In   *in,            //
      IN: input parameter list\n\t\t    MakeCredential_Out  *out            // OUT:
      output parameter list\n\t\t    )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:451,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:455,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:456,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:457,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - Unseal_In*
    - Unseal_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 463
    functionName: TPM2_Unseal
    functionSourceFile: /src/libtpms/src/tpm2/ObjectCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - HandleToObject
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Unseal(\n\t    Unseal_In           *in,\n\t    Unseal_Out
      \         *out\n\t    )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:476,1
    - Dst: ObjectIsSequence
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:480,1
    - Dst: AdjustAuthSize
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:483,1
    - Dst: ComputeQualifiedName
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:488,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:491,1
    - Dst: SensitiveToPrivate
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:498,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:498,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - ObjectChangeAuth_In*
    - ObjectChangeAuth_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 469
    functionDepth: 4
    functionLinenumber: 469
    functionLinenumberEnd: 502
    functionName: TPM2_ObjectChangeAuth
    functionSourceFile: /src/libtpms/src/tpm2/ObjectCommands.c
    functionUses: 0
    functionsReached:
    - ObjectIsSequence
    - MemoryEqual2B
    - HandleToObject
    - SensitiveToPrivate
    - AdjustAuthSize
    - ComputeQualifiedName
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ObjectChangeAuth(\n\t\t      ObjectChangeAuth_In     *in,
      \           // IN: input parameter list\n\t\t      ObjectChangeAuth_Out    *out
      \           // OUT: output parameter list\n\t\t      )"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:558,1
    - Dst: RuntimeProfileGetSeedCompatLevel
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:565,1
    - Dst: FindEmptyObjectSlot
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:579,1
    - Dst: UnmarshalToPublic
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:594,1
    - Dst: AdjustAuthSize
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:599,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:610,1
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:616,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:621,1
    - Dst: PublicAttributesValidation
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:625,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:627,1
    - Dst: SetLabelAndContext
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:630,1
    - Dst: DRBG_InstantiateSeededKdf
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:634,1
    - Dst: CreateChecks
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:651,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:657,1
    - Dst: HierarchyNormalizeHandle
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:665,1
    - Dst: HierarchyGetPrimarySeedCompatLevel
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:667,1
    - Dst: HierarchyGetPrimarySeed
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:671,1
    - Dst: DRBG_InstantiateSeeded
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:677,1
    - Dst: PublicMarshalAndComputeName
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:681,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:684,1
    - Dst: CryptCreateObject
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:697,1
    - Dst: DRBG_Uninstantiate
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:698,1
    - Dst: SensitiveToPrivate
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:705,1
    - Dst: ObjectSetLoadedAttributes
      Src: /src/libtpms/src/tpm2/ObjectCommands.c:716,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 62
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - CreateLoaded_In*
    - CreateLoaded_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 552
    functionDepth: 12
    functionLinenumber: 552
    functionLinenumberEnd: 719
    functionName: TPM2_CreateLoaded
    functionSourceFile: /src/libtpms/src/tpm2/ObjectCommands.c
    functionUses: 0
    functionsReached:
    - HierarchyNormalizeHandle
    - pAssert
    - RuntimeProfileGetSeedCompatLevel
    - ObjectSetLoadedAttributes
    - PublicMarshalAndComputeName
    - RcSafeAddToResult
    - CryptCreateObject
    - HandleToObject
    - SetLabelAndContext
    - DRBG_InstantiateSeededKdf
    - FindEmptyObjectSlot
    - SensitiveToPrivate
    - AdjustAuthSize
    - IS_ATTRIBUTE
    - UnmarshalToPublic
    - DRBG_Uninstantiate
    - DRBG_InstantiateSeeded
    - MemorySet
    - RuntimeProfileRequiresAttributeFlags
    - PublicAttributesValidation
    - CreateChecks
    - HierarchyGetPrimarySeedCompatLevel
    - HierarchyGetPrimarySeed
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_CreateLoaded(CreateLoaded_In*  in,  // IN: input parameter
      list\n\t\t  CreateLoaded_Out* out  // OUT: output parameter list\n\t\t  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: SHA1_OID
    functionSourceFile: /src/libtpms/src/tpm2/OIDs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1_OID(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: SHA256_OID
    functionSourceFile: /src/libtpms/src/tpm2/OIDs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA256_OID(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: SHA384_OID
    functionSourceFile: /src/libtpms/src/tpm2/OIDs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA384_OID(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: SHA512_OID
    functionSourceFile: /src/libtpms/src/tpm2/OIDs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA512_OID(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: SM3_256_OID
    functionSourceFile: /src/libtpms/src/tpm2/OIDs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SM3_256_OID(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: SHA3_256_OID
    functionSourceFile: /src/libtpms/src/tpm2/OIDs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA3_256_OID(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: SHA3_384_OID
    functionSourceFile: /src/libtpms/src/tpm2/OIDs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA3_384_OID(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: SHA3_512_OID
    functionSourceFile: /src/libtpms/src/tpm2/OIDs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA3_512_OID(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - OID
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: OID_SIZE
    functionSourceFile: /src/libtpms/src/tpm2/OIDs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OID_SIZE(OID)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/libtpms/src/tpm2/Memory.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - dest
    - src
    - sSize
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: MemoryCopy
    functionSourceFile: /src/libtpms/src/tpm2/Memory.c
    functionUses: 23
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void MemoryCopy(void* dest, const void* src, int sSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - buffer1
    - buffer2
    - size
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: MemoryEqual
    functionSourceFile: /src/libtpms/src/tpm2/Memory.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: "BOOL MemoryEqual(const void*  buffer1,  // IN: compare buffer1\n                 const
      void*  buffer2,  // IN: compare buffer2\n                 unsigned int size
      \     // IN: size of bytes being compared\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Memory.c:119,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Memory.c:124,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/Memory.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - dest
    - source
    - dSize
    argTypes:
    - TPM2B*
    - TPM2B*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: MemoryCopy2B
    functionSourceFile: /src/libtpms/src/tpm2/Memory.c
    functionUses: 20
    functionsReached:
    - MemoryCopy
    - pAssert
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT MemoryCopy2B(TPM2B*       dest,    // OUT: receiving TPM2B\n
      \                             const TPM2B* source,  // IN: source TPM2B\n                              unsigned
      int dSize  // IN: size of the receiving buffer\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Memory.c:142,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/Memory.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - aInOut
    - bIn
    - aMaxSize
    argTypes:
    - TPM2B*
    - TPM2B*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 146
    functionName: MemoryConcat2B
    functionSourceFile: /src/libtpms/src/tpm2/Memory.c
    functionUses: 4
    functionsReached:
    - MemoryCopy
    - pAssert
    linkageType: ''
    returnType: void
    signature: "void MemoryConcat2B(\n    TPM2B*       aInOut,   // IN/OUT: destination
      2B\n    TPM2B*       bIn,      // IN: second 2B\n    unsigned int aMaxSize  //
      IN: The size of aInOut.buffer (max values for\n                           //
      \    aInOut.size)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/Memory.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - aIn
    - bIn
    argTypes:
    - TPM2B*
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: MemoryEqual2B
    functionSourceFile: /src/libtpms/src/tpm2/Memory.c
    functionUses: 13
    functionsReached:
    - MemoryEqual
    linkageType: ''
    returnType: BOOL
    signature: "BOOL MemoryEqual2B(const TPM2B* aIn,  // IN: compare value\n                   const
      TPM2B* bIn   // IN: compare value\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtpms/src/tpm2/Memory.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dest
    - value
    - size
    argTypes:
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: MemorySet
    functionSourceFile: /src/libtpms/src/tpm2/Memory.c
    functionUses: 38
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void MemorySet(void* dest, int value, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Memory.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - newSize
    argTypes:
    - TPM2B*
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: MemoryPad2B
    functionSourceFile: /src/libtpms/src/tpm2/Memory.c
    functionUses: 1
    functionsReached:
    - MemorySet
    linkageType: ''
    returnType: void
    signature: void MemoryPad2B(TPM2B* b, UINT16 newSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - i
    - a
    argTypes:
    - UINT16
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: Uint16ToByteArray
    functionSourceFile: /src/libtpms/src/tpm2/Memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Uint16ToByteArray(UINT16 i, BYTE* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - i
    - a
    argTypes:
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 204
    functionName: Uint32ToByteArray
    functionSourceFile: /src/libtpms/src/tpm2/Memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Uint32ToByteArray(UINT32 i, BYTE* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - i
    - a
    argTypes:
    - UINT64
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 225
    functionName: Uint64ToByteArray
    functionSourceFile: /src/libtpms/src/tpm2/Memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Uint64ToByteArray(UINT64 i, BYTE* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: ByteArrayToUint8
    functionSourceFile: /src/libtpms/src/tpm2/Memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UINT8
    signature: UINT8 ByteArrayToUint8(BYTE* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: ByteArrayToUint16
    functionSourceFile: /src/libtpms/src/tpm2/Memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UINT16
    signature: UINT16 ByteArrayToUint16(BYTE* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: ByteArrayToUint32
    functionSourceFile: /src/libtpms/src/tpm2/Memory.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UINT32
    signature: UINT32 ByteArrayToUint32(BYTE* a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BYTE_ARRAY_TO_UINT32
      Src: /src/libtpms/src/tpm2/Memory.c:259,1
    - Dst: BYTE_ARRAY_TO_UINT32
      Src: /src/libtpms/src/tpm2/Memory.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: ByteArrayToUint64
    functionSourceFile: /src/libtpms/src/tpm2/Memory.c
    functionUses: 0
    functionsReached:
    - BYTE_ARRAY_TO_UINT32
    linkageType: ''
    returnType: UINT64
    signature: UINT64 ByteArrayToUint64(BYTE* a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - string
    - maxsize
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 91
    functionName: SafeGetStringLength
    functionSourceFile: /src/libtpms/src/tpm2/TpmMath_Debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t SafeGetStringLength(const char* string, size_t maxsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: FromHex
    functionSourceFile: /src/libtpms/src/tpm2/TpmMath_Debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT FromHex(unsigned char c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/TpmMath_Debug.c:116,1
    - Dst: ExtMath_SetWord
      Src: /src/libtpms/src/tpm2/TpmMath_Debug.c:117,1
    - Dst: SafeGetStringLength
      Src: /src/libtpms/src/tpm2/TpmMath_Debug.c:119,1
    - Dst: FromHex
      Src: /src/libtpms/src/tpm2/TpmMath_Debug.c:126,1
    - Dst: FromHex
      Src: /src/libtpms/src/tpm2/TpmMath_Debug.c:128,1
    - Dst: ExtMath_IntFromBytes
      Src: /src/libtpms/src/tpm2/TpmMath_Debug.c:141,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/TpmMath_Debug.c:149,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - bn
    - hex
    - maxsizeHex
    argTypes:
    - Crypt_Int*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 152
    functionName: TpmEccDebug_FromHex
    functionSourceFile: /src/libtpms/src/tpm2/TpmMath_Debug.c
    functionUses: 0
    functionsReached:
    - FromHex
    - ExtMath_IntFromBytes
    - SafeGetStringLength
    - FAIL
    - MemorySet
    - ExtMath_SetWord
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT * TpmEccDebug_FromHex(\n    Crypt_Int*           bn,         //
      OUT:\n    const unsigned char* hex,        // IN:\n    size_t               maxsizeHex
      \ // IN: maximum size of hex\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/TpmMath_Debug.c:165,1
    - Dst: TpmEccDebug_FromHex
      Src: /src/libtpms/src/tpm2/TpmMath_Debug.c:166,1
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/TpmMath_Debug.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - bn
    - c
    argTypes:
    - Crypt_Int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 5
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: TpmEccDebug_HexEqual
    functionSourceFile: /src/libtpms/src/tpm2/TpmMath_Debug.c
    functionUses: 0
    functionsReached:
    - ExtMath_UnsignedCmp
    - CRYPT_ECC_NUM
    - TpmEccDebug_FromHex
    linkageType: ''
    returnType: BOOL
    signature: "BOOL TpmEccDebug_HexEqual(const Crypt_Int* bn,  //IN: big number value\n
      \                         const char*      c    //IN: character string number\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:94,1
    - Dst: ComputeAuthTimeout
      Src: /src/libtpms/src/tpm2/EACommands.c:99,1
    - Dst: PolicyParameterChecks
      Src: /src/libtpms/src/tpm2/EACommands.c:101,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:130,1
    - Dst: CryptGetSignHashAlg
      Src: /src/libtpms/src/tpm2/EACommands.c:130,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:138,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:141,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:144,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:147,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:150,1
    - Dst: CryptValidateSignature
      Src: /src/libtpms/src/tpm2/EACommands.c:154,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/EACommands.c:156,1
    - Dst: PolicyContextUpdate
      Src: /src/libtpms/src/tpm2/EACommands.c:161,1
    - Dst: EntityGetName
      Src: /src/libtpms/src/tpm2/EACommands.c:162,1
    - Dst: TicketComputeAuth
      Src: /src/libtpms/src/tpm2/EACommands.c:178,1
    - Dst: EntityGetHierarchy
      Src: /src/libtpms/src/tpm2/EACommands.c:179,1
    - Dst: UINT64_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/EACommands.c:200,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - PolicySigned_In*
    - PolicySigned_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 81
    functionDepth: 6
    functionLinenumber: 81
    functionLinenumberEnd: 214
    functionName: TPM2_PolicySigned
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - PolicyParameterChecks
    - TicketComputeAuth
    - CryptDigestUpdate2B
    - RcSafeAddToResult
    - EntityGetName
    - PolicyContextUpdate
    - ComputeAuthTimeout
    - UINT64_TO_BYTE_ARRAY
    - CryptHashStart
    - CryptDigestUpdateInt
    - CryptHashEnd2B
    - CryptGetSignHashAlg
    - SessionGet
    - EntityGetHierarchy
    - CryptValidateSignature
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicySigned(PolicySigned_In*  in,  // IN: input parameter
      list\n\t\t  PolicySigned_Out* out  // OUT: output parameter list\n\t\t  )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:249,1
    - Dst: ComputeAuthTimeout
      Src: /src/libtpms/src/tpm2/EACommands.c:254,1
    - Dst: PolicyParameterChecks
      Src: /src/libtpms/src/tpm2/EACommands.c:256,1
    - Dst: PolicyContextUpdate
      Src: /src/libtpms/src/tpm2/EACommands.c:269,1
    - Dst: EntityGetName
      Src: /src/libtpms/src/tpm2/EACommands.c:270,1
    - Dst: NvIsPinPassIndex
      Src: /src/libtpms/src/tpm2/EACommands.c:281,1
    - Dst: TicketComputeAuth
      Src: /src/libtpms/src/tpm2/EACommands.c:286,1
    - Dst: EntityGetHierarchy
      Src: /src/libtpms/src/tpm2/EACommands.c:287,1
    - Dst: UINT64_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/EACommands.c:308,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - PolicySecret_In*
    - PolicySecret_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 238
    functionDepth: 5
    functionLinenumber: 238
    functionLinenumberEnd: 321
    functionName: TPM2_PolicySecret
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - PolicyParameterChecks
    - TicketComputeAuth
    - EntityGetName
    - PolicyContextUpdate
    - ComputeAuthTimeout
    - UINT64_TO_BYTE_ARRAY
    - SessionGet
    - EntityGetHierarchy
    - NvIsPinPassIndex
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicySecret(PolicySecret_In*  in,  // IN: input parameter
      list\n\t\t  PolicySecret_Out* out  // OUT: output parameter list\n\t\t  )"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:355,1
    - Dst: BYTE_ARRAY_TO_UINT64
      Src: /src/libtpms/src/tpm2/EACommands.c:372,1
    - Dst: PolicyParameterChecks
      Src: /src/libtpms/src/tpm2/EACommands.c:379,1
    - Dst: TicketComputeAuth
      Src: /src/libtpms/src/tpm2/EACommands.c:390,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/EACommands.c:402,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/EACommands.c:416,1
    - Dst: PolicyContextUpdate
      Src: /src/libtpms/src/tpm2/EACommands.c:419,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyTicket_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 427
    functionName: TPM2_PolicyTicket
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - PolicyParameterChecks
    - TicketComputeAuth
    - MemoryEqual2B
    - PolicyContextUpdate
    - BYTE_ARRAY_TO_UINT64
    - SessionGet
    - FAIL
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyTicket(PolicyTicket_In* in  // IN: input parameter
      list\n\t\t  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:453,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/EACommands.c:459,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:468,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/EACommands.c:470,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:473,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:476,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:482,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyOR_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 492
    functionName: TPM2_PolicyOR
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - MemoryEqual2B
    - CryptDigestUpdate2B
    - CryptHashStart
    - CryptDigestUpdateInt
    - CryptHashEnd2B
    - SessionGet
    - MemorySet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyOR(PolicyOR_In* in  // IN: input parameter list\n\t
      \     )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:525,1
    - Dst: PCRComputeCurrentDigest
      Src: /src/libtpms/src/tpm2/EACommands.c:528,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/EACommands.c:541,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:558,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:561,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:564,1
    - Dst: TPML_PCR_SELECTION_Marshal
      Src: /src/libtpms/src/tpm2/EACommands.c:568,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/EACommands.c:569,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:572,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:575,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyPCR_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 511
    functionDepth: 6
    functionLinenumber: 511
    functionLinenumberEnd: 584
    functionName: TPM2_PolicyPCR
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - SessionGet
    - MemoryEqual2B
    - CryptDigestUpdate2B
    - CryptHashStart
    - CryptDigestUpdateInt
    - CryptHashEnd2B
    - CryptDigestUpdate
    - PCRComputeCurrentDigest
    - TPML_PCR_SELECTION_Marshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyPCR(PolicyPCR_In* in  // IN: input parameter list\n\t
      \      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:608,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:613,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:616,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:619,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyPhysicalPresence_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 628
    functionName: TPM2_PolicyPhysicalPresence
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - CryptDigestUpdate2B
    - CryptHashStart
    - CryptHashEnd2B
    - CryptDigestUpdateInt
    - SessionGet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyPhysicalPresence(PolicyPhysicalPresence_In* in  //
      IN: input parameter list\n\t\t\t    )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:657,1
    - Dst: TPMA_LOCALITY_Marshal
      Src: /src/libtpms/src/tpm2/EACommands.c:662,1
    - Dst: TPMA_LOCALITY_Marshal
      Src: /src/libtpms/src/tpm2/EACommands.c:671,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:711,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:714,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:717,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/EACommands.c:720,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:723,1
    - Dst: TPMA_LOCALITY_Unmarshal
      Src: /src/libtpms/src/tpm2/EACommands.c:728,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyLocality_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 643
    functionDepth: 3
    functionLinenumber: 643
    functionLinenumberEnd: 731
    functionName: TPM2_PolicyLocality
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - TPMA_LOCALITY_Unmarshal
    - CryptDigestUpdate2B
    - CryptDigestUpdateInt
    - CryptHashStart
    - CryptHashEnd2B
    - CryptDigestUpdate
    - SessionGet
    - TPMA_LOCALITY_Marshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyLocality(PolicyLocality_In* in  // IN: input parameter
      list\n\t\t    )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:771,1
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/EACommands.c:777,1
    - Dst: NvReadAccessChecks
      Src: /src/libtpms/src/tpm2/EACommands.c:781,1
    - Dst: NvGetIndexData
      Src: /src/libtpms/src/tpm2/EACommands.c:795,1
    - Dst: PolicySptCheckCondition
      Src: /src/libtpms/src/tpm2/EACommands.c:798,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:805,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:808,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:811,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:814,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:817,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:821,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:824,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:827,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:830,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:833,1
    - Dst: EntityGetName
      Src: /src/libtpms/src/tpm2/EACommands.c:833,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:836,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyNV_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 755
    functionDepth: 5
    functionLinenumber: 755
    functionLinenumberEnd: 839
    functionName: TPM2_PolicyNV
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - NvReadAccessChecks
    - PolicySptCheckCondition
    - CryptDigestUpdate2B
    - EntityGetName
    - NvGetIndexData
    - CryptHashStart
    - CryptDigestUpdateInt
    - CryptHashEnd2B
    - SessionGet
    - NvGetIndexInfo
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyNV(PolicyNV_In* in  // IN: input parameter list\n\t
      \     )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TimeGetMarshaled
      Src: /src/libtpms/src/tpm2/EACommands.c:873,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/EACommands.c:874,1
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:884,1
    - Dst: PolicySptCheckCondition
      Src: /src/libtpms/src/tpm2/EACommands.c:902,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:910,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:912,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:914,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:916,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:918,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:922,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:925,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:928,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:931,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:934,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyCounterTimer_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 937
    functionName: TPM2_PolicyCounterTimer
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - PolicySptCheckCondition
    - CryptDigestUpdate2B
    - pAssert
    - CryptHashStart
    - CryptDigestUpdateInt
    - CryptHashEnd2B
    - TimeGetMarshaled
    - SessionGet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyCounterTimer(PolicyCounterTimer_In* in  // IN: input
      parameter list\n\t\t\t)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:965,1
    - Dst: CommandCodeToCommandIndex
      Src: /src/libtpms/src/tpm2/EACommands.c:969,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:976,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:979,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:982,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:985,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:988,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyCommandCode_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 955
    functionDepth: 4
    functionLinenumber: 955
    functionLinenumberEnd: 994
    functionName: TPM2_PolicyCommandCode
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - CryptDigestUpdate2B
    - CommandCodeToCommandIndex
    - CryptHashStart
    - CryptDigestUpdateInt
    - CryptHashEnd2B
    - SessionGet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyCommandCode(PolicyCommandCode_In* in  // IN: input
      parameter list\n\t\t       )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:1023,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/EACommands.c:1028,1
    - Dst: IsCpHashUnionOccupied
      Src: /src/libtpms/src/tpm2/EACommands.c:1033,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1035,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:1043,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1046,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:1049,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1052,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1055,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyCpHash_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1062
    functionName: TPM2_PolicyCpHash
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - MemoryEqual2B
    - CryptDigestUpdate2B
    - CryptHashStart
    - CryptDigestUpdateInt
    - CryptHashEnd2B
    - SessionGet
    - IsCpHashUnionOccupied
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyCpHash(PolicyCpHash_In* in  // IN: input parameter
      list\n\t\t  )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:1089,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/EACommands.c:1094,1
    - Dst: IsCpHashUnionOccupied
      Src: /src/libtpms/src/tpm2/EACommands.c:1098,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:1106,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1109,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:1112,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1115,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyNameHash_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1126
    functionName: TPM2_PolicyNameHash
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - CryptDigestUpdate2B
    - CryptHashStart
    - CryptDigestUpdateInt
    - CryptHashEnd2B
    - SessionGet
    - IsCpHashUnionOccupied
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyNameHash(PolicyNameHash_In* in  // IN: input parameter
      list\n\t\t    )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:1154,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:1167,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1170,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1173,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1176,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:1184,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1186,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:1189,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1193,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1196,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:1199,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyDuplicationSelect_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1208
    functionName: TPM2_PolicyDuplicationSelect
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - CryptDigestUpdate2B
    - CryptDigestUpdateInt
    - CryptHashStart
    - CryptHashEnd2B
    - SessionGet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyDuplicationSelect(\n\t\t\t     PolicyDuplicationSelect_In*
      in  // IN: input parameter list\n\t\t\t     )"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:1243,1
    - Dst: BYTE_ARRAY_TO_UINT16
      Src: /src/libtpms/src/tpm2/EACommands.c:1251,1
    - Dst: CryptHashIsValidAlg
      Src: /src/libtpms/src/tpm2/EACommands.c:1255,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/EACommands.c:1258,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1267,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:1274,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1277,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1280,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1283,1
    - Dst: TicketComputeVerified
      Src: /src/libtpms/src/tpm2/EACommands.c:1286,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1292,1
    - Dst: PolicyDigestClear
      Src: /src/libtpms/src/tpm2/EACommands.c:1299,1
    - Dst: PolicyContextUpdate
      Src: /src/libtpms/src/tpm2/EACommands.c:1302,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyAuthorize_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1229
    functionDepth: 2
    functionLinenumber: 1229
    functionLinenumberEnd: 1306
    functionName: TPM2_PolicyAuthorize
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - BYTE_ARRAY_TO_UINT16
    - MemoryEqual2B
    - CryptDigestUpdate2B
    - PolicyDigestClear
    - PolicyContextUpdate
    - CryptHashIsValidAlg
    - CryptHashStart
    - CryptHashEnd2B
    - SessionGet
    - TicketComputeVerified
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyAuthorize(PolicyAuthorize_In* in  // IN: input parameter
      list\n\t\t     )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:1332,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:1337,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1340,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:1343,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyAuthValue_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1353
    functionName: TPM2_PolicyAuthValue
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - CryptDigestUpdate2B
    - CryptHashStart
    - CryptHashEnd2B
    - CryptDigestUpdateInt
    - SessionGet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyAuthValue(PolicyAuthValue_In* in  // IN: input parameter
      list\n\t\t     )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:1379,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:1384,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1387,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:1390,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyPassword_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1400
    functionName: TPM2_PolicyPassword
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - CryptDigestUpdate2B
    - CryptHashStart
    - CryptHashEnd2B
    - CryptDigestUpdateInt
    - SessionGet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyPassword(PolicyPassword_In* in  // IN: input parameter
      list\n\t\t    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:1417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - PolicyGetDigest_In*
    - PolicyGetDigest_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1408
    functionDepth: 1
    functionLinenumber: 1408
    functionLinenumberEnd: 1420
    functionName: TPM2_PolicyGetDigest
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - SessionGet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyGetDigest(\n\t\t     PolicyGetDigest_In      *in,
      \           // IN: input parameter list\n\t\t     PolicyGetDigest_Out     *out
      \           // OUT: output parameter list\n\t\t     )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:1443,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:1463,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1466,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:1469,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:1472,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyNvWritten_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1478
    functionName: TPM2_PolicyNvWritten
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - CryptDigestUpdate2B
    - CryptHashStart
    - CryptHashEnd2B
    - CryptDigestUpdateInt
    - SessionGet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyNvWritten(PolicyNvWritten_In* in  // IN: input parameter
      list\n\t\t     )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:1506,1
    - Dst: IsCpHashUnionOccupied
      Src: /src/libtpms/src/tpm2/EACommands.c:1510,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1512,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/EACommands.c:1516,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:1524,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1527,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:1530,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1533,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1536,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyTemplate_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1496
    functionDepth: 2
    functionLinenumber: 1496
    functionLinenumberEnd: 1543
    functionName: TPM2_PolicyTemplate
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - MemoryEqual2B
    - CryptDigestUpdate2B
    - CryptHashStart
    - CryptDigestUpdateInt
    - CryptHashEnd2B
    - SessionGet
    - IsCpHashUnionOccupied
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyTemplate(PolicyTemplate_In* in  // IN: input parameter
      list\n\t\t    )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/EACommands.c:1571,1
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:1581,1
    - Dst: NvReadAccessChecks
      Src: /src/libtpms/src/tpm2/EACommands.c:1590,1
    - Dst: MIN
      Src: /src/libtpms/src/tpm2/EACommands.c:1596,1
    - Dst: NvGetIndexData
      Src: /src/libtpms/src/tpm2/EACommands.c:1597,1
    - Dst: TPMT_HA_Unmarshal
      Src: /src/libtpms/src/tpm2/EACommands.c:1603,1
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/EACommands.c:1613,1
    - Dst: PolicyDigestClear
      Src: /src/libtpms/src/tpm2/EACommands.c:1622,1
    - Dst: PolicyContextUpdate
      Src: /src/libtpms/src/tpm2/EACommands.c:1625,1
    - Dst: EntityGetName
      Src: /src/libtpms/src/tpm2/EACommands.c:1626,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyAuthorizeNV_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1565
    functionDepth: 5
    functionLinenumber: 1565
    functionLinenumberEnd: 1633
    functionName: TPM2_PolicyAuthorizeNV
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - NvReadAccessChecks
    - EntityGetName
    - NvGetIndexData
    - PolicyDigestClear
    - PolicyContextUpdate
    - TPMT_HA_Unmarshal
    - MIN
    - SessionGet
    - NvGetIndexInfo
    - MemoryEqual
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2_PolicyAuthorizeNV(PolicyAuthorizeNV_In* in)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:1697,1
    - Dst: AlgorithmCapGetOneImplemented
      Src: /src/libtpms/src/tpm2/EACommands.c:1704,1
    - Dst: TPMS_ALG_PROPERTY_Marshal
      Src: /src/libtpms/src/tpm2/EACommands.c:1707,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/EACommands.c:1713,1
    - Dst: ObjectCapGetOneLoaded
      Src: /src/libtpms/src/tpm2/EACommands.c:1716,1
    - Dst: NvCapGetOnePersistent
      Src: /src/libtpms/src/tpm2/EACommands.c:1719,1
    - Dst: NvCapGetOneIndex
      Src: /src/libtpms/src/tpm2/EACommands.c:1722,1
    - Dst: SessionCapGetOneLoaded
      Src: /src/libtpms/src/tpm2/EACommands.c:1726,1
    - Dst: SessionCapGetOneSaved
      Src: /src/libtpms/src/tpm2/EACommands.c:1729,1
    - Dst: PCRCapGetOneHandle
      Src: /src/libtpms/src/tpm2/EACommands.c:1732,1
    - Dst: PermanentCapGetOneHandle
      Src: /src/libtpms/src/tpm2/EACommands.c:1736,1
    - Dst: TPM_HANDLE_Marshal
      Src: /src/libtpms/src/tpm2/EACommands.c:1746,1
    - Dst: CommandCapGetOneCC
      Src: /src/libtpms/src/tpm2/EACommands.c:1751,1
    - Dst: TPMA_CC_Marshal
      Src: /src/libtpms/src/tpm2/EACommands.c:1754,1
    - Dst: PhysicalPresenceCapGetOneCC
      Src: /src/libtpms/src/tpm2/EACommands.c:1759,1
    - Dst: TPM_CC_Marshal
      Src: /src/libtpms/src/tpm2/EACommands.c:1762,1
    - Dst: CommandAuditCapGetOneCC
      Src: /src/libtpms/src/tpm2/EACommands.c:1766,1
    - Dst: TPM_CC_Marshal
      Src: /src/libtpms/src/tpm2/EACommands.c:1769,1
    - Dst: PCRGetProperty
      Src: /src/libtpms/src/tpm2/EACommands.c:1775,1
    - Dst: TPMS_TAGGED_PCR_SELECT_Marshal
      Src: /src/libtpms/src/tpm2/EACommands.c:1777,1
    - Dst: TPMCapGetOneProperty
      Src: /src/libtpms/src/tpm2/EACommands.c:1782,1
    - Dst: TPMS_TAGGED_PROPERTY_Marshal
      Src: /src/libtpms/src/tpm2/EACommands.c:1785,1
    - Dst: CryptCapGetOneECCCurve
      Src: /src/libtpms/src/tpm2/EACommands.c:1792,1
    - Dst: TPM_ECC_CURVE_Marshal
      Src: /src/libtpms/src/tpm2/EACommands.c:1795,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/EACommands.c:1801,1
    - Dst: PermanentHandleGetOnePolicy
      Src: /src/libtpms/src/tpm2/EACommands.c:1803,1
    - Dst: TPMS_TAGGED_POLICY_Marshal
      Src: /src/libtpms/src/tpm2/EACommands.c:1806,1
    - Dst: ActGetOneCapability
      Src: /src/libtpms/src/tpm2/EACommands.c:1816,1
    - Dst: TPMS_ACT_DATA_Marshal
      Src: /src/libtpms/src/tpm2/EACommands.c:1818,1
    - Dst: PolicySptCheckCondition
      Src: /src/libtpms/src/tpm2/EACommands.c:1857,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:1869,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1872,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:1875,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:1878,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:1881,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:1884,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1887,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:1891,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1894,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:1897,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1900,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1903,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 120
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyCapability_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1666
    functionDepth: 7
    functionLinenumber: 1666
    functionLinenumberEnd: 1906
    functionName: TPM2_PolicyCapability
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - TPMS_ACT_DATA_Marshal
    - TPMS_ALG_PROPERTY_Marshal
    - HandleGetType
    - TPM_CC_Marshal
    - CommandCapGetOneCC
    - TPMCapGetOneProperty
    - NvCapGetOneIndex
    - SessionCapGetOneSaved
    - CryptCapGetOneECCCurve
    - ObjectCapGetOneLoaded
    - CryptDigestUpdate2B
    - TPM_HANDLE_Marshal
    - TPMA_CC_Marshal
    - NvCapGetOnePersistent
    - PhysicalPresenceCapGetOneCC
    - PermanentCapGetOneHandle
    - PermanentHandleGetOnePolicy
    - PCRCapGetOneHandle
    - CryptDigestUpdateInt
    - TPMS_TAGGED_POLICY_Marshal
    - TPMS_TAGGED_PROPERTY_Marshal
    - SessionCapGetOneLoaded
    - ActGetOneCapability
    - SessionGet
    - TPM_ECC_CURVE_Marshal
    - PCRGetProperty
    - PolicySptCheckCondition
    - AlgorithmCapGetOneImplemented
    - CryptHashStart
    - CryptHashEnd2B
    - CommandAuditCapGetOneCC
    - TPMS_TAGGED_PCR_SELECT_Marshal
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyCapability(PolicyCapability_In* in  // IN: input
      parameter list\n\t\t      )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/EACommands.c:1934,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/EACommands.c:1939,1
    - Dst: IsCpHashUnionOccupied
      Src: /src/libtpms/src/tpm2/EACommands.c:1943,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/EACommands.c:1951,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1954,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/EACommands.c:1957,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1960,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/EACommands.c:1963,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - in
    argTypes:
    - PolicyParameters_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1923
    functionDepth: 1
    functionLinenumber: 1923
    functionLinenumberEnd: 1970
    functionName: TPM2_PolicyParameters
    functionSourceFile: /src/libtpms/src/tpm2/EACommands.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - CryptDigestUpdate2B
    - CryptHashStart
    - CryptDigestUpdateInt
    - CryptHashEnd2B
    - SessionGet
    - IsCpHashUnionOccupied
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_PolicyParameters(PolicyParameters_In* in  // IN: input
      parameter list\n\t\t      )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_INT_MAX
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c:100,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c:102,1
    - Dst: CryptGenerateR
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c:103,1
    - Dst: CRYPT_ECC_INITIALIZED
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c:112,1
    - Dst: TpmEcc_GenPrivateScalar
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c:118,1
    - Dst: TpmEcc_GenPrivateScalar
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c:120,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c:126,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c:128,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c:135,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c:136,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c:137,1
    - Dst: TpmMath_IntFrom2B
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c:138,1
    - Dst: TpmEcc_SchnorrCalculateS
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c:141,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c:146,1
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c:146,1
    - Dst: CryptEndCommit
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c:156,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 8
    argNames:
    - nonceK
    - bnS
    - E
    - bnD
    - digest
    - scheme
    - eccKey
    - rand
    argTypes:
    - TPM2B_ECC_PARAMETER*
    - Crypt_Int*
    - Crypt_EccCurve*
    - Crypt_Int*
    - TPM2B_DIGEST*
    - TPMT_ECC_SCHEME*
    - OBJECT*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 159
    functionName: TpmEcc_SignEcdaa
    functionSourceFile: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c
    functionUses: 0
    functionsReached:
    - TpmEcc_GenPrivateScalar
    - TpmMath_IntFrom2B
    - CRYPT_INT_MAX
    - NOT_REFERENCED
    - TpmEcc_SchnorrCalculateS
    - CRYPT_ECC_INITIALIZED
    - ExtEcc_CurveGetOrder
    - TpmMath_IntTo2B
    - CryptDigestUpdate2B
    - CryptEndCommit
    - CryptHashStart
    - CryptHashEnd2B
    - ExtEcc_CurveGetCurveId
    - CryptGenerateR
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TpmEcc_SignEcdaa(\n    TPM2B_ECC_PARAMETER*  nonceK,  // OUT:
      'nonce' component of the signature\n    Crypt_Int*            bnS,     // OUT:
      's' component of the signature\n    const Crypt_EccCurve* E,       // IN: the
      curve used in signing\n    Crypt_Int*            bnD,     // IN: the private
      key\n    const TPM2B_DIGEST*   digest,  // IN: the value to sign (mod 'q')\n
      \   TPMT_ECC_SCHEME*      scheme,  // IN: signing scheme (contains the\n                                   //
      \     commit count value).\n    OBJECT*     eccKey,            // IN: The signing
      key\n    RAND_STATE* rand               // IN: a random number state\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TimeFillInfo
      Src: /src/libtpms/src/tpm2/ClockCommands.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - ReadClock_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: TPM2_ReadClock
    functionSourceFile: /src/libtpms/src/tpm2/ClockCommands.c
    functionUses: 0
    functionsReached:
    - TimeFillInfo
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ReadClock(\n\t       ReadClock_Out   *out            //
      OUT: output parameter list\n\t       )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TimeClockUpdate
      Src: /src/libtpms/src/tpm2/ClockCommands.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - ClockSet_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: TPM2_ClockSet
    functionSourceFile: /src/libtpms/src/tpm2/ClockCommands.c
    functionUses: 0
    functionsReached:
    - TimeClockUpdate
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ClockSet(\n\t      ClockSet_In     *in             //
      IN: input parameter list\n\t      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TimeSetAdjustRate
      Src: /src/libtpms/src/tpm2/ClockCommands.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - ClockRateAdjust_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: TPM2_ClockRateAdjust
    functionSourceFile: /src/libtpms/src/tpm2/ClockCommands.c
    functionUses: 0
    functionsReached:
    - TimeSetAdjustRate
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_ClockRateAdjust(\n\t\t     ClockRateAdjust_In  *in             //
      IN: input parameter list\n\t\t     )"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/Policy_spt.c:86,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/Policy_spt.c:112,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 7
    argNames:
    - session
    - authTimeout
    - cpHashA
    - nonce
    - blameNonce
    - blameCpHash
    - blameExpiration
    argTypes:
    - SESSION*
    - UINT64
    - TPM2B_DIGEST*
    - TPM2B_NONCE*
    - TPM_RC
    - TPM_RC
    - TPM_RC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 116
    functionName: PolicyParameterChecks
    functionSourceFile: /src/libtpms/src/tpm2/Policy_spt.c
    functionUses: 3
    functionsReached:
    - MemoryEqual2B
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC PolicyParameterChecks(SESSION*      session,\n                      UINT64
      \       authTimeout,\n                      TPM2B_DIGEST* cpHashA,\n                      TPM2B_NONCE*
      \ nonce,\n                      TPM_RC        blameNonce,\n                      TPM_RC
      \       blameCpHash,\n                      TPM_RC        blameExpiration)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/Policy_spt.c:136,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Policy_spt.c:139,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Policy_spt.c:140,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Policy_spt.c:143,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/Policy_spt.c:146,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Policy_spt.c:150,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/Policy_spt.c:153,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/Policy_spt.c:160,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Policy_spt.c:163,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Policy_spt.c:166,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/Policy_spt.c:169,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 6
    argNames:
    - commandCode
    - name
    - ref
    - cpHash
    - policyTimeout
    - session
    argTypes:
    - TPM_CC
    - TPM2B_NAME*
    - TPM2B_NONCE*
    - TPM2B_DIGEST*
    - UINT64
    - SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 190
    functionName: PolicyContextUpdate
    functionSourceFile: /src/libtpms/src/tpm2/Policy_spt.c
    functionUses: 5
    functionsReached:
    - CryptHashGetDigestSize
    - CryptDigestUpdate2B
    - pAssert
    - CryptDigestUpdateInt
    - CryptHashStart
    - CryptHashEnd2B
    linkageType: ''
    returnType: void
    signature: "void PolicyContextUpdate(\n    TPM_CC        commandCode,    // IN:
      command code\n    TPM2B_NAME*   name,           // IN: name of entity\n    TPM2B_NONCE*
      \ ref,            // IN: the reference data\n    TPM2B_DIGEST* cpHash,         //
      IN: the cpHash (optional)\n    UINT64        policyTimeout,  // IN: the timeout
      value for the policy\n    SESSION*      session         // IN/OUT: policy session
      to be updated\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - session
    - expiration
    - nonce
    argTypes:
    - SESSION*
    - INT32
    - TPM2B_NONCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 226
    functionName: ComputeAuthTimeout
    functionSourceFile: /src/libtpms/src/tpm2/Policy_spt.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: UINT64
    signature: "UINT64 ComputeAuthTimeout(SESSION* session,   // IN: the session containing
      the time\n                                       //     values\n                   INT32
      expiration,   // IN: either the number of seconds from\n                                       //
      \    the start of the session or the\n                                       //
      \    time in g_timer;\n                   TPM2B_NONCE* nonce  // IN: indicator
      of the time base\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Policy_spt.c:232,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Policy_spt.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - session
    argTypes:
    - SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: PolicyDigestClear
    functionSourceFile: /src/libtpms/src/tpm2/Policy_spt.c
    functionUses: 2
    functionsReached:
    - CryptHashGetDigestSize
    - MemorySet
    linkageType: ''
    returnType: void
    signature: void PolicyDigestClear(SESSION* session)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: UnsignedCompareB
      Src: /src/libtpms/src/tpm2/Policy_spt.c:245,1
    - Dst: UnsignedCompareB
      Src: /src/libtpms/src/tpm2/Policy_spt.c:249,1
    - Dst: SignedCompareB
      Src: /src/libtpms/src/tpm2/Policy_spt.c:253,1
    - Dst: UnsignedCompareB
      Src: /src/libtpms/src/tpm2/Policy_spt.c:257,1
    - Dst: SignedCompareB
      Src: /src/libtpms/src/tpm2/Policy_spt.c:261,1
    - Dst: UnsignedCompareB
      Src: /src/libtpms/src/tpm2/Policy_spt.c:265,1
    - Dst: SignedCompareB
      Src: /src/libtpms/src/tpm2/Policy_spt.c:269,1
    - Dst: UnsignedCompareB
      Src: /src/libtpms/src/tpm2/Policy_spt.c:273,1
    - Dst: SignedCompareB
      Src: /src/libtpms/src/tpm2/Policy_spt.c:277,1
    - Dst: UnsignedCompareB
      Src: /src/libtpms/src/tpm2/Policy_spt.c:281,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/Policy_spt.c:302,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 4
    argNames:
    - operation
    - opA
    - opB
    - size
    argTypes:
    - TPM_EO
    - BYTE*
    - BYTE*
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 306
    functionName: PolicySptCheckCondition
    functionSourceFile: /src/libtpms/src/tpm2/Policy_spt.c
    functionUses: 3
    functionsReached:
    - FAIL
    - UnsignedCompareB
    - SignedCompareB
    linkageType: ''
    returnType: BOOL
    signature: BOOL PolicySptCheckCondition(TPM_EO operation, BYTE* opA, BYTE* opB,
      UINT16 size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:186,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:191,1
    - Dst: Unmarshal
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:211,1
    - Dst: f
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:223,1
    - Dst: f
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:233,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - command
    argTypes:
    - COMMAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 265
    functionName: ParseHandleBuffer
    functionSourceFile: /src/libtpms/src/tpm2/CommandDispatcher.c
    functionUses: 1
    functionsReached:
    - f
    - pAssert
    - FAIL
    - Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC ParseHandleBuffer(COMMAND* command)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MemoryIoBufferAllocationReset
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:286,1
    - Dst: GetCommandCode
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:288,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:293,1
    - Dst: MemoryIoBufferZero
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:297,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:318,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:323,1
    - Dst: MemoryIoBufferAllocationReset
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:336,1
    - Dst: MemoryGetInBuffer
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:338,1
    - Dst: MemoryGetOutBuffer
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:340,1
    - Dst: Unmarshal
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:373,1
    - Dst: f
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:382,1
    - Dst: f
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:389,1
    - Dst: COMMAND_t::inOutArg
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:426,1
    - Dst: COMMAND_t::inArg
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:428,1
    - Dst: COMMAND_t::outArg
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:433,1
    - Dst: COMMAND_t::noArgs
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:435,1
    - Dst: Marshal
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:469,1
    - Dst: f
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:475,1
    - Dst: MemoryIoBufferZero
      Src: /src/libtpms/src/tpm2/CommandDispatcher.c:481,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 86
    argCount: 1
    argNames:
    - command
    argTypes:
    - COMMAND*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 484
    functionName: CommandDispatcher
    functionSourceFile: /src/libtpms/src/tpm2/CommandDispatcher.c
    functionUses: 1
    functionsReached:
    - COMMAND_t::inArg
    - f
    - COMMAND_t::outArg
    - pAssert
    - Marshal
    - MemoryIoBufferZero
    - COMMAND_t::inOutArg
    - COMMAND_t::noArgs
    - MemoryGetInBuffer
    - MemoryIoBufferAllocationReset
    - Unmarshal
    - GetCommandCode
    - FAIL
    - MemoryGetOutBuffer
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC CommandDispatcher(COMMAND* command)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HASH
    - ','
    - Hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 499
    functionName: PCR_SAVE_SPACE
    functionSourceFile: /src/libtpms/src/tpm2/Global.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PCR_SAVE_SPACE(HASH, Hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 997
    functionDepth: 0
    functionLinenumber: 997
    functionLinenumberEnd: 998
    functionName: DefineActData
    functionSourceFile: /src/libtpms/src/tpm2/Global.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DefineActData(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1065
    functionName: DefineActPolicySpace
    functionSourceFile: /src/libtpms/src/tpm2/Global.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DefineActPolicySpace(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1205
    functionName: CONTEXT_SLOT_MASKED
    functionSourceFile: /src/libtpms/src/tpm2/Global.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONTEXT_SLOT_MASKED(val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - to
    - ','
    - from
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1231
    functionName: NV_READ_PERSISTENT
    functionSourceFile: /src/libtpms/src/tpm2/Global.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NV_READ_PERSISTENT(to, from)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - to
    - ','
    - from
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1234
    functionName: NV_WRITE_PERSISTENT
    functionSourceFile: /src/libtpms/src/tpm2/Global.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NV_WRITE_PERSISTENT(to, from)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1235
    functionDepth: 0
    functionLinenumber: 1235
    functionLinenumberEnd: 1237
    functionName: CLEAR_PERSISTENT
    functionSourceFile: /src/libtpms/src/tpm2/Global.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_PERSISTENT(item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1238
    functionDepth: 0
    functionLinenumber: 1238
    functionLinenumberEnd: 1239
    functionName: NV_SYNC_PERSISTENT
    functionSourceFile: /src/libtpms/src/tpm2/Global.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NV_SYNC_PERSISTENT(item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HASH
    - ','
    - Hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1271
    functionDepth: 0
    functionLinenumber: 1271
    functionLinenumberEnd: 1272
    functionName: CP_HASH
    functionSourceFile: /src/libtpms/src/tpm2/Global.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CP_HASH(HASH, Hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HASH
    - ','
    - Hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1272
    functionDepth: 0
    functionLinenumber: 1272
    functionLinenumberEnd: 1273
    functionName: RP_HASH
    functionSourceFile: /src/libtpms/src/tpm2/Global.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RP_HASH(HASH, Hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: HandleGetType
    functionSourceFile: /src/libtpms/src/tpm2/Handle.c
    functionUses: 36
    functionsReached: []
    linkageType: ''
    returnType: TPM_HT
    signature: 'TPM_HT HandleGetType(TPM_HANDLE handle  // IN: a handle to be checked

      )'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: FOR_EACH_ACT
      Src: /src/libtpms/src/tpm2/Handle.c:134,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 1
    argNames:
    - inHandle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 144
    functionName: NextPermanentHandle
    functionSourceFile: /src/libtpms/src/tpm2/Handle.c
    functionUses: 0
    functionsReached:
    - FOR_EACH_ACT
    linkageType: ''
    returnType: TPM_HANDLE
    signature: 'TPM_HANDLE NextPermanentHandle(TPM_HANDLE inHandle  // IN: the handle
      to check

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: ACT_IMPLEMENTED_CASE
    functionSourceFile: /src/libtpms/src/tpm2/Handle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACT_IMPLEMENTED_CASE(N)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Handle.c:162,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Handle.c:162,1
    - Dst: NextPermanentHandle
      Src: /src/libtpms/src/tpm2/Handle.c:172,1
    - Dst: NextPermanentHandle
      Src: /src/libtpms/src/tpm2/Handle.c:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - handle
    - count
    - handleList
    argTypes:
    - TPM_HANDLE
    - UINT32
    - TPML_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 190
    functionName: PermanentCapGetHandles
    functionSourceFile: /src/libtpms/src/tpm2/Handle.c
    functionUses: 0
    functionsReached:
    - NextPermanentHandle
    - pAssert
    - HandleGetType
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO PermanentCapGetHandles(TPM_HANDLE   handle,     // IN:
      start handle\n                       UINT32       count,      // IN: count of
      returned handles\n                       TPML_HANDLE* handleList  // OUT: list
      of handle\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Handle.c:198,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Handle.c:198,1
    - Dst: NextPermanentHandle
      Src: /src/libtpms/src/tpm2/Handle.c:201,1
    - Dst: NextPermanentHandle
      Src: /src/libtpms/src/tpm2/Handle.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: PermanentCapGetOneHandle
    functionSourceFile: /src/libtpms/src/tpm2/Handle.c
    functionUses: 1
    functionsReached:
    - NextPermanentHandle
    - pAssert
    - HandleGetType
    linkageType: ''
    returnType: BOOL
    signature: BOOL PermanentCapGetOneHandle(TPM_HANDLE handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Handle.c:226,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Handle.c:226,1
    - Dst: NextPermanentHandle
      Src: /src/libtpms/src/tpm2/Handle.c:236,1
    - Dst: NextPermanentHandle
      Src: /src/libtpms/src/tpm2/Handle.c:237,1
    - Dst: EntityGetAuthPolicy
      Src: /src/libtpms/src/tpm2/Handle.c:242,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/Handle.c:251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - handle
    - count
    - policyList
    argTypes:
    - TPM_HANDLE
    - UINT32
    - TPML_TAGGED_POLICY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 218
    functionDepth: 4
    functionLinenumber: 218
    functionLinenumberEnd: 265
    functionName: PermanentHandleGetPolicy
    functionSourceFile: /src/libtpms/src/tpm2/Handle.c
    functionUses: 0
    functionsReached:
    - MemoryCopy
    - EntityGetAuthPolicy
    - pAssert
    - HandleGetType
    - NextPermanentHandle
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO PermanentHandleGetPolicy(TPM_HANDLE handle,  // IN: start
      handle\n                         UINT32     count,   // IN: max count of returned
      handles\n                         TPML_TAGGED_POLICY* policyList  // OUT: list
      of handle\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Handle.c:273,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Handle.c:273,1
    - Dst: NextPermanentHandle
      Src: /src/libtpms/src/tpm2/Handle.c:275,1
    - Dst: EntityGetAuthPolicy
      Src: /src/libtpms/src/tpm2/Handle.c:280,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/Handle.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - handle
    - policy
    argTypes:
    - TPM_HANDLE
    - TPMS_TAGGED_POLICY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 269
    functionDepth: 4
    functionLinenumber: 269
    functionLinenumberEnd: 292
    functionName: PermanentHandleGetOnePolicy
    functionSourceFile: /src/libtpms/src/tpm2/Handle.c
    functionUses: 1
    functionsReached:
    - MemoryCopy
    - EntityGetAuthPolicy
    - pAssert
    - HandleGetType
    - NextPermanentHandle
    linkageType: ''
    returnType: BOOL
    signature: "BOOL PermanentHandleGetOnePolicy(TPM_HANDLE          handle,  // IN:
      handle\n                                 TPMS_TAGGED_POLICY* policy   // OUT:
      tagged policy\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: TO_ECC_56
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_ECC_56(a, b, c, d, e, f, g)
  - 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: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: TO_ECC_48
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_ECC_48(a, b, c, d, e, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: TO_ECC_40
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_ECC_40(a, b, c, d, e)
  - 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: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: TO_ECC_32
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_ECC_32(a, b, c, d)
  - 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: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: TO_ECC_24
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_ECC_24(a, b, c)
  - 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: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: TO_ECC_16
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_ECC_16(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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: TO_ECC_8
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_ECC_8(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: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: TO_ECC_24
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_ECC_24(a, b, c)
  - 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: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: TO_ECC_16
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_ECC_16(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: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: TO_ECC_8
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_ECC_8(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: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: TO_ECC_192
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_ECC_192(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: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: TO_ECC_224
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_ECC_224(a, b, c, d)
  - 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: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: TO_ECC_256
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_ECC_256(a, b, c, d)
  - 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: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: TO_ECC_384
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_ECC_384(a, b, c, d, e, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - )
    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: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: TO_ECC_528
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_ECC_528(a, b, c, d, e, f, g, h, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - )
    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: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: TO_ECC_640
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_ECC_640(a, b, c, d, e, f, g, h, i, j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: BN_MIN_ALLOC
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_MIN_ALLOC(bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - NAME
    - ','
    - bytes
    - ','
    - initializer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: ECC_CONST
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ECC_CONST(NAME, bytes, initializer)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - curveId
    argTypes:
    - TPM_ECC_CURVE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 248
    functionName: BnGetCurveData
    functionSourceFile: /src/libtpms/src/tpm2/BnEccConstants.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: TPMBN_ECC_CURVE_CONSTANTS
    signature: TPMBN_ECC_CURVE_CONSTANTS * BnGetCurveData(TPM_ECC_CURVE curveId)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:91,1
    - Dst: CryptTestAlgorithm
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - toTest
    argTypes:
    - ALGORITHM_VECTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 99
    functionName: CryptRunSelfTests
    functionSourceFile: /src/libtpms/src/tpm2/CryptSelfTest.c
    functionUses: 0
    functionsReached:
    - CryptTestAlgorithm
    - TEST_BIT
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CryptRunSelfTests(\n    ALGORITHM_VECTOR* toTest  // IN: the
      vector of the algorithms to test\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:121,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:128,1
    - Dst: CryptRunSelfTests
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fullTest
    argTypes:
    - TPMI_YES_NO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 131
    functionName: CryptSelfTest
    functionSourceFile: /src/libtpms/src/tpm2/CryptSelfTest.c
    functionUses: 1
    functionsReached:
    - FAIL
    - MemoryCopy
    - CryptRunSelfTests
    linkageType: ''
    returnType: LIB_EXPORT
    signature: 'LIB_EXPORT CryptSelfTest(TPMI_YES_NO fullTest  // IN: if full test
      is required

      )'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:154,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:163,1
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:166,1
    - Dst: SET_BIT
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:170,1
    - Dst: CryptRunSelfTests
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:173,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:183,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - toTest
    - toDoList
    argTypes:
    - TPML_ALG*
    - TPML_ALG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 187
    functionName: CryptIncrementalSelfTest
    functionSourceFile: /src/libtpms/src/tpm2/CryptSelfTest.c
    functionUses: 1
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - pAssert
    - CryptRunSelfTests
    - TEST_BIT
    - SET_BIT
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CryptIncrementalSelfTest(TPML_ALG* toTest,   // IN: list of
      algorithms to be tested\n                         TPML_ALG* toDoList  // OUT:
      list of algorithms needing test\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:196,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:199,1
    - Dst: CryptTestAlgorithm
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 206
    functionName: CryptInitializeToTest
    functionSourceFile: /src/libtpms/src/tpm2/CryptSelfTest.c
    functionUses: 1
    functionsReached:
    - MemoryCopy
    - CryptTestAlgorithm
    - memset
    linkageType: ''
    returnType: void
    signature: void CryptInitializeToTest(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TestAlgorithm
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:226,1
    - Dst: CLEAR_BIT
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:235,1
    - Dst: CLEAR_BIT
      Src: /src/libtpms/src/tpm2/CryptSelfTest.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - alg
    - toTest
    argTypes:
    - TPM_ALG_ID
    - ALGORITHM_VECTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 220
    functionDepth: 6
    functionLinenumber: 220
    functionLinenumberEnd: 242
    functionName: CryptTestAlgorithm
    functionSourceFile: /src/libtpms/src/tpm2/CryptSelfTest.c
    functionUses: 2
    functionsReached:
    - CLEAR_BIT
    - TestAlgorithm
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT CryptTestAlgorithm(TPM_ALG_ID alg, ALGORITHM_VECTOR* toTest)
  - 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: _plat__LocalityGet
    functionSourceFile: /src/libtpms/src/tpm2/LocalityPlat.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT unsigned
    signature: LIB_EXPORT unsigned _plat__LocalityGet(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - locality
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: _plat__LocalitySet
    functionSourceFile: /src/libtpms/src/tpm2/LocalityPlat.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__LocalitySet(unsigned char locality)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _plat__TimerRead
      Src: /src/libtpms/src/tpm2/Time.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: TimePowerOn
    functionSourceFile: /src/libtpms/src/tpm2/Time.c
    functionUses: 1
    functionsReached:
    - _plat__TimerRead
    linkageType: ''
    returnType: void
    signature: void TimePowerOn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/Time.c:92,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Time.c:96,1
    - Dst: _plat__TimerWasStopped
      Src: /src/libtpms/src/tpm2/Time.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: TimeNewEpoch
    functionSourceFile: /src/libtpms/src/tpm2/Time.c
    functionUses: 0
    functionsReached:
    - _plat__TimerWasStopped
    - NV_SYNC_PERSISTENT
    - CryptRandomGenerate
    linkageType: ''
    returnType: void
    signature: void TimeNewEpoch(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/Time.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - STARTUP_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: TimeStartup
    functionSourceFile: /src/libtpms/src/tpm2/Time.c
    functionUses: 1
    functionsReached:
    - NOT_REFERENCED
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL TimeStartup(STARTUP_TYPE type  // IN: start up type

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Time.c:136,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/Time.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - newTime
    argTypes:
    - UINT64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 157
    functionName: TimeClockUpdate
    functionSourceFile: /src/libtpms/src/tpm2/Time.c
    functionUses: 1
    functionsReached:
    - NvWrite
    - pAssert
    linkageType: ''
    returnType: void
    signature: 'void TimeClockUpdate(UINT64 newTime  // IN: New time value in mS.

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _plat__TimerWasStopped
      Src: /src/libtpms/src/tpm2/Time.c:172,1
    - Dst: TimeNewEpoch
      Src: /src/libtpms/src/tpm2/Time.c:174,1
    - Dst: _plat__TimerRead
      Src: /src/libtpms/src/tpm2/Time.c:178,1
    - Dst: TimeClockUpdate
      Src: /src/libtpms/src/tpm2/Time.c:184,1
    - Dst: DASelfHeal
      Src: /src/libtpms/src/tpm2/Time.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 188
    functionName: TimeUpdate
    functionSourceFile: /src/libtpms/src/tpm2/Time.c
    functionUses: 0
    functionsReached:
    - _plat__TimerWasStopped
    - TimeClockUpdate
    - _plat__TimerRead
    - TimeNewEpoch
    - DASelfHeal
    linkageType: ''
    returnType: void
    signature: void TimeUpdate(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMIsStarted
      Src: /src/libtpms/src/tpm2/Time.c:211,1
    - Dst: TimeUpdate
      Src: /src/libtpms/src/tpm2/Time.c:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 215
    functionName: TimeUpdateToCurrent
    functionSourceFile: /src/libtpms/src/tpm2/Time.c
    functionUses: 1
    functionsReached:
    - TimeUpdate
    - TPMIsStarted
    linkageType: ''
    returnType: void
    signature: void TimeUpdateToCurrent(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _plat__ClockRateAdjust
      Src: /src/libtpms/src/tpm2/Time.c:225,1
    - Dst: _plat__ClockRateAdjust
      Src: /src/libtpms/src/tpm2/Time.c:228,1
    - Dst: _plat__ClockRateAdjust
      Src: /src/libtpms/src/tpm2/Time.c:231,1
    - Dst: _plat__ClockRateAdjust
      Src: /src/libtpms/src/tpm2/Time.c:234,1
    - Dst: _plat__ClockRateAdjust
      Src: /src/libtpms/src/tpm2/Time.c:237,1
    - Dst: _plat__ClockRateAdjust
      Src: /src/libtpms/src/tpm2/Time.c:240,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/Time.c:246,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - adjust
    argTypes:
    - TPM_CLOCK_ADJUST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 251
    functionName: TimeSetAdjustRate
    functionSourceFile: /src/libtpms/src/tpm2/Time.c
    functionUses: 1
    functionsReached:
    - FAIL
    - _plat__ClockRateAdjust
    linkageType: ''
    returnType: void
    signature: 'void TimeSetAdjustRate(TPM_CLOCK_ADJUST adjust  // IN: adjust constant

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TimeFillInfo
      Src: /src/libtpms/src/tpm2/Time.c:265,1
    - Dst: TPMS_TIME_INFO_Marshal
      Src: /src/libtpms/src/tpm2/Time.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dataBuffer
    argTypes:
    - TIME_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 257
    functionDepth: 5
    functionLinenumber: 257
    functionLinenumberEnd: 269
    functionName: TimeGetMarshaled
    functionSourceFile: /src/libtpms/src/tpm2/Time.c
    functionUses: 1
    functionsReached:
    - TimeFillInfo
    - TPMS_TIME_INFO_Marshal
    linkageType: ''
    returnType: UINT16
    signature: 'UINT16 TimeGetMarshaled(TIME_INFO* dataBuffer  // OUT: result buffer

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - clockInfo
    argTypes:
    - TPMS_CLOCK_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 287
    functionName: TimeFillInfo
    functionSourceFile: /src/libtpms/src/tpm2/Time.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TimeFillInfo(TPMS_CLOCK_INFO* clockInfo)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm2/LibtpmsCallbacks.c:56,1
    - Dst: GetCachedState
      Src: /src/libtpms/src/tpm2/LibtpmsCallbacks.c:61,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/LibtpmsCallbacks.c:63,1
    - Dst: struct libtpms_callbacks*::tpm_nvram_loaddata
      Src: /src/libtpms/src/tpm2/LibtpmsCallbacks.c:72,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/LibtpmsCallbacks.c:78,1
    - Dst: PERSISTENT_ALL_Unmarshal
      Src: /src/libtpms/src/tpm2/LibtpmsCallbacks.c:95,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/LibtpmsCallbacks.c:96,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 51
    functionDepth: 11
    functionLinenumber: 51
    functionLinenumberEnd: 102
    functionName: libtpms_plat__NVEnable
    functionSourceFile: /src/libtpms/src/tpm2/LibtpmsCallbacks.c
    functionUses: 1
    functionsReached:
    - TPMLIB_GetCallbacks
    - memset
    - GetCachedState
    - PERSISTENT_ALL_Unmarshal
    - struct libtpms_callbacks*::tpm_nvram_loaddata
    - free
    linkageType: ''
    returnType: int
    signature: int libtpms_plat__NVEnable(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm2/LibtpmsCallbacks.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 114
    functionName: libtpms_plat__NVDisable
    functionSourceFile: /src/libtpms/src/tpm2/LibtpmsCallbacks.c
    functionUses: 1
    functionsReached:
    - TPMLIB_GetCallbacks
    linkageType: ''
    returnType: int
    signature: "int libtpms_plat__NVDisable(\n\t\t void\n\t\t )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm2/LibtpmsCallbacks.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 128
    functionName: libtpms_plat__IsNvAvailable
    functionSourceFile: /src/libtpms/src/tpm2/LibtpmsCallbacks.c
    functionUses: 1
    functionsReached:
    - TPMLIB_GetCallbacks
    linkageType: ''
    returnType: int
    signature: "int libtpms_plat__IsNvAvailable(\n\t\t     void\n\t\t     )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm2/LibtpmsCallbacks.c:135,1
    - Dst: TPM2_PersistentAllStore
      Src: /src/libtpms/src/tpm2/LibtpmsCallbacks.c:144,1
    - Dst: struct libtpms_callbacks*::tpm_nvram_storedata
      Src: /src/libtpms/src/tpm2/LibtpmsCallbacks.c:148,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/LibtpmsCallbacks.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 157
    functionName: libtpms_plat__NvCommit
    functionSourceFile: /src/libtpms/src/tpm2/LibtpmsCallbacks.c
    functionUses: 1
    functionsReached:
    - TPMLIB_GetCallbacks
    - TPM2_PersistentAllStore
    - free
    - struct libtpms_callbacks*::tpm_nvram_storedata
    linkageType: ''
    returnType: int
    signature: "int libtpms_plat__NvCommit(\n\t\tvoid\n\t\t)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_GetCallbacks
      Src: /src/libtpms/src/tpm2/LibtpmsCallbacks.c:164,1
    - Dst: struct libtpms_callbacks*::tpm_io_getphysicalpresence
      Src: /src/libtpms/src/tpm2/LibtpmsCallbacks.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pp
    argTypes:
    - BOOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 178
    functionName: libtpms_plat__PhysicalPresenceAsserted
    functionSourceFile: /src/libtpms/src/tpm2/LibtpmsCallbacks.c
    functionUses: 1
    functionsReached:
    - struct libtpms_callbacks*::tpm_io_getphysicalpresence
    - TPMLIB_GetCallbacks
    linkageType: ''
    returnType: int
    signature: "int libtpms_plat__PhysicalPresenceAsserted(\n\t\t\t\tBOOL *pp\n\t\t\t\t)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_INT_MAX_INITIALIZED
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:84,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:85,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:86,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:87,1
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:88,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:90,1
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:90,1
    - Dst: ExtMath_SizeInBits
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:93,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:95,1
    - Dst: TpmEccDebug_FromHex
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:102,1
    - Dst: TpmEccDebug_FromHex
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:106,1
    - Dst: TpmMath_GetRandomInRange
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:126,1
    - Dst: ExtMath_Add
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:127,1
    - Dst: TpmEccDebug_FromHex
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:129,1
    - Dst: ExtEcc_PointMultiply
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:137,1
    - Dst: BnGenerateRandomInRangeAllBytes
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:140,1
    - Dst: TpmEccDebug_FromHex
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:142,1
    - Dst: ExtEcc_PointMultiply
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:147,1
    - Dst: ExtMath_Add
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:151,1
    - Dst: ExtEcc_PointX
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:151,1
    - Dst: ExtMath_Mod
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:152,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:154,1
    - Dst: TpmEccDebug_HexEqual
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:154,1
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:159,1
    - Dst: ExtMath_Add
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:161,1
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:162,1
    - Dst: ExtMath_AddWord
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:167,1
    - Dst: ExtMath_ModInverse
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:168,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:170,1
    - Dst: TpmEccDebug_HexEqual
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:170,1
    - Dst: ExtMath_ModMult
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:175,1
    - Dst: ExtMath_Subtract
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:177,1
    - Dst: ExtMath_Add
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:178,1
    - Dst: ExtMath_ModMult
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:179,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:181,1
    - Dst: TpmEccDebug_HexEqual
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:181,1
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:185,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:193,1
    - Dst: TpmEccDebug_HexEqual
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:193,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:196,1
    - Dst: TpmEccDebug_HexEqual
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:196,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 6
    argNames:
    - bnR
    - bnS
    - E
    - bnD
    - digest
    - rand
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_EccCurve*
    - Crypt_Int*
    - TPM2B_DIGEST*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 75
    functionDepth: 6
    functionLinenumber: 75
    functionLinenumberEnd: 201
    functionName: TpmEcc_SignEcSm2
    functionSourceFile: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c
    functionUses: 0
    functionsReached:
    - TpmMath_GetRandomInRange
    - ExtMath_Add
    - ExtEcc_PointMultiply
    - TpmEccDebug_HexEqual
    - ExtMath_AddWord
    - pAssert
    - CRYPT_ECC_NUM
    - CRYPT_POINT_VAR
    - ExtEcc_CurveGetOrder
    - ExtMath_UnsignedCmp
    - ExtMath_SizeInBits
    - ExtEcc_PointX
    - ExtMath_Mod
    - ExtEcc_CurveGetCurveId
    - TpmEccDebug_FromHex
    - ExtMath_ModInverse
    - ExtMath_IsZero
    - CRYPT_INT_MAX_INITIALIZED
    - ExtMath_ModMult
    - BnGenerateRandomInRangeAllBytes
    - ExtMath_Subtract
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TpmEcc_SignEcSm2(Crypt_Int* bnR,  // OUT: 'r' component of
      the signature\n                        Crypt_Int* bnS,  // OUT: 's' component
      of the signature\n                        const Crypt_EccCurve* E,    // IN:
      the curve used in signing\n                        Crypt_Int*            bnD,
      \ // IN: the private key\n                        const TPM2B_DIGEST*   digest,
      \ // IN: the digest to sign\n                        RAND_STATE* rand  // IN:
      random number generator (mostly for\n                                          //
      \    debug)\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:216,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:217,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:218,1
    - Dst: CRYPT_INT_MAX_INITIALIZED
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:219,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:221,1
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:221,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:223,1
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:224,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:230,1
    - Dst: TpmEccDebug_HexEqual
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:230,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:233,1
    - Dst: TpmEccDebug_HexEqual
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:233,1
    - Dst: ExtMath_Add
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:238,1
    - Dst: ExtMath_Mod
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:239,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:241,1
    - Dst: TpmEccDebug_HexEqual
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:241,1
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:246,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:250,1
    - Dst: ExtEcc_PointMultiplyAndAdd
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:252,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:254,1
    - Dst: TpmEccDebug_HexEqual
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:255,1
    - Dst: ExtEcc_PointX
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:255,1
    - Dst: ExtMath_Add
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:260,1
    - Dst: ExtEcc_PointX
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:260,1
    - Dst: ExtMath_Mod
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:261,1
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c:264,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 5
    argNames:
    - bnR
    - bnS
    - E
    - ecQ
    - digest
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    - Crypt_EccCurve*
    - Crypt_Point*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 207
    functionDepth: 6
    functionLinenumber: 207
    functionLinenumberEnd: 270
    functionName: TpmEcc_ValidateSignatureEcSm2
    functionSourceFile: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - ExtMath_Add
    - ExtEcc_CurveGetOrder
    - ExtMath_Copy
    - TpmEccDebug_HexEqual
    - ExtEcc_PointMultiplyAndAdd
    - pAssert
    - ExtMath_IsZero
    - ExtMath_UnsignedCmp
    - CRYPT_INT_MAX_INITIALIZED
    - CRYPT_ECC_NUM
    - ExtMath_Mod
    - ExtEcc_PointX
    - ExtEcc_CurveGetCurveId
    - CRYPT_POINT_VAR
    - RuntimeProfileRequiresAttributeFlags
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TpmEcc_ValidateSignatureEcSm2(\n    Crypt_Int*            bnR,
      \ // IN: 'r' component of the signature\n    Crypt_Int*            bnS,  //
      IN: 's' component of the signature\n    const Crypt_EccCurve* E,    // IN: the
      curve used in the signature\n                                //     process\n
      \   Crypt_Point*        ecQ,    // IN: the public point of the key\n    const
      TPM2B_DIGEST* digest  // IN: the digest that was signed\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/RandomCommands.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - GetRandom_In*
    - GetRandom_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: TPM2_GetRandom
    functionSourceFile: /src/libtpms/src/tpm2/RandomCommands.c
    functionUses: 0
    functionsReached:
    - CryptRandomGenerate
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_GetRandom(\n\t       GetRandom_In    *in,            //
      IN: input parameter list\n\t       GetRandom_Out   *out            // OUT: output
      parameter list\n\t       )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptRandomStir
      Src: /src/libtpms/src/tpm2/RandomCommands.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - StirRandom_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: TPM2_StirRandom
    functionSourceFile: /src/libtpms/src/tpm2/RandomCommands.c
    functionUses: 0
    functionsReached:
    - CryptRandomStir
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_StirRandom(\n\t\tStirRandom_In   *in             // IN:
      input parameter list\n\t\t)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/X509_spt.c:96,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/X509_spt.c:108,1
    - Dst: ASN1NextTag
      Src: /src/libtpms/src/tpm2/X509_spt.c:108,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/X509_spt.c:111,1
    - Dst: OID_SIZE
      Src: /src/libtpms/src/tpm2/X509_spt.c:113,1
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/X509_spt.c:116,1
    - Dst: OID_SIZE
      Src: /src/libtpms/src/tpm2/X509_spt.c:116,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/X509_spt.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - ctxIn
    - ctx
    - OID
    argTypes:
    - ASN1UnmarshalContext*
    - ASN1UnmarshalContext*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 133
    functionName: X509FindExtensionByOID
    functionSourceFile: /src/libtpms/src/tpm2/X509_spt.c
    functionUses: 0
    functionsReached:
    - GOTO_ERROR_UNLESS
    - OID_SIZE
    - pAssert
    - ASN1NextTag
    - MemoryEqual
    linkageType: ''
    returnType: BOOL
    signature: "BOOL X509FindExtensionByOID(ASN1UnmarshalContext* ctxIn,  // IN: the
      context to search\n                            ASN1UnmarshalContext* ctx,  //
      OUT: the extension context\n                            const BYTE*           OID
      \  // IN: oid to search for\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1NextTag
      Src: /src/libtpms/src/tpm2/X509_spt.c:146,1
    - Dst: ASN1GetBitStringValue
      Src: /src/libtpms/src/tpm2/X509_spt.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - value
    argTypes:
    - ASN1UnmarshalContext*
    - UINT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 157
    functionName: X509GetExtensionBits
    functionSourceFile: /src/libtpms/src/tpm2/X509_spt.c
    functionUses: 0
    functionsReached:
    - ASN1GetBitStringValue
    - ASN1NextTag
    linkageType: ''
    returnType: UINT32
    signature: UINT32 X509GetExtensionBits(ASN1UnmarshalContext* ctx, UINT32* value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ASN1UnmarshalContextInitialize
      Src: /src/libtpms/src/tpm2/X509_spt.c:179,1
    - Dst: ASN1NextTag
      Src: /src/libtpms/src/tpm2/X509_spt.c:180,1
    - Dst: ASN1NextTag
      Src: /src/libtpms/src/tpm2/X509_spt.c:182,1
    - Dst: X509FindExtensionByOID
      Src: /src/libtpms/src/tpm2/X509_spt.c:186,1
    - Dst: X509GetExtensionBits
      Src: /src/libtpms/src/tpm2/X509_spt.c:187,1
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/X509_spt.c:193,1
    - Dst: X509FindExtensionByOID
      Src: /src/libtpms/src/tpm2/X509_spt.c:201,1
    - Dst: X509GetExtensionBits
      Src: /src/libtpms/src/tpm2/X509_spt.c:202,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/X509_spt.c:220,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/X509_spt.c:223,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/X509_spt.c:225,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/X509_spt.c:226,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/X509_spt.c:229,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/X509_spt.c:230,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 24
    argCount: 2
    argNames:
    - object
    - extension
    argTypes:
    - OBJECT*
    - stringRef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 239
    functionName: X509ProcessExtensions
    functionSourceFile: /src/libtpms/src/tpm2/X509_spt.c
    functionUses: 1
    functionsReached:
    - IS_ATTRIBUTE
    - X509FindExtensionByOID
    - ASN1NextTag
    - ASN1UnmarshalContextInitialize
    - X509GetExtensionBits
    - MemoryEqual
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC X509ProcessExtensions(\n    OBJECT* object,       // IN: The
      object with the attributes to\n                          //      check\n    stringRef*
      extension  // IN: The start and length of the extensions\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509AddSigningAlgorithmRSA
      Src: /src/libtpms/src/tpm2/X509_spt.c:256,1
    - Dst: X509AddSigningAlgorithmECC
      Src: /src/libtpms/src/tpm2/X509_spt.c:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - signKey
    - scheme
    argTypes:
    - ASN1MarshalContext*
    - OBJECT*
    - TPMT_SIG_SCHEME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 271
    functionName: X509AddSigningAlgorithm
    functionSourceFile: /src/libtpms/src/tpm2/X509_spt.c
    functionUses: 1
    functionsReached:
    - X509AddSigningAlgorithmECC
    - X509AddSigningAlgorithmRSA
    linkageType: ''
    returnType: INT16
    signature: "INT16 X509AddSigningAlgorithm(\n    ASN1MarshalContext* ctx, OBJECT*
      signKey, TPMT_SIG_SCHEME* scheme)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: X509AddPublicRSA
      Src: /src/libtpms/src/tpm2/X509_spt.c:287,1
    - Dst: X509AddPublicECC
      Src: /src/libtpms/src/tpm2/X509_spt.c:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - object
    argTypes:
    - ASN1MarshalContext*
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 301
    functionName: X509AddPublicKey
    functionSourceFile: /src/libtpms/src/tpm2/X509_spt.c
    functionUses: 1
    functionsReached:
    - X509AddPublicRSA
    - X509AddPublicECC
    linkageType: ''
    returnType: INT16
    signature: INT16 X509AddPublicKey(ASN1MarshalContext* ctx, OBJECT* object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1StartMarshalContext
      Src: /src/libtpms/src/tpm2/X509_spt.c:315,1
    - Dst: ASN1PushNull
      Src: /src/libtpms/src/tpm2/X509_spt.c:316,1
    - Dst: ASN1PushOID
      Src: /src/libtpms/src/tpm2/X509_spt.c:317,1
    - Dst: ASN1EndEncapsulation
      Src: /src/libtpms/src/tpm2/X509_spt.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - OID
    argTypes:
    - ASN1MarshalContext*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 319
    functionName: X509PushAlgorithmIdentifierSequence
    functionSourceFile: /src/libtpms/src/tpm2/X509_spt.c
    functionUses: 0
    functionsReached:
    - ASN1PushOID
    - ASN1EndEncapsulation
    - ASN1PushNull
    - ASN1StartMarshalContext
    linkageType: ''
    returnType: INT16
    signature: INT16 X509PushAlgorithmIdentifierSequence(ASN1MarshalContext* ctx,
      const BYTE* OID)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - UINT8*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: UINT8_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC UINT8_Unmarshal(UINT8 *target, BYTE **buffer, INT32 *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - INT8*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: INT8_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 8
    functionsReached:
    - UINT8_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC INT8_Unmarshal(INT8 *target, BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - UINT16*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: UINT16_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC UINT16_Unmarshal(UINT16 *target, BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - UINT32*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: UINT32_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC UINT32_Unmarshal(UINT32 *target, BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - UINT64*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: UINT64_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC UINT64_Unmarshal(UINT64 *target, BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/Unmarshal.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - targetBuffer
    - targetSize
    - buffer
    - size
    argTypes:
    - BYTE*
    - UINT16
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 126
    functionName: Array_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 13
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC Array_Unmarshal(BYTE *targetBuffer, UINT16 targetSize, BYTE
      **buffer, INT32 *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:134,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - target
    - targetSize
    - buffer
    - size
    argTypes:
    - TPM2B*
    - UINT16
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 146
    functionName: TPM2B_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 5
    functionsReached:
    - Array_Unmarshal
    - UINT16_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_Unmarshal(TPM2B *target, UINT16 targetSize, BYTE **buffer,
      INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM_KEY_BITS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: TPM_KEY_BITS_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM_KEY_BITS_Unmarshal(TPM_KEY_BITS *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM_GENERATED*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: TPM_GENERATED_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM_GENERATED_Unmarshal(TPM_GENERATED *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM_ALG_ID*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: TPM_ALG_ID_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 6
    functionsReached:
    - UINT16_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM_ALG_ID_Unmarshal(TPM_ALG_ID *target, BYTE **buffer, INT32
      *size)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:206,1
    - Dst: CryptEccIsCurveRuntimeUsable
      Src: /src/libtpms/src/tpm2/Unmarshal.c:251,1
    - Dst: RuntimeAlgorithmKeySizeCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:254,1
    - Dst: CryptEccGetKeySizeForCurve
      Src: /src/libtpms/src/tpm2/Unmarshal.c:256,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM_ECC_CURVE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 270
    functionName: TPM_ECC_CURVE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmKeySizeCheckEnabled
    - UINT16_Unmarshal
    - CryptEccGetKeySizeForCurve
    - CryptEccIsCurveRuntimeUsable
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM_ECC_CURVE_Unmarshal(TPM_ECC_CURVE *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM_RC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 284
    functionName: TPM_CC_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM_CC_Unmarshal(TPM_RC *target, BYTE **buffer, INT32 *size)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: INT8_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:295,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM_CLOCK_ADJUST*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 313
    functionName: TPM_CLOCK_ADJUST_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - INT8_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM_CLOCK_ADJUST_Unmarshal(TPM_CLOCK_ADJUST *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:324,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM_EO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 347
    functionName: TPM_EO_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM_EO_Unmarshal(TPM_EO *target, BYTE **buffer, INT32 *size)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:358,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM_ST*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 385
    functionName: TPM_ST_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM_ST_Unmarshal(TPM_ST *target, BYTE **buffer, INT32 *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:396,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM_SU*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 409
    functionName: TPM_SU_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM_SU_Unmarshal(TPM_SU *target, BYTE **buffer, INT32 *size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM_SE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 434
    functionName: TPM_SE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT8_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM_SE_Unmarshal(TPM_SE *target, BYTE **buffer, INT32 *size)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:445,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM_CAP*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 468
    functionName: TPM_CAP_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM_CAP_Unmarshal(TPM_CAP *target, BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM_HANDLE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 481
    functionName: TPM_PT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM_PT_Unmarshal(TPM_HANDLE *target, BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM_PT_PCR*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 494
    functionName: TPM_PT_PCR_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM_PT_PCR_Unmarshal(TPM_PT_PCR *target, BYTE **buffer, INT32
      *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM_HANDLE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 507
    functionName: TPM_HANDLE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 4
    functionsReached:
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM_HANDLE_Unmarshal(TPM_HANDLE *target, BYTE **buffer, INT32
      *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMA_ALGORITHM*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 527
    functionName: TPMA_ALGORITHM_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMA_ALGORITHM_Unmarshal(TPMA_ALGORITHM *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMA_OBJECT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 547
    functionName: TPMA_OBJECT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 2
    functionsReached:
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMA_OBJECT_Unmarshal(TPMA_OBJECT *target, BYTE **buffer, INT32
      *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMA_SESSION*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 567
    functionName: TPMA_SESSION_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 2
    functionsReached:
    - UINT8_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMA_SESSION_Unmarshal(TPMA_SESSION *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMA_LOCALITY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 580
    functionName: TPMA_LOCALITY_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - UINT8_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMA_LOCALITY_Unmarshal(TPMA_LOCALITY *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMA_CC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 600
    functionName: TPMA_CC_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMA_CC_Unmarshal(TPMA_CC *target, BYTE **buffer, INT32 *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:611,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_YES_NO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 624
    functionName: TPMI_YES_NO_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT8_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_YES_NO_Unmarshal(TPMI_YES_NO *target, BYTE **buffer, INT32
      *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:635,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_DH_OBJECT*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 649
    functionName: TPMI_DH_OBJECT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_DH_OBJECT_Unmarshal(TPMI_DH_OBJECT *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:660,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 11
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_DH_PARENT*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 680
    functionName: TPMI_DH_PARENT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_DH_PARENT_Unmarshal(TPMI_DH_PARENT *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:691,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_DH_PERSISTENT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 684
    functionDepth: 2
    functionLinenumber: 684
    functionLinenumberEnd: 701
    functionName: TPMI_DH_PERSISTENT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_DH_PERSISTENT_Unmarshal(TPMI_DH_PERSISTENT *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:712,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 11
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_DH_ENTITY*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 740
    functionName: TPMI_DH_ENTITY_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_DH_ENTITY_Unmarshal(TPMI_DH_ENTITY *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:751,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_DH_PCR*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 744
    functionDepth: 2
    functionLinenumber: 744
    functionLinenumberEnd: 763
    functionName: TPMI_DH_PCR_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_DH_PCR_Unmarshal(TPMI_DH_PCR *target, BYTE **buffer, INT32
      *size, BOOL allowNull)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:774,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowPwd
    argTypes:
    - TPMI_SH_AUTH_SESSION*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 767
    functionDepth: 2
    functionLinenumber: 767
    functionLinenumberEnd: 788
    functionName: TPMI_SH_AUTH_SESSION_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_SH_AUTH_SESSION_Unmarshal(TPMI_SH_AUTH_SESSION *target,
      BYTE **buffer, INT32 *size, BOOL allowPwd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:799,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_SH_HMAC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 792
    functionDepth: 2
    functionLinenumber: 792
    functionLinenumberEnd: 809
    functionName: TPMI_SH_HMAC_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_SH_HMAC_Unmarshal(TPMI_SH_HMAC *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:820,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_SH_POLICY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 830
    functionName: TPMI_SH_POLICY_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_SH_POLICY_Unmarshal(TPMI_SH_POLICY *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:841,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_DH_CONTEXT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 834
    functionDepth: 2
    functionLinenumber: 834
    functionLinenumberEnd: 855
    functionName: TPMI_DH_CONTEXT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_DH_CONTEXT_Unmarshal(TPMI_DH_CONTEXT *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:867,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_DH_SAVED*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 859
    functionDepth: 2
    functionLinenumber: 859
    functionLinenumberEnd: 885
    functionName: TPMI_DH_SAVED_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_DH_SAVED_Unmarshal(TPMI_DH_SAVED *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:896,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_RH_HIERARCHY*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 889
    functionDepth: 2
    functionLinenumber: 889
    functionLinenumberEnd: 915
    functionName: TPMI_RH_HIERARCHY_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RH_HIERARCHY_Unmarshal(TPMI_RH_HIERARCHY *target, BYTE
      **buffer, INT32 *size, BOOL allowNull)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:926,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_RH_ENABLES*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 919
    functionDepth: 2
    functionLinenumber: 919
    functionLinenumberEnd: 946
    functionName: TPMI_RH_ENABLES_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RH_ENABLES_Unmarshal(TPMI_RH_ENABLES *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:957,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_RH_HIERARCHY_AUTH*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 950
    functionDepth: 2
    functionLinenumber: 950
    functionLinenumberEnd: 972
    functionName: TPMI_RH_HIERARCHY_AUTH_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RH_HIERARCHY_AUTH_Unmarshal(TPMI_RH_HIERARCHY_AUTH *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:983,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_RH_HIERARCHY_POLICY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 976
    functionDepth: 2
    functionLinenumber: 976
    functionLinenumberEnd: 1003
    functionName: TPMI_RH_HIERARCHY_POLICY_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RH_HIERARCHY_POLICY_Unmarshal(TPMI_RH_HIERARCHY_POLICY
      *target, BYTE **buffer, INT32 *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1014,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_RH_PLATFORM*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1007
    functionDepth: 2
    functionLinenumber: 1007
    functionLinenumberEnd: 1026
    functionName: TPMI_RH_PLATFORM_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RH_PLATFORM_Unmarshal(TPMI_RH_PLATFORM *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1037,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_RH_ENDORSEMENT*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1030
    functionDepth: 2
    functionLinenumber: 1030
    functionLinenumberEnd: 1054
    functionName: TPMI_RH_ENDORSEMENT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RH_ENDORSEMENT_Unmarshal(TPMI_RH_ENDORSEMENT *target, BYTE
      **buffer, INT32 *size, BOOL allowNull)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1065,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_RH_PROVISION*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1058
    functionDepth: 2
    functionLinenumber: 1058
    functionLinenumberEnd: 1078
    functionName: TPMI_RH_PROVISION_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RH_PROVISION_Unmarshal(TPMI_RH_PROVISION *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1089,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_RH_CLEAR*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1082
    functionDepth: 2
    functionLinenumber: 1082
    functionLinenumberEnd: 1102
    functionName: TPMI_RH_CLEAR_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RH_CLEAR_Unmarshal(TPMI_RH_CLEAR *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_RH_NV_AUTH*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1106
    functionDepth: 2
    functionLinenumber: 1106
    functionLinenumberEnd: 1131
    functionName: TPMI_RH_NV_AUTH_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RH_NV_AUTH_Unmarshal(TPMI_RH_NV_AUTH *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_RH_LOCKOUT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1135
    functionDepth: 2
    functionLinenumber: 1135
    functionLinenumberEnd: 1154
    functionName: TPMI_RH_LOCKOUT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RH_LOCKOUT_Unmarshal(TPMI_RH_LOCKOUT *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1165,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_RH_NV_INDEX*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1158
    functionDepth: 2
    functionLinenumber: 1158
    functionLinenumberEnd: 1188
    functionName: TPMI_RH_NV_INDEX_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RH_NV_INDEX_Unmarshal(TPMI_RH_NV_INDEX *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_RH_NV_DEFINED_INDEX*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1191
    functionDepth: 2
    functionLinenumber: 1191
    functionLinenumberEnd: 1215
    functionName: TPMI_RH_NV_DEFINED_INDEX_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RH_NV_DEFINED_INDEX_Unmarshal(TPMI_RH_NV_DEFINED_INDEX
      *target, BYTE **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_RH_NV_LEGACY_INDEX*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1219
    functionDepth: 2
    functionLinenumber: 1219
    functionLinenumberEnd: 1237
    functionName: TPMI_RH_NV_LEGACY_INDEX_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RH_NV_LEGACY_INDEX_Unmarshal(TPMI_RH_NV_LEGACY_INDEX *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1249,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_RH_NV_EXP_INDEX*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1242
    functionDepth: 2
    functionLinenumber: 1242
    functionLinenumberEnd: 1264
    functionName: TPMI_RH_NV_EXP_INDEX_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RH_NV_EXP_INDEX_Unmarshal(TPMI_RH_NV_EXP_INDEX *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_RH_AC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1268
    functionDepth: 2
    functionLinenumber: 1268
    functionLinenumberEnd: 1285
    functionName: TPMI_RH_AC_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RH_AC_Unmarshal(TPMI_RH_AC *target, BYTE **buffer, INT32
      *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_RH_ACT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1289
    functionDepth: 2
    functionLinenumber: 1289
    functionLinenumberEnd: 1306
    functionName: TPMI_RH_ACT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RH_ACT_Unmarshal( TPMI_RH_ACT *target, BYTE **buffer, INT32
      *size)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1317,1
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1336,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_ALG_HASH*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1310
    functionDepth: 2
    functionLinenumber: 1310
    functionLinenumberEnd: 1354
    functionName: TPMI_ALG_HASH_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 2
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ALG_HASH_Unmarshal(TPMI_ALG_HASH *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1365,1
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1384,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_ALG_SYM*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1358
    functionDepth: 2
    functionLinenumber: 1358
    functionLinenumberEnd: 1402
    functionName: TPMI_ALG_SYM_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ALG_SYM_Unmarshal(TPMI_ALG_SYM *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1413,1
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1429,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_ALG_SYM_OBJECT*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1406
    functionDepth: 2
    functionLinenumber: 1406
    functionLinenumberEnd: 1447
    functionName: TPMI_ALG_SYM_OBJECT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ALG_SYM_OBJECT_Unmarshal(TPMI_ALG_SYM_OBJECT *target, BYTE
      **buffer, INT32 *size, BOOL allowNull)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1458,1
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1480,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_ALG_SYM_MODE*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1451
    functionDepth: 2
    functionLinenumber: 1451
    functionLinenumberEnd: 1498
    functionName: TPMI_ALG_SYM_MODE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ALG_SYM_MODE_Unmarshal(TPMI_ALG_SYM_MODE *target, BYTE
      **buffer, INT32 *size, BOOL allowNull)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1509,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_ALG_KDF*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1502
    functionDepth: 2
    functionLinenumber: 1502
    functionLinenumberEnd: 1537
    functionName: TPMI_ALG_KDF_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ALG_KDF_Unmarshal(TPMI_ALG_KDF *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1548,1
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1573,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_ALG_SIG_SCHEME*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1541
    functionDepth: 2
    functionLinenumber: 1541
    functionLinenumberEnd: 1591
    functionName: TPMI_ALG_SIG_SCHEME_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ALG_SIG_SCHEME_Unmarshal(TPMI_ALG_SIG_SCHEME *target, BYTE
      **buffer, INT32 *size, BOOL allowNull)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1602,1
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1615,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_ECC_KEY_EXCHANGE*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1595
    functionDepth: 2
    functionLinenumber: 1595
    functionLinenumberEnd: 1633
    functionName: TPMI_ECC_KEY_EXCHANGE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ECC_KEY_EXCHANGE_Unmarshal(TPMI_ECC_KEY_EXCHANGE *target,
      BYTE **buffer, INT32 *size, BOOL allowNull)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1645,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_ST_COMMAND_TAG*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1638
    functionDepth: 2
    functionLinenumber: 1638
    functionLinenumberEnd: 1658
    functionName: TPMI_ST_COMMAND_TAG_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - TPM_ST_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ST_COMMAND_TAG_Unmarshal(TPMI_ST_COMMAND_TAG *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1669,1
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1691,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_ALG_MAC_SCHEME*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1662
    functionDepth: 2
    functionLinenumber: 1662
    functionLinenumberEnd: 1709
    functionName: TPMI_ALG_MAC_SCHEME_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ALG_MAC_SCHEME_Unmarshal(TPMI_ALG_MAC_SCHEME *target, BYTE
      **buffer, INT32 *size, BOOL allowNull)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1720,1
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1739,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_ALG_CIPHER_MODE*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1713
    functionDepth: 2
    functionLinenumber: 1713
    functionLinenumberEnd: 1757
    functionName: TPMI_ALG_CIPHER_MODE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ALG_CIPHER_MODE_Unmarshal(TPMI_ALG_CIPHER_MODE*target,
      BYTE **buffer, INT32 *size, BOOL allowNull)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_EMPTY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1761
    functionDepth: 0
    functionLinenumber: 1761
    functionLinenumberEnd: 1769
    functionName: TPMS_EMPTY_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_EMPTY_Unmarshal(TPMS_EMPTY *target, BYTE **buffer, INT32
      *size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1779,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1787,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1792,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1797,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1802,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1807,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_HA*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1773
    functionDepth: 2
    functionLinenumber: 1773
    functionLinenumberEnd: 1816
    functionName: TPMU_HA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - Array_Unmarshal
    - RuntimeAlgorithmCheckEnabled
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMU_HA_Unmarshal(TPMU_HA *target, BYTE **buffer, INT32 *size,
      UINT32 selector)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1827,1
    - Dst: TPMU_HA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1830,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMT_HA*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1820
    functionDepth: 3
    functionLinenumber: 1820
    functionLinenumberEnd: 1836
    functionName: TPMT_HA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - TPMU_HA_Unmarshal
    - TPMI_ALG_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_HA_Unmarshal(TPMT_HA *target, BYTE **buffer, INT32 *size,
      BOOL allowNull)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_DIGEST*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1840
    functionDepth: 2
    functionLinenumber: 1840
    functionLinenumberEnd: 1849
    functionName: TPM2B_DIGEST_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 13
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_DIGEST_Unmarshal(TPM2B_DIGEST *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1853
    functionDepth: 2
    functionLinenumber: 1853
    functionLinenumberEnd: 1862
    functionName: TPM2B_DATA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_DATA_Unmarshal(TPM2B_DATA *target, BYTE **buffer, INT32
      *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_NONCE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1866
    functionDepth: 3
    functionLinenumber: 1866
    functionLinenumberEnd: 1875
    functionName: TPM2B_NONCE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 3
    functionsReached:
    - TPM2B_DIGEST_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_NONCE_Unmarshal(TPM2B_NONCE *target, BYTE **buffer, INT32
      *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_AUTH*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1879
    functionDepth: 3
    functionLinenumber: 1879
    functionLinenumberEnd: 1888
    functionName: TPM2B_AUTH_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 9
    functionsReached:
    - TPM2B_DIGEST_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_AUTH_Unmarshal(TPM2B_AUTH *target, BYTE **buffer, INT32
      *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1898,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_EVENT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1892
    functionDepth: 2
    functionLinenumber: 1892
    functionLinenumberEnd: 1901
    functionName: TPM2B_EVENT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_EVENT_Unmarshal(TPM2B_EVENT *target, BYTE **buffer, INT32
      *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_MAX_BUFFER*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1914
      start: 1905
    functionDepth: 2
    functionLinenumber: 1905
    functionLinenumberEnd: 1914
    functionName: TPM2B_MAX_BUFFER_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_MAX_BUFFER_Unmarshal(TPM2B_MAX_BUFFER *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_MAX_NV_BUFFER*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1918
    functionDepth: 2
    functionLinenumber: 1918
    functionLinenumberEnd: 1927
    functionName: TPM2B_MAX_NV_BUFFER_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_MAX_NV_BUFFER_Unmarshal(TPM2B_MAX_NV_BUFFER *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_TIMEOUT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1931
    functionDepth: 2
    functionLinenumber: 1931
    functionLinenumberEnd: 1940
    functionName: TPM2B_TIMEOUT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_TIMEOUT_Unmarshal(TPM2B_TIMEOUT *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_IV*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1944
    functionDepth: 2
    functionLinenumber: 1944
    functionLinenumberEnd: 1953
    functionName: TPM2B_IV_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_IV_Unmarshal(TPM2B_IV *target, BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1963,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_NAME*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1957
    functionDepth: 2
    functionLinenumber: 1957
    functionLinenumberEnd: 1966
    functionName: TPM2B_NAME_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 2
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_NAME_Unmarshal(TPM2B_NAME *target, BYTE **buffer, INT32
      *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1976,1
    - Dst: UINT8_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1979,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:1989,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_PCR_SELECTION*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1970
    functionDepth: 3
    functionLinenumber: 1970
    functionLinenumberEnd: 1992
    functionName: TPMS_PCR_SELECTION_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - Array_Unmarshal
    - UINT8_Unmarshal
    - TPMI_ALG_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_PCR_SELECTION_Unmarshal(TPMS_PCR_SELECTION *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2003,1
    - Dst: TPMI_RH_HIERARCHY_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2012,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2015,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMT_TK_CREATION*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1996
    functionDepth: 3
    functionLinenumber: 1996
    functionLinenumberEnd: 2018
    functionName: TPMT_TK_CREATION_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMI_RH_HIERARCHY_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    - TPM_ST_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_TK_CREATION_Unmarshal(TPMT_TK_CREATION *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2029,1
    - Dst: TPMI_RH_HIERARCHY_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2038,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2041,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMT_TK_VERIFIED*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2022
    functionDepth: 3
    functionLinenumber: 2022
    functionLinenumberEnd: 2044
    functionName: TPMT_TK_VERIFIED_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMI_RH_HIERARCHY_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    - TPM_ST_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_TK_VERIFIED_Unmarshal(TPMT_TK_VERIFIED *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2055,1
    - Dst: TPMI_RH_HIERARCHY_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2065,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2068,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMT_TK_AUTH*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2048
    functionDepth: 3
    functionLinenumber: 2048
    functionLinenumberEnd: 2071
    functionName: TPMT_TK_AUTH_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMI_RH_HIERARCHY_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    - TPM_ST_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_TK_AUTH_Unmarshal(TPMT_TK_AUTH *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2082,1
    - Dst: TPMI_RH_HIERARCHY_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2091,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2094,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMT_TK_HASHCHECK*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2075
    functionDepth: 3
    functionLinenumber: 2075
    functionLinenumberEnd: 2097
    functionName: TPMT_TK_HASHCHECK_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMI_RH_HIERARCHY_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    - TPM_ST_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_TK_HASHCHECK_Unmarshal(TPMT_TK_HASHCHECK *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2108,1
    - Dst: TPMA_ALGORITHM_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_ALG_PROPERTY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 2102
    functionDepth: 2
    functionLinenumber: 2102
    functionLinenumberEnd: 2114
    functionName: TPMS_ALG_PROPERTY_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_ALG_ID_Unmarshal
    - TPMA_ALGORITHM_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_ALG_PROPERTY_Unmarshal(TPMS_ALG_PROPERTY *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_PT_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2126,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_TAGGED_PROPERTY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2120
    functionDepth: 2
    functionLinenumber: 2120
    functionLinenumberEnd: 2132
    functionName: TPMS_TAGGED_PROPERTY_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    - TPM_PT_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_TAGGED_PROPERTY_Unmarshal(TPMS_TAGGED_PROPERTY *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_PT_PCR_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2144,1
    - Dst: UINT8_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2147,1
    - Dst: Array_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_TAGGED_PCR_SELECT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2138
    functionDepth: 2
    functionLinenumber: 2138
    functionLinenumberEnd: 2153
    functionName: TPMS_TAGGED_PCR_SELECT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - Array_Unmarshal
    - UINT8_Unmarshal
    - TPM_PT_PCR_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_TAGGED_PCR_SELECT_Unmarshal(TPMS_TAGGED_PCR_SELECT *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2165,1
    - Dst: TPM_CC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2174,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPML_CC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2158
    functionDepth: 2
    functionLinenumber: 2158
    functionLinenumberEnd: 2177
    functionName: TPML_CC_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_CC_Unmarshal
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPML_CC_Unmarshal(TPML_CC *target, BYTE **buffer, INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2187,1
    - Dst: TPMT_HA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_TAGGED_POLICY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2182
    functionDepth: 4
    functionLinenumber: 2182
    functionLinenumberEnd: 2193
    functionName: TPMS_TAGGED_POLICY_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_HANDLE_Unmarshal
    - TPMT_HA_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_TAGGED_POLICY_Unmarshal(TPMS_TAGGED_POLICY *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2206,1
    - Dst: TPMA_CC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2215,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPML_CCA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2199
    functionDepth: 2
    functionLinenumber: 2199
    functionLinenumberEnd: 2218
    functionName: TPML_CCA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    - TPMA_CC_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPML_CCA_Unmarshal(TPML_CCA *target, BYTE **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2230,1
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPML_ALG*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2223
    functionDepth: 2
    functionLinenumber: 2223
    functionLinenumberEnd: 2242
    functionName: TPML_ALG_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPML_ALG_Unmarshal(TPML_ALG *target, BYTE **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2254,1
    - Dst: TPM_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPML_HANDLE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2247
    functionDepth: 2
    functionLinenumber: 2247
    functionLinenumberEnd: 2266
    functionName: TPML_HANDLE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    - TPM_HANDLE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPML_HANDLE_Unmarshal(TPML_HANDLE *target, BYTE **buffer, INT32
      *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2282,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2298,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPML_DIGEST*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2301
      start: 2275
    functionDepth: 3
    functionLinenumber: 2275
    functionLinenumberEnd: 2301
    functionName: TPML_DIGEST_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPML_DIGEST_Unmarshal(TPML_DIGEST *target, BYTE **buffer, INT32
      *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2312,1
    - Dst: TPMT_HA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPML_DIGEST_VALUES*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2305
    functionDepth: 4
    functionLinenumber: 2305
    functionLinenumberEnd: 2324
    functionName: TPML_DIGEST_VALUES_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    - TPMT_HA_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPML_DIGEST_VALUES_Unmarshal(TPML_DIGEST_VALUES *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2335,1
    - Dst: TPMS_PCR_SELECTION_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPML_PCR_SELECTION*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2328
    functionDepth: 4
    functionLinenumber: 2328
    functionLinenumberEnd: 2347
    functionName: TPML_PCR_SELECTION_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - UINT32_Unmarshal
    - TPMS_PCR_SELECTION_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPML_PCR_SELECTION_Unmarshal(TPML_PCR_SELECTION *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2361,1
    - Dst: TPMS_ALG_PROPERTY_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPML_ALG_PROPERTY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2373
      start: 2354
    functionDepth: 3
    functionLinenumber: 2354
    functionLinenumberEnd: 2373
    functionName: TPML_ALG_PROPERTY_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    - TPMS_ALG_PROPERTY_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPML_ALG_PROPERTY_Unmarshal(TPML_ALG_PROPERTY *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2384,1
    - Dst: TPMS_TAGGED_PROPERTY_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPML_TAGGED_TPM_PROPERTY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2377
    functionDepth: 3
    functionLinenumber: 2377
    functionLinenumberEnd: 2396
    functionName: TPML_TAGGED_TPM_PROPERTY_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_TAGGED_PROPERTY_Unmarshal
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPML_TAGGED_TPM_PROPERTY_Unmarshal(TPML_TAGGED_TPM_PROPERTY  *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2407,1
    - Dst: TPMS_TAGGED_PCR_SELECT_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2416,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPML_TAGGED_PCR_PROPERTY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2419
      start: 2400
    functionDepth: 3
    functionLinenumber: 2400
    functionLinenumberEnd: 2419
    functionName: TPML_TAGGED_PCR_PROPERTY_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_TAGGED_PCR_SELECT_Unmarshal
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPML_TAGGED_PCR_PROPERTY_Unmarshal(TPML_TAGGED_PCR_PROPERTY
      *target, BYTE **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2431,1
    - Dst: TPM_ECC_CURVE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2440,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPML_ECC_CURVE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2424
    functionDepth: 4
    functionLinenumber: 2424
    functionLinenumberEnd: 2443
    functionName: TPML_ECC_CURVE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    - TPM_ECC_CURVE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPML_ECC_CURVE_Unmarshal(TPML_ECC_CURVE *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2455,1
    - Dst: TPMS_TAGGED_POLICY_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPML_TAGGED_POLICY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2467
      start: 2448
    functionDepth: 5
    functionLinenumber: 2448
    functionLinenumberEnd: 2467
    functionName: TPML_TAGGED_POLICY_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_TAGGED_POLICY_Unmarshal
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPML_TAGGED_POLICY_Unmarshal(TPML_TAGGED_POLICY *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TPML_ALG_PROPERTY_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2482,1
    - Dst: TPML_HANDLE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2485,1
    - Dst: TPML_CCA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2488,1
    - Dst: TPML_CC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2491,1
    - Dst: TPML_CC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2494,1
    - Dst: TPML_PCR_SELECTION_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2497,1
    - Dst: TPML_TAGGED_TPM_PROPERTY_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2500,1
    - Dst: TPML_TAGGED_PCR_PROPERTY_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2503,1
    - Dst: TPML_ECC_CURVE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2506,1
    - Dst: TPML_TAGGED_POLICY_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2509,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_CAPABILITIES*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2475
    functionDepth: 6
    functionLinenumber: 2475
    functionLinenumberEnd: 2515
    functionName: TPMU_CAPABILITIES_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPML_CC_Unmarshal
    - TPML_ECC_CURVE_Unmarshal
    - TPML_CCA_Unmarshal
    - TPML_HANDLE_Unmarshal
    - TPML_TAGGED_PCR_PROPERTY_Unmarshal
    - TPML_PCR_SELECTION_Unmarshal
    - TPML_TAGGED_TPM_PROPERTY_Unmarshal
    - TPML_ALG_PROPERTY_Unmarshal
    - TPML_TAGGED_POLICY_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMU_CAPABILITIES_Unmarshal(TPMU_CAPABILITIES *target, BYTE
      **buffer, INT32 *size, UINT32 selector)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_CAP_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2527,1
    - Dst: TPMU_CAPABILITIES_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_CAPABILITY_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 2521
    functionDepth: 7
    functionLinenumber: 2521
    functionLinenumberEnd: 2533
    functionName: TPMS_CAPABILITY_DATA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMU_CAPABILITIES_Unmarshal
    - TPM_CAP_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_CAPABILITY_DATA_Unmarshal(TPMS_CAPABILITY_DATA *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_CAP_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2559,1
    - Dst: TPMU_SET_CAPABILITIES_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2562,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SET_CAPABILITY_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2553
    functionDepth: 2
    functionLinenumber: 2553
    functionLinenumberEnd: 2565
    functionName: TPMS_SET_CAPABILITY_DATA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMU_SET_CAPABILITIES_Unmarshal
    - TPM_CAP_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SET_CAPABILITY_DATA_Unmarshal(TPMS_SET_CAPABILITY_DATA
      *target, BYTE **buffer, INT32 *size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2575,1
    - Dst: TPMS_SET_CAPABILITY_DATA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2586,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_SET_CAPABILITY_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2594
      start: 2568
    functionDepth: 3
    functionLinenumber: 2568
    functionLinenumberEnd: 2594
    functionName: TPM2B_SET_CAPABILITY_DATA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SET_CAPABILITY_DATA_Unmarshal
    - UINT16_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_SET_CAPABILITY_DATA_Unmarshal(TPM2B_SET_CAPABILITY_DATA
      *target, BYTE **buffer, INT32 *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2611,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2614,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2617,1
    - Dst: TPMI_YES_NO_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_CLOCK_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2605
    functionDepth: 2
    functionLinenumber: 2605
    functionLinenumberEnd: 2623
    functionName: TPMS_CLOCK_INFO_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMI_YES_NO_Unmarshal
    - UINT64_Unmarshal
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_CLOCK_INFO_Unmarshal(TPMS_CLOCK_INFO *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2633,1
    - Dst: TPMS_CLOCK_INFO_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_TIME_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2627
    functionDepth: 3
    functionLinenumber: 2627
    functionLinenumberEnd: 2639
    functionName: TPMS_TIME_INFO_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT64_Unmarshal
    - TPMS_CLOCK_INFO_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_TIME_INFO_Unmarshal(TPMS_TIME_INFO *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_TIME_INFO_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2649,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_TIME_ATTEST_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2655
      start: 2643
    functionDepth: 4
    functionLinenumber: 2643
    functionLinenumberEnd: 2655
    functionName: TPMS_TIME_ATTEST_INFO_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT64_Unmarshal
    - TPMS_TIME_INFO_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_TIME_ATTEST_INFO_Unmarshal(TPMS_TIME_ATTEST_INFO *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_NAME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2665,1
    - Dst: TPM2B_NAME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_CERTIFY_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2671
      start: 2659
    functionDepth: 3
    functionLinenumber: 2659
    functionLinenumberEnd: 2671
    functionName: TPMS_CERTIFY_INFO_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_NAME_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_CERTIFY_INFO_Unmarshal(TPMS_CERTIFY_INFO *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPML_PCR_SELECTION_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2681,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_QUOTE_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2687
      start: 2675
    functionDepth: 5
    functionLinenumber: 2675
    functionLinenumberEnd: 2687
    functionName: TPMS_QUOTE_INFO_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_DIGEST_Unmarshal
    - TPML_PCR_SELECTION_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_QUOTE_INFO_Unmarshal(TPMS_QUOTE_INFO *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2697,1
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2700,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2703,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_COMMAND_AUDIT_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2709
      start: 2691
    functionDepth: 3
    functionLinenumber: 2691
    functionLinenumberEnd: 2709
    functionName: TPMS_COMMAND_AUDIT_INFO_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT64_Unmarshal
    - TPM_ALG_ID_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_COMMAND_AUDIT_INFO_Unmarshal(TPMS_COMMAND_AUDIT_INFO *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_YES_NO_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2719,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SESSION_AUDIT_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2725
      start: 2713
    functionDepth: 3
    functionLinenumber: 2713
    functionLinenumberEnd: 2725
    functionName: TPMS_SESSION_AUDIT_INFO_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMI_YES_NO_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SESSION_AUDIT_INFO_Unmarshal(TPMS_SESSION_AUDIT_INFO *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_NAME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2735,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_CREATION_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2729
    functionDepth: 3
    functionLinenumber: 2729
    functionLinenumberEnd: 2741
    functionName: TPMS_CREATION_INFO_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_NAME_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_CREATION_INFO_Unmarshal(TPMS_CREATION_INFO *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_NAME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2751,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2754,1
    - Dst: TPM2B_MAX_NV_BUFFER_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2757,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_NV_CERTIFY_INFO*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2745
    functionDepth: 3
    functionLinenumber: 2745
    functionLinenumberEnd: 2760
    functionName: TPMS_NV_CERTIFY_INFO_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_NAME_Unmarshal
    - TPM2B_MAX_NV_BUFFER_Unmarshal
    - UINT16_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_NV_CERTIFY_INFO_Unmarshal(TPMS_NV_CERTIFY_INFO *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2771,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_ST_ATTEST*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2789
      start: 2764
    functionDepth: 2
    functionLinenumber: 2764
    functionLinenumberEnd: 2789
    functionName: TPMI_ST_ATTEST_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_ST_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ST_ATTEST_Unmarshal(TPMI_ST_ATTEST *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_CERTIFY_INFO_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2800,1
    - Dst: TPMS_CREATION_INFO_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2803,1
    - Dst: TPMS_QUOTE_INFO_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2806,1
    - Dst: TPMS_COMMAND_AUDIT_INFO_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2809,1
    - Dst: TPMS_SESSION_AUDIT_INFO_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2812,1
    - Dst: TPMS_TIME_ATTEST_INFO_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2815,1
    - Dst: TPMS_NV_CERTIFY_INFO_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2818,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_ATTEST*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2793
    functionDepth: 6
    functionLinenumber: 2793
    functionLinenumberEnd: 2825
    functionName: TPMU_ATTEST_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_TIME_ATTEST_INFO_Unmarshal
    - TPMS_COMMAND_AUDIT_INFO_Unmarshal
    - TPMS_NV_CERTIFY_INFO_Unmarshal
    - TPMS_CREATION_INFO_Unmarshal
    - TPMS_CERTIFY_INFO_Unmarshal
    - TPMS_QUOTE_INFO_Unmarshal
    - TPMS_SESSION_AUDIT_INFO_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMU_ATTEST_Unmarshal(TPMU_ATTEST *target, BYTE **buffer, INT32
      *size, UINT32 selector)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TPM_GENERATED_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2835,1
    - Dst: TPMI_ST_ATTEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2838,1
    - Dst: TPM2B_NAME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2841,1
    - Dst: TPM2B_DATA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2844,1
    - Dst: TPMS_CLOCK_INFO_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2847,1
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2850,1
    - Dst: TPMU_ATTEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2853,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_ATTEST*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2856
      start: 2829
    functionDepth: 7
    functionLinenumber: 2829
    functionLinenumberEnd: 2856
    functionName: TPMS_ATTEST_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_DATA_Unmarshal
    - TPM_GENERATED_Unmarshal
    - UINT64_Unmarshal
    - TPMS_CLOCK_INFO_Unmarshal
    - TPMI_ST_ATTEST_Unmarshal
    - TPM2B_NAME_Unmarshal
    - TPMU_ATTEST_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_ATTEST_Unmarshal(TPMS_ATTEST *target, BYTE **buffer, INT32
      *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_ATTEST*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2869
      start: 2860
    functionDepth: 2
    functionLinenumber: 2860
    functionLinenumberEnd: 2869
    functionName: TPM2B_ATTEST_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_ATTEST_Unmarshal(TPM2B_ATTEST *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TPM_KEY_BITS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2883,1
    - Dst: RuntimeAlgorithmKeySizeCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2896,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_AES_KEY_BITS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2912
      start: 2876
    functionDepth: 3
    functionLinenumber: 2876
    functionLinenumberEnd: 2912
    functionName: TPMI_AES_KEY_BITS_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmKeySizeCheckEnabled
    - TPM_KEY_BITS_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_AES_KEY_BITS_Unmarshal(TPMI_AES_KEY_BITS *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TPM_KEY_BITS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2923,1
    - Dst: RuntimeAlgorithmKeySizeCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2936,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_CAMELLIA_KEY_BITS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2952
      start: 2916
    functionDepth: 3
    functionLinenumber: 2916
    functionLinenumberEnd: 2952
    functionName: TPMI_CAMELLIA_KEY_BITS_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmKeySizeCheckEnabled
    - TPM_KEY_BITS_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_CAMELLIA_KEY_BITS_Unmarshal(TPMI_CAMELLIA_KEY_BITS *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TPM_KEY_BITS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2963,1
    - Dst: RuntimeAlgorithmKeySizeCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2968,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_SM4_KEY_BITS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2982
      start: 2956
    functionDepth: 3
    functionLinenumber: 2956
    functionLinenumberEnd: 2982
    functionName: TPMI_SM4_KEY_BITS_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmKeySizeCheckEnabled
    - TPM_KEY_BITS_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_SM4_KEY_BITS_Unmarshal(TPMI_SM4_KEY_BITS *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TPM_KEY_BITS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2993,1
    - Dst: RuntimeAlgorithmKeySizeCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:2999,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_SM4_KEY_BITS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3015
      start: 2986
    functionDepth: 3
    functionLinenumber: 2986
    functionLinenumberEnd: 3015
    functionName: TPMI_TDES_KEY_BITS_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmKeySizeCheckEnabled
    - TPM_KEY_BITS_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_TDES_KEY_BITS_Unmarshal(TPMI_SM4_KEY_BITS *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3026,1
    - Dst: TPMI_AES_KEY_BITS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3034,1
    - Dst: TPMI_SM4_KEY_BITS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3039,1
    - Dst: TPMI_CAMELLIA_KEY_BITS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3044,1
    - Dst: TPMI_TDES_KEY_BITS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3049,1
    - Dst: TPMI_ALG_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3054,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_SYM_KEY_BITS*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3063
      start: 3020
    functionDepth: 4
    functionLinenumber: 3020
    functionLinenumberEnd: 3063
    functionName: TPMU_SYM_KEY_BITS_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - TPMI_ALG_HASH_Unmarshal
    - TPMI_TDES_KEY_BITS_Unmarshal
    - TPMI_CAMELLIA_KEY_BITS_Unmarshal
    - TPMI_AES_KEY_BITS_Unmarshal
    - TPMI_SM4_KEY_BITS_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMU_SYM_KEY_BITS_Unmarshal(TPMU_SYM_KEY_BITS *target, BYTE
      **buffer, INT32 *size, UINT32 selector)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3073,1
    - Dst: TPMI_ALG_SYM_MODE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3081,1
    - Dst: TPMI_ALG_SYM_MODE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3086,1
    - Dst: TPMI_ALG_SYM_MODE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3091,1
    - Dst: TPMI_ALG_SYM_MODE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3096,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_SYM_MODE*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3106
      start: 3067
    functionDepth: 3
    functionLinenumber: 3067
    functionLinenumberEnd: 3106
    functionName: TPMU_SYM_MODE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - TPMI_ALG_SYM_MODE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMU_SYM_MODE_Unmarshal(TPMU_SYM_MODE *target, BYTE **buffer,
      INT32 *size, UINT32 selector)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_SYM_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3116,1
    - Dst: TPMU_SYM_KEY_BITS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3119,1
    - Dst: TPMU_SYM_MODE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMT_SYM_DEF*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3125
      start: 3110
    functionDepth: 5
    functionLinenumber: 3110
    functionLinenumberEnd: 3125
    functionName: TPMT_SYM_DEF_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - TPMU_SYM_MODE_Unmarshal
    - TPMI_ALG_SYM_Unmarshal
    - TPMU_SYM_KEY_BITS_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_SYM_DEF_Unmarshal(TPMT_SYM_DEF *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_SYM_OBJECT_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3135,1
    - Dst: TPMU_SYM_KEY_BITS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3138,1
    - Dst: TPMU_SYM_MODE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMT_SYM_DEF_OBJECT*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3144
      start: 3129
    functionDepth: 5
    functionLinenumber: 3129
    functionLinenumberEnd: 3144
    functionName: TPMT_SYM_DEF_OBJECT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_SYM_OBJECT_Unmarshal
    - TPMU_SYM_MODE_Unmarshal
    - TPMU_SYM_KEY_BITS_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_SYM_DEF_OBJECT_Unmarshal(TPMT_SYM_DEF_OBJECT *target, BYTE
      **buffer, INT32 *size, BOOL allowNull)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_SYM_KEY*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3157
      start: 3148
    functionDepth: 2
    functionLinenumber: 3148
    functionLinenumberEnd: 3157
    functionName: TPM2B_SYM_KEY_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_SYM_KEY_Unmarshal(TPM2B_SYM_KEY *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMT_SYM_DEF_OBJECT_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SYMCIPHER_PARMS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3170
      start: 3161
    functionDepth: 6
    functionLinenumber: 3161
    functionLinenumberEnd: 3170
    functionName: TPMS_SYMCIPHER_PARMS_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMT_SYM_DEF_OBJECT_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SYMCIPHER_PARMS_Unmarshal(TPMS_SYMCIPHER_PARMS *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_LABEL*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3183
      start: 3174
    functionDepth: 2
    functionLinenumber: 3174
    functionLinenumberEnd: 3183
    functionName: TPM2B_LABEL_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_LABEL_Unmarshal(TPM2B_LABEL *target, BYTE **buffer, INT32
      *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_LABEL_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3193,1
    - Dst: TPM2B_LABEL_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_DERIVE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3199
      start: 3187
    functionDepth: 3
    functionLinenumber: 3187
    functionLinenumberEnd: 3199
    functionName: TPMS_DERIVE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 2
    functionsReached:
    - TPM2B_LABEL_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_DERIVE_Unmarshal(TPMS_DERIVE *target, BYTE **buffer, INT32
      *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_SENSITIVE_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3212
      start: 3203
    functionDepth: 2
    functionLinenumber: 3203
    functionLinenumberEnd: 3212
    functionName: TPM2B_SENSITIVE_DATA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_SENSITIVE_DATA_Unmarshal(TPM2B_SENSITIVE_DATA *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_AUTH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3223,1
    - Dst: TPM2B_SENSITIVE_DATA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SENSITIVE_CREATE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3232
      start: 3216
    functionDepth: 4
    functionLinenumber: 3216
    functionLinenumberEnd: 3232
    functionName: TPMS_SENSITIVE_CREATE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_AUTH_Unmarshal
    - TPM2B_SENSITIVE_DATA_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SENSITIVE_CREATE_Unmarshal(TPMS_SENSITIVE_CREATE *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3243,1
    - Dst: TPMS_SENSITIVE_CREATE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3254,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_SENSITIVE_CREATE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3263
      start: 3236
    functionDepth: 5
    functionLinenumber: 3236
    functionLinenumberEnd: 3263
    functionName: TPM2B_SENSITIVE_CREATE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Unmarshal
    - TPMS_SENSITIVE_CREATE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_SENSITIVE_CREATE_Unmarshal(TPM2B_SENSITIVE_CREATE *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SCHEME_HASH*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3276
      start: 3267
    functionDepth: 3
    functionLinenumber: 3267
    functionLinenumberEnd: 3276
    functionName: TPMS_SCHEME_HASH_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SCHEME_HASH_Unmarshal(TPMS_SCHEME_HASH *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3286,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SCHEME_ECDAA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3292
      start: 3280
    functionDepth: 3
    functionLinenumber: 3280
    functionLinenumberEnd: 3292
    functionName: TPMS_SCHEME_ECDAA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Unmarshal
    - TPMI_ALG_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SCHEME_ECDAA_Unmarshal(TPMS_SCHEME_ECDAA *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3303,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_ALG_KEYEDHASH_SCHEME*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3325
      start: 3296
    functionDepth: 2
    functionLinenumber: 3296
    functionLinenumberEnd: 3325
    functionName: TPMI_ALG_KEYEDHASH_SCHEME_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ALG_KEYEDHASH_SCHEME_Unmarshal(TPMI_ALG_KEYEDHASH_SCHEME
      *target, BYTE **buffer, INT32 *size, BOOL allowNull)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SCHEME_HMAC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3338
      start: 3329
    functionDepth: 4
    functionLinenumber: 3329
    functionLinenumberEnd: 3338
    functionName: TPMS_SCHEME_HMAC_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SCHEME_HMAC_Unmarshal(TPMS_SCHEME_HMAC *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3348,1
    - Dst: TPMI_ALG_KDF_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SCHEME_XOR*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3354
      start: 3342
    functionDepth: 3
    functionLinenumber: 3342
    functionLinenumberEnd: 3354
    functionName: TPMS_SCHEME_XOR_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_KDF_Unmarshal
    - TPMI_ALG_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SCHEME_XOR_Unmarshal(TPMS_SCHEME_XOR *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HMAC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3366,1
    - Dst: TPMS_SCHEME_XOR_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_SCHEME_KEYEDHASH*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3358
    functionDepth: 5
    functionLinenumber: 3358
    functionLinenumberEnd: 3380
    functionName: TPMU_SCHEME_KEYEDHASH_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HMAC_Unmarshal
    - TPMS_SCHEME_XOR_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMU_SCHEME_KEYEDHASH_Unmarshal(TPMU_SCHEME_KEYEDHASH *target,
      BYTE **buffer, INT32 *size, UINT32 selector)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_KEYEDHASH_SCHEME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3390,1
    - Dst: TPMU_SCHEME_KEYEDHASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMT_KEYEDHASH_SCHEME*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3396
      start: 3384
    functionDepth: 6
    functionLinenumber: 3384
    functionLinenumberEnd: 3396
    functionName: TPMT_KEYEDHASH_SCHEME_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMU_SCHEME_KEYEDHASH_Unmarshal
    - TPMI_ALG_KEYEDHASH_SCHEME_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_KEYEDHASH_SCHEME_Unmarshal(TPMT_KEYEDHASH_SCHEME *target,
      BYTE **buffer, INT32 *size, BOOL allowNull)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SIG_SCHEME_RSAPSS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3409
      start: 3400
    functionDepth: 4
    functionLinenumber: 3400
    functionLinenumberEnd: 3409
    functionName: TPMS_SIG_SCHEME_RSAPSS_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SIG_SCHEME_RSAPSS_Unmarshal(TPMS_SIG_SCHEME_RSAPSS *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SIG_SCHEME_RSASSA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3422
      start: 3413
    functionDepth: 4
    functionLinenumber: 3413
    functionLinenumberEnd: 3422
    functionName: TPMS_SIG_SCHEME_RSASSA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SIG_SCHEME_RSASSA_Unmarshal(TPMS_SIG_SCHEME_RSASSA *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_ECDAA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SIG_SCHEME_ECDAA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3435
      start: 3426
    functionDepth: 4
    functionLinenumber: 3426
    functionLinenumberEnd: 3435
    functionName: TPMS_SIG_SCHEME_ECDAA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_ECDAA_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SIG_SCHEME_ECDAA_Unmarshal(TPMS_SIG_SCHEME_ECDAA *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SIG_SCHEME_ECDSA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3448
      start: 3439
    functionDepth: 4
    functionLinenumber: 3439
    functionLinenumberEnd: 3448
    functionName: TPMS_SIG_SCHEME_ECDSA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SIG_SCHEME_ECDSA_Unmarshal(TPMS_SIG_SCHEME_ECDSA *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SIG_SCHEME_ECSCHNORR*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3461
      start: 3452
    functionDepth: 4
    functionLinenumber: 3452
    functionLinenumberEnd: 3461
    functionName: TPMS_SIG_SCHEME_ECSCHNORR_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SIG_SCHEME_ECSCHNORR_Unmarshal(TPMS_SIG_SCHEME_ECSCHNORR
      *target, BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SIG_SCHEME_SM2*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3474
      start: 3465
    functionDepth: 4
    functionLinenumber: 3465
    functionLinenumberEnd: 3474
    functionName: TPMS_SIG_SCHEME_SM2_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SIG_SCHEME_SM2_Unmarshal(TPMS_SIG_SCHEME_SM2 *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3483,1
    - Dst: TPMS_SIG_SCHEME_RSASSA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3490,1
    - Dst: TPMS_SIG_SCHEME_RSAPSS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3495,1
    - Dst: TPMS_SIG_SCHEME_ECDSA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3500,1
    - Dst: TPMS_SIG_SCHEME_ECDAA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3505,1
    - Dst: TPMS_SIG_SCHEME_SM2_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3510,1
    - Dst: TPMS_SIG_SCHEME_ECSCHNORR_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3515,1
    - Dst: TPMS_SCHEME_HMAC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3520,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_SIG_SCHEME*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3529
      start: 3478
    functionDepth: 5
    functionLinenumber: 3478
    functionLinenumberEnd: 3529
    functionName: TPMU_SIG_SCHEME_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - TPMS_SIG_SCHEME_ECSCHNORR_Unmarshal
    - TPMS_SIG_SCHEME_RSASSA_Unmarshal
    - TPMS_SCHEME_HMAC_Unmarshal
    - TPMS_SIG_SCHEME_ECDSA_Unmarshal
    - TPMS_SIG_SCHEME_SM2_Unmarshal
    - TPMS_SIG_SCHEME_RSAPSS_Unmarshal
    - TPMS_SIG_SCHEME_ECDAA_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMU_SIG_SCHEME_Unmarshal(TPMU_SIG_SCHEME *target, BYTE **buffer,
      INT32 *size, UINT32 selector)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_SIG_SCHEME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3540,1
    - Dst: TPMU_SIG_SCHEME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMT_SIG_SCHEME*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3549
      start: 3533
    functionDepth: 6
    functionLinenumber: 3533
    functionLinenumberEnd: 3549
    functionName: TPMT_SIG_SCHEME_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMU_SIG_SCHEME_Unmarshal
    - TPMI_ALG_SIG_SCHEME_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_SIG_SCHEME_Unmarshal(TPMT_SIG_SCHEME *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_ENC_SCHEME_OAEP*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3562
      start: 3553
    functionDepth: 4
    functionLinenumber: 3553
    functionLinenumberEnd: 3562
    functionName: TPMS_ENC_SCHEME_OAEP_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_ENC_SCHEME_OAEP_Unmarshal(TPMS_ENC_SCHEME_OAEP *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_EMPTY_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_ENC_SCHEME_RSAES*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3575
      start: 3566
    functionDepth: 1
    functionLinenumber: 3566
    functionLinenumberEnd: 3575
    functionName: TPMS_ENC_SCHEME_RSAES_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_EMPTY_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_ENC_SCHEME_RSAES_Unmarshal(TPMS_ENC_SCHEME_RSAES *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_KEY_SCHEME_ECDH*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3588
      start: 3579
    functionDepth: 4
    functionLinenumber: 3579
    functionLinenumberEnd: 3588
    functionName: TPMS_KEY_SCHEME_ECDH_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_KEY_SCHEME_ECDH_Unmarshal(TPMS_KEY_SCHEME_ECDH *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_KEY_SCHEME_ECMQV*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3601
      start: 3592
    functionDepth: 4
    functionLinenumber: 3592
    functionLinenumberEnd: 3601
    functionName: TPMS_KEY_SCHEME_ECMQV_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_KEY_SCHEME_ECMQV_Unmarshal(TPMS_KEY_SCHEME_ECMQV *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_KDF_SCHEME_KDF1_SP800_108*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3614
      start: 3605
    functionDepth: 4
    functionLinenumber: 3605
    functionLinenumberEnd: 3614
    functionName: TPMS_KDF_SCHEME_KDF1_SP800_108_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_KDF_SCHEME_KDF1_SP800_108_Unmarshal(TPMS_KDF_SCHEME_KDF1_SP800_108
      *target, BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_KDF_SCHEME_KDF1_SP800_56A*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3627
      start: 3618
    functionDepth: 4
    functionLinenumber: 3618
    functionLinenumberEnd: 3627
    functionName: TPMS_KDF_SCHEME_KDF1_SP800_56A_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_KDF_SCHEME_KDF1_SP800_56A_Unmarshal(TPMS_KDF_SCHEME_KDF1_SP800_56A
      *target, BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_KDF_SCHEME_KDF2*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3640
      start: 3631
    functionDepth: 4
    functionLinenumber: 3631
    functionLinenumberEnd: 3640
    functionName: TPMS_KDF_SCHEME_KDF2_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_KDF_SCHEME_KDF2_Unmarshal(TPMS_KDF_SCHEME_KDF2 *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SCHEME_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_KDF_SCHEME_MGF1*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3653
      start: 3644
    functionDepth: 4
    functionLinenumber: 3644
    functionLinenumberEnd: 3653
    functionName: TPMS_KDF_SCHEME_MGF1_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SCHEME_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_KDF_SCHEME_MGF1_Unmarshal(TPMS_KDF_SCHEME_MGF1 *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_KDF_SCHEME_MGF1_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3665,1
    - Dst: TPMS_KDF_SCHEME_KDF1_SP800_56A_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3670,1
    - Dst: TPMS_KDF_SCHEME_KDF2_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3675,1
    - Dst: TPMS_KDF_SCHEME_KDF1_SP800_108_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3680,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_KDF_SCHEME*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3689
      start: 3657
    functionDepth: 5
    functionLinenumber: 3657
    functionLinenumberEnd: 3689
    functionName: TPMU_KDF_SCHEME_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_KDF_SCHEME_MGF1_Unmarshal
    - TPMS_KDF_SCHEME_KDF1_SP800_56A_Unmarshal
    - TPMS_KDF_SCHEME_KDF1_SP800_108_Unmarshal
    - TPMS_KDF_SCHEME_KDF2_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMU_KDF_SCHEME_Unmarshal(TPMU_KDF_SCHEME *target, BYTE **buffer,
      INT32 *size, UINT32 selector)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_KDF_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3699,1
    - Dst: TPMU_KDF_SCHEME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMT_KDF_SCHEME*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3705
      start: 3693
    functionDepth: 6
    functionLinenumber: 3693
    functionLinenumberEnd: 3705
    functionName: TPMT_KDF_SCHEME_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_KDF_Unmarshal
    - TPMU_KDF_SCHEME_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_KDF_SCHEME_Unmarshal(TPMT_KDF_SCHEME *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3717,1
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3751,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_ALG_ASYM_SCHEME*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3767
      start: 3710
    functionDepth: 2
    functionLinenumber: 3710
    functionLinenumberEnd: 3767
    functionName: TPMI_ALG_ASYM_SCHEME_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ALG_ASYM_SCHEME_Unmarshal(TPMI_ALG_ASYM_SCHEME *target,
      BYTE **buffer, INT32 *size, BOOL allowNull)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3778,1
    - Dst: TPMS_KEY_SCHEME_ECDH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3786,1
    - Dst: TPMS_KEY_SCHEME_ECMQV_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3791,1
    - Dst: TPMS_SIG_SCHEME_RSASSA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3796,1
    - Dst: TPMS_SIG_SCHEME_RSAPSS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3801,1
    - Dst: TPMS_SIG_SCHEME_ECDSA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3806,1
    - Dst: TPMS_SIG_SCHEME_ECDAA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3811,1
    - Dst: TPMS_SIG_SCHEME_SM2_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3816,1
    - Dst: TPMS_SIG_SCHEME_ECSCHNORR_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3821,1
    - Dst: TPMS_ENC_SCHEME_RSAES_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3826,1
    - Dst: TPMS_ENC_SCHEME_OAEP_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3831,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_ASYM_SCHEME*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3840
      start: 3772
    functionDepth: 5
    functionLinenumber: 3772
    functionLinenumberEnd: 3840
    functionName: TPMU_ASYM_SCHEME_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - TPMS_SIG_SCHEME_ECSCHNORR_Unmarshal
    - TPMS_SIG_SCHEME_RSASSA_Unmarshal
    - TPMS_ENC_SCHEME_OAEP_Unmarshal
    - TPMS_KEY_SCHEME_ECMQV_Unmarshal
    - TPMS_ENC_SCHEME_RSAES_Unmarshal
    - TPMS_SIG_SCHEME_ECDSA_Unmarshal
    - TPMS_SIG_SCHEME_SM2_Unmarshal
    - TPMS_KEY_SCHEME_ECDH_Unmarshal
    - TPMS_SIG_SCHEME_RSAPSS_Unmarshal
    - TPMS_SIG_SCHEME_ECDAA_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMU_ASYM_SCHEME_Unmarshal(TPMU_ASYM_SCHEME *target, BYTE **buffer,
      INT32 *size, UINT32 selector)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3851,1
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3867,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_ALG_RSA_SCHEME*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3885
      start: 3844
    functionDepth: 2
    functionLinenumber: 3844
    functionLinenumberEnd: 3885
    functionName: TPMI_ALG_RSA_SCHEME_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ALG_RSA_SCHEME_Unmarshal(TPMI_ALG_RSA_SCHEME *target, BYTE
      **buffer, INT32 *size, BOOL allowNull)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_RSA_SCHEME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3895,1
    - Dst: TPMU_ASYM_SCHEME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMT_RSA_SCHEME*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3901
      start: 3889
    functionDepth: 6
    functionLinenumber: 3889
    functionLinenumberEnd: 3901
    functionName: TPMT_RSA_SCHEME_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMU_ASYM_SCHEME_Unmarshal
    - TPMI_ALG_RSA_SCHEME_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_RSA_SCHEME_Unmarshal(TPMT_RSA_SCHEME *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3912,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_ALG_RSA_DECRYPT*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3935
      start: 3905
    functionDepth: 2
    functionLinenumber: 3905
    functionLinenumberEnd: 3935
    functionName: TPMI_ALG_RSA_DECRYPT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ALG_RSA_DECRYPT_Unmarshal(TPMI_ALG_RSA_DECRYPT *target,
      BYTE **buffer, INT32 *size, BOOL allowNull)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_RSA_DECRYPT_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3945,1
    - Dst: TPMU_ASYM_SCHEME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMT_RSA_DECRYPT*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3951
      start: 3939
    functionDepth: 6
    functionLinenumber: 3939
    functionLinenumberEnd: 3951
    functionName: TPMT_RSA_DECRYPT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_RSA_DECRYPT_Unmarshal
    - TPMU_ASYM_SCHEME_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_RSA_DECRYPT_Unmarshal(TPMT_RSA_DECRYPT *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_PUBLIC_KEY_RSA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3964
      start: 3955
    functionDepth: 2
    functionLinenumber: 3955
    functionLinenumberEnd: 3964
    functionName: TPM2B_PUBLIC_KEY_RSA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_PUBLIC_KEY_RSA_Unmarshal(TPM2B_PUBLIC_KEY_RSA *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TPM_KEY_BITS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3975,1
    - Dst: RuntimeAlgorithmKeySizeCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:3985,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_RSA_KEY_BITS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4001
      start: 3968
    functionDepth: 3
    functionLinenumber: 3968
    functionLinenumberEnd: 4001
    functionName: TPMI_RSA_KEY_BITS_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmKeySizeCheckEnabled
    - TPM_KEY_BITS_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_RSA_KEY_BITS_Unmarshal(TPMI_RSA_KEY_BITS *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4011,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_PRIVATE_KEY_RSA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4014
      start: 4005
    functionDepth: 2
    functionLinenumber: 4005
    functionLinenumberEnd: 4014
    functionName: TPM2B_PRIVATE_KEY_RSA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_PRIVATE_KEY_RSA_Unmarshal(TPM2B_PRIVATE_KEY_RSA *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4024,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_ECC_PARAMETER*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4027
      start: 4018
    functionDepth: 2
    functionLinenumber: 4018
    functionLinenumberEnd: 4027
    functionName: TPM2B_ECC_PARAMETER_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_ECC_PARAMETER_Unmarshal(TPM2B_ECC_PARAMETER *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_ECC_PARAMETER_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4038,1
    - Dst: TPM2B_ECC_PARAMETER_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4041,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_ECC_POINT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4047
      start: 4031
    functionDepth: 3
    functionLinenumber: 4031
    functionLinenumberEnd: 4047
    functionName: TPMS_ECC_POINT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - TPM2B_ECC_PARAMETER_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_ECC_POINT_Unmarshal(TPMS_ECC_POINT *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4058,1
    - Dst: TPMS_ECC_POINT_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4069,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_ECC_POINT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4078
      start: 4051
    functionDepth: 4
    functionLinenumber: 4051
    functionLinenumberEnd: 4078
    functionName: TPM2B_ECC_POINT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_ECC_POINT_Unmarshal
    - UINT16_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_ECC_POINT_Unmarshal(TPM2B_ECC_POINT *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4089,1
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4111,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_ALG_ECC_SCHEME*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4128
      start: 4082
    functionDepth: 2
    functionLinenumber: 4082
    functionLinenumberEnd: 4128
    functionName: TPMI_ALG_ECC_SCHEME_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ALG_ECC_SCHEME_Unmarshal(TPMI_ALG_ECC_SCHEME *target, BYTE
      **buffer, INT32 *size, BOOL allowNull)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ECC_CURVE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMI_ECC_CURVE*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4146
      start: 4132
    functionDepth: 4
    functionLinenumber: 4132
    functionLinenumberEnd: 4146
    functionName: TPMI_ECC_CURVE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM_ECC_CURVE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ECC_CURVE_Unmarshal(TPMI_ECC_CURVE *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_ECC_SCHEME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4157,1
    - Dst: TPMU_ASYM_SCHEME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMT_ECC_SCHEME*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4166
      start: 4150
    functionDepth: 6
    functionLinenumber: 4150
    functionLinenumberEnd: 4166
    functionName: TPMT_ECC_SCHEME_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMU_ASYM_SCHEME_Unmarshal
    - TPMI_ALG_ECC_SCHEME_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_ECC_SCHEME_Unmarshal(TPMT_ECC_SCHEME *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4176,1
    - Dst: TPM2B_PUBLIC_KEY_RSA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SIGNATURE_RSA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4182
      start: 4170
    functionDepth: 3
    functionLinenumber: 4170
    functionLinenumberEnd: 4182
    functionName: TPMS_SIGNATURE_RSA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_PUBLIC_KEY_RSA_Unmarshal
    - TPMI_ALG_HASH_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SIGNATURE_RSA_Unmarshal(TPMS_SIGNATURE_RSA *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SIGNATURE_RSA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SIGNATURE_RSASSA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4195
      start: 4186
    functionDepth: 4
    functionLinenumber: 4186
    functionLinenumberEnd: 4195
    functionName: TPMS_SIGNATURE_RSASSA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SIGNATURE_RSA_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SIGNATURE_RSASSA_Unmarshal(TPMS_SIGNATURE_RSASSA *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SIGNATURE_RSA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SIGNATURE_RSAPSS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4208
      start: 4199
    functionDepth: 4
    functionLinenumber: 4199
    functionLinenumberEnd: 4208
    functionName: TPMS_SIGNATURE_RSAPSS_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SIGNATURE_RSA_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SIGNATURE_RSAPSS_Unmarshal(TPMS_SIGNATURE_RSAPSS *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4218,1
    - Dst: TPM2B_ECC_PARAMETER_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4221,1
    - Dst: TPM2B_ECC_PARAMETER_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SIGNATURE_ECC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4227
      start: 4212
    functionDepth: 3
    functionLinenumber: 4212
    functionLinenumberEnd: 4227
    functionName: TPMS_SIGNATURE_ECC_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_HASH_Unmarshal
    - TPM2B_ECC_PARAMETER_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SIGNATURE_ECC_Unmarshal(TPMS_SIGNATURE_ECC *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SIGNATURE_ECC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SIGNATURE_ECDSA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4240
      start: 4231
    functionDepth: 4
    functionLinenumber: 4231
    functionLinenumberEnd: 4240
    functionName: TPMS_SIGNATURE_ECDSA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SIGNATURE_ECC_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SIGNATURE_ECDSA_Unmarshal(TPMS_SIGNATURE_ECDSA *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SIGNATURE_ECC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SIGNATURE_ECDAA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4251
      start: 4242
    functionDepth: 4
    functionLinenumber: 4242
    functionLinenumberEnd: 4251
    functionName: TPMS_SIGNATURE_ECDAA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SIGNATURE_ECC_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SIGNATURE_ECDAA_Unmarshal(TPMS_SIGNATURE_ECDAA *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SIGNATURE_ECC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SIGNATURE_SM2*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4262
      start: 4253
    functionDepth: 4
    functionLinenumber: 4253
    functionLinenumberEnd: 4262
    functionName: TPMS_SIGNATURE_SM2_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SIGNATURE_ECC_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SIGNATURE_SM2_Unmarshal(TPMS_SIGNATURE_SM2 *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_SIGNATURE_ECC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SIGNATURE_ECSCHNORR*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4273
      start: 4264
    functionDepth: 4
    functionLinenumber: 4264
    functionLinenumberEnd: 4273
    functionName: TPMS_SIGNATURE_ECSCHNORR_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SIGNATURE_ECC_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SIGNATURE_ECSCHNORR_Unmarshal(TPMS_SIGNATURE_ECSCHNORR
      *target, BYTE **buffer, INT32 *size)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4283,1
    - Dst: TPMS_SIGNATURE_RSASSA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4291,1
    - Dst: TPMS_SIGNATURE_RSAPSS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4296,1
    - Dst: TPMS_SIGNATURE_ECDSA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4301,1
    - Dst: TPMS_SIGNATURE_ECDAA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4306,1
    - Dst: TPMS_SIGNATURE_SM2_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4311,1
    - Dst: TPMS_SIGNATURE_ECSCHNORR_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4316,1
    - Dst: TPMT_HA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4321,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_SIGNATURE*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4330
      start: 4277
    functionDepth: 5
    functionLinenumber: 4277
    functionLinenumberEnd: 4330
    functionName: TPMU_SIGNATURE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SIGNATURE_ECSCHNORR_Unmarshal
    - RuntimeAlgorithmCheckEnabled
    - TPMS_SIGNATURE_ECDSA_Unmarshal
    - TPMS_SIGNATURE_RSAPSS_Unmarshal
    - TPMT_HA_Unmarshal
    - TPMS_SIGNATURE_ECDAA_Unmarshal
    - TPMS_SIGNATURE_RSASSA_Unmarshal
    - TPMS_SIGNATURE_SM2_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMU_SIGNATURE_Unmarshal(TPMU_SIGNATURE *target, BYTE **buffer,
      INT32 *size, UINT32 selector)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_SIG_SCHEME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4340,1
    - Dst: TPMU_SIGNATURE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMT_SIGNATURE*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4346
      start: 4334
    functionDepth: 6
    functionLinenumber: 4334
    functionLinenumberEnd: 4346
    functionName: TPMT_SIGNATURE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMU_SIGNATURE_Unmarshal
    - TPMI_ALG_SIG_SCHEME_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_SIGNATURE_Unmarshal(TPMT_SIGNATURE *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_ENCRYPTED_SECRET*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4359
      start: 4350
    functionDepth: 2
    functionLinenumber: 4350
    functionLinenumberEnd: 4359
    functionName: TPM2B_ENCRYPTED_SECRET_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_ENCRYPTED_SECRET_Unmarshal(TPM2B_ENCRYPTED_SECRET *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TPM_ALG_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMI_ALG_PUBLIC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4393
      start: 4363
    functionDepth: 2
    functionLinenumber: 4363
    functionLinenumberEnd: 4393
    functionName: TPMI_ALG_PUBLIC_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 2
    functionsReached:
    - TPM_ALG_ID_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMI_ALG_PUBLIC_Unmarshal(TPMI_ALG_PUBLIC *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4405,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4410,1
    - Dst: TPM2B_PUBLIC_KEY_RSA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4415,1
    - Dst: TPMS_ECC_POINT_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4420,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_PUBLIC_ID*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4427
      start: 4397
    functionDepth: 4
    functionLinenumber: 4397
    functionLinenumberEnd: 4427
    functionName: TPMU_PUBLIC_ID_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - TPM2B_PUBLIC_KEY_RSA_Unmarshal
    - TPMS_ECC_POINT_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMU_PUBLIC_ID_Unmarshal(TPMU_PUBLIC_ID *target, BYTE **buffer,
      INT32 *size, UINT32 selector)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPMT_KEYEDHASH_SCHEME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_KEYEDHASH_PARMS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4440
      start: 4431
    functionDepth: 7
    functionLinenumber: 4431
    functionLinenumberEnd: 4440
    functionName: TPMS_KEYEDHASH_PARMS_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMT_KEYEDHASH_SCHEME_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_KEYEDHASH_PARMS_Unmarshal(TPMS_KEYEDHASH_PARMS *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TPMT_SYM_DEF_OBJECT_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4450,1
    - Dst: TPMT_RSA_SCHEME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4453,1
    - Dst: TPMI_RSA_KEY_BITS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4456,1
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4459,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_RSA_PARMS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4462
      start: 4444
    functionDepth: 7
    functionLinenumber: 4444
    functionLinenumberEnd: 4462
    functionName: TPMS_RSA_PARMS_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    - TPMT_RSA_SCHEME_Unmarshal
    - TPMI_RSA_KEY_BITS_Unmarshal
    - TPMT_SYM_DEF_OBJECT_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_RSA_PARMS_Unmarshal(TPMS_RSA_PARMS *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPMT_SYM_DEF_OBJECT_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4473,1
    - Dst: TPMT_ECC_SCHEME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4476,1
    - Dst: TPMI_ECC_CURVE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4479,1
    - Dst: TPMT_KDF_SCHEME_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4482,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_ECC_PARMS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4488
      start: 4466
    functionDepth: 7
    functionLinenumber: 4466
    functionLinenumberEnd: 4488
    functionName: TPMS_ECC_PARMS_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMT_ECC_SCHEME_Unmarshal
    - TPMT_KDF_SCHEME_Unmarshal
    - TPMI_ECC_CURVE_Unmarshal
    - TPMT_SYM_DEF_OBJECT_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_ECC_PARMS_Unmarshal(TPMS_ECC_PARMS *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_KEYEDHASH_PARMS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4500,1
    - Dst: TPMS_SYMCIPHER_PARMS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4505,1
    - Dst: TPMS_RSA_PARMS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4510,1
    - Dst: TPMS_ECC_PARMS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4515,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_PUBLIC_PARMS*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4522
      start: 4492
    functionDepth: 8
    functionLinenumber: 4492
    functionLinenumberEnd: 4522
    functionName: TPMU_PUBLIC_PARMS_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - TPMS_ECC_PARMS_Unmarshal
    - TPMS_SYMCIPHER_PARMS_Unmarshal
    - TPMS_KEYEDHASH_PARMS_Unmarshal
    - TPMS_RSA_PARMS_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMU_PUBLIC_PARMS_Unmarshal(TPMU_PUBLIC_PARMS *target, BYTE
      **buffer, INT32 *size, UINT32 selector)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_PUBLIC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4532,1
    - Dst: TPMU_PUBLIC_PARMS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMT_PUBLIC_PARMS*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4538
      start: 4526
    functionDepth: 9
    functionLinenumber: 4526
    functionLinenumberEnd: 4538
    functionName: TPMT_PUBLIC_PARMS_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMU_PUBLIC_PARMS_Unmarshal
    - TPMI_ALG_PUBLIC_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_PUBLIC_PARMS_Unmarshal(TPMT_PUBLIC_PARMS *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_PUBLIC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4548,1
    - Dst: TPMI_ALG_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4551,1
    - Dst: TPMA_OBJECT_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4554,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4557,1
    - Dst: TPMU_PUBLIC_PARMS_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4560,1
    - Dst: TPMU_PUBLIC_ID_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4563,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPMT_PUBLIC*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4566
      start: 4542
    functionDepth: 9
    functionLinenumber: 4542
    functionLinenumberEnd: 4566
    functionName: TPMT_PUBLIC_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - TPMA_OBJECT_Unmarshal
    - TPMI_ALG_HASH_Unmarshal
    - TPMI_ALG_PUBLIC_Unmarshal
    - TPMU_PUBLIC_ID_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    - TPMU_PUBLIC_PARMS_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_PUBLIC_Unmarshal(TPMT_PUBLIC *target, BYTE **buffer, INT32
      *size, BOOL allowNull)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4577,1
    - Dst: TPMT_PUBLIC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4588,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - allowNull
    argTypes:
    - TPM2B_PUBLIC*
    - BYTE**
    - INT32*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4597
      start: 4570
    functionDepth: 10
    functionLinenumber: 4570
    functionLinenumberEnd: 4597
    functionName: TPM2B_PUBLIC_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMT_PUBLIC_Unmarshal
    - UINT16_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_PUBLIC_Unmarshal(TPM2B_PUBLIC *target, BYTE **buffer,
      INT32 *size, BOOL allowNull)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_TEMPLATE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4610
      start: 4601
    functionDepth: 2
    functionLinenumber: 4601
    functionLinenumberEnd: 4610
    functionName: TPM2B_TEMPLATE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_TEMPLATE_Unmarshal(TPM2B_TEMPLATE *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_PRIVATE_KEY_RSA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4622,1
    - Dst: TPM2B_ECC_PARAMETER_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4627,1
    - Dst: TPM2B_SENSITIVE_DATA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4632,1
    - Dst: TPM2B_SYM_KEY_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4637,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_SENSITIVE_COMPOSITE*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4644
      start: 4614
    functionDepth: 3
    functionLinenumber: 4614
    functionLinenumberEnd: 4644
    functionName: TPMU_SENSITIVE_COMPOSITE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - TPM2B_PRIVATE_KEY_RSA_Unmarshal
    - TPM2B_SENSITIVE_DATA_Unmarshal
    - TPM2B_SYM_KEY_Unmarshal
    - TPM2B_ECC_PARAMETER_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMU_SENSITIVE_COMPOSITE_Unmarshal(TPMU_SENSITIVE_COMPOSITE
      *target, BYTE **buffer, INT32 *size, UINT32 selector)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_ALG_PUBLIC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4654,1
    - Dst: TPM2B_AUTH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4657,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4660,1
    - Dst: TPMU_SENSITIVE_COMPOSITE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4663,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMT_SENSITIVE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4666
      start: 4648
    functionDepth: 4
    functionLinenumber: 4648
    functionLinenumberEnd: 4666
    functionName: TPMT_SENSITIVE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 3
    functionsReached:
    - TPM2B_AUTH_Unmarshal
    - TPMI_ALG_PUBLIC_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    - TPMU_SENSITIVE_COMPOSITE_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_SENSITIVE_Unmarshal(TPMT_SENSITIVE *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4677,1
    - Dst: TPMT_SENSITIVE_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4684,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_SENSITIVE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4694
      start: 4670
    functionDepth: 5
    functionLinenumber: 4670
    functionLinenumberEnd: 4694
    functionName: TPM2B_SENSITIVE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMT_SENSITIVE_Unmarshal
    - UINT16_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_SENSITIVE_Unmarshal(TPM2B_SENSITIVE *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_PRIVATE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4707
      start: 4698
    functionDepth: 2
    functionLinenumber: 4698
    functionLinenumberEnd: 4707
    functionName: TPM2B_PRIVATE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_PRIVATE_Unmarshal(TPM2B_PRIVATE *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_ID_OBJECT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4720
      start: 4711
    functionDepth: 2
    functionLinenumber: 4711
    functionLinenumberEnd: 4720
    functionName: TPM2B_ID_OBJECT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_ID_OBJECT_Unmarshal(TPM2B_ID_OBJECT *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4731,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMA_NV*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4740
      start: 4724
    functionDepth: 1
    functionLinenumber: 4724
    functionLinenumberEnd: 4740
    functionName: TPMA_NV_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMA_NV_Unmarshal(TPMA_NV *target, BYTE **buffer, INT32 *size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_RH_NV_INDEX_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4750,1
    - Dst: TPMI_ALG_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4753,1
    - Dst: TPMA_NV_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4756,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4759,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4762,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_NV_PUBLIC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4771
      start: 4744
    functionDepth: 3
    functionLinenumber: 4744
    functionLinenumberEnd: 4771
    functionName: TPMS_NV_PUBLIC_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - TPMI_ALG_HASH_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    - TPMI_RH_NV_INDEX_Unmarshal
    - UINT16_Unmarshal
    - TPMA_NV_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_NV_PUBLIC_Unmarshal(TPMS_NV_PUBLIC *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4782,1
    - Dst: TPMS_NV_PUBLIC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_NV_PUBLIC*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4802
      start: 4775
    functionDepth: 4
    functionLinenumber: 4775
    functionLinenumberEnd: 4802
    functionName: TPM2B_NV_PUBLIC_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT16_Unmarshal
    - TPMS_NV_PUBLIC_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_NV_PUBLIC_Unmarshal(TPM2B_NV_PUBLIC *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4812,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMA_NV_EXP*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4820
      start: 4806
    functionDepth: 1
    functionLinenumber: 4806
    functionLinenumberEnd: 4820
    functionName: TPMA_NV_EXP_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT64_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMA_NV_EXP_Unmarshal(TPMA_NV_EXP *target, BYTE **buffer, INT32
      *size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TPMI_RH_NV_EXP_INDEX_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4830,1
    - Dst: TPMI_ALG_HASH_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4833,1
    - Dst: TPMA_NV_EXP_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4836,1
    - Dst: TPM2B_DIGEST_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4839,1
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4842,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_NV_PUBLIC_EXP_ATTR*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4850
      start: 4824
    functionDepth: 3
    functionLinenumber: 4824
    functionLinenumberEnd: 4850
    functionName: TPMS_NV_PUBLIC_EXP_ATTR_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMI_ALG_HASH_Unmarshal
    - TPMI_RH_NV_EXP_INDEX_Unmarshal
    - TPM2B_DIGEST_Unmarshal
    - UINT16_Unmarshal
    - TPMA_NV_EXP_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_NV_PUBLIC_EXP_ATTR_Unmarshal(TPMS_NV_PUBLIC_EXP_ATTR *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_NV_PUBLIC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4861,1
    - Dst: TPMS_NV_PUBLIC_EXP_ATTR_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4864,1
    - Dst: TPMS_NV_PUBLIC_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4867,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_NV_PUBLIC_2*
    - BYTE**
    - INT32*
    - UINT8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4873
      start: 4854
    functionDepth: 4
    functionLinenumber: 4854
    functionLinenumberEnd: 4873
    functionName: TPMU_NV_PUBLIC_2_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_NV_PUBLIC_Unmarshal
    - TPMS_NV_PUBLIC_EXP_ATTR_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMU_NV_PUBLIC_2_Unmarshal( TPMU_NV_PUBLIC_2 *target, BYTE **buffer,
      INT32 *size, UINT8 selector)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4883,1
    - Dst: TPMU_NV_PUBLIC_2_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMT_NV_PUBLIC_2*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4889
      start: 4877
    functionDepth: 5
    functionLinenumber: 4877
    functionLinenumberEnd: 4889
    functionName: TPMT_NV_PUBLIC_2_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT8_Unmarshal
    - TPMU_NV_PUBLIC_2_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMT_NV_PUBLIC_2_Unmarshal(TPMT_NV_PUBLIC_2 *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4899,1
    - Dst: TPMT_NV_PUBLIC_2_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4910,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_NV_PUBLIC_2*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4918
      start: 4892
    functionDepth: 6
    functionLinenumber: 4892
    functionLinenumberEnd: 4918
    functionName: TPM2B_NV_PUBLIC_2_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMT_NV_PUBLIC_2_Unmarshal
    - UINT16_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_NV_PUBLIC_2_Unmarshal(TPM2B_NV_PUBLIC_2 *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_CONTEXT_SENSITIVE*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4931
      start: 4922
    functionDepth: 2
    functionLinenumber: 4922
    functionLinenumberEnd: 4931
    functionName: TPM2B_CONTEXT_SENSITIVE_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_CONTEXT_SENSITIVE_Unmarshal(TPM2B_CONTEXT_SENSITIVE *target,
      BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_CONTEXT_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4945
      start: 4936
    functionDepth: 2
    functionLinenumber: 4936
    functionLinenumberEnd: 4945
    functionName: TPM2B_CONTEXT_DATA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_CONTEXT_DATA_Unmarshal(TPM2B_CONTEXT_DATA *target, BYTE
      **buffer, INT32 *size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: UINT64_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4956,1
    - Dst: TPMI_DH_SAVED_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4959,1
    - Dst: TPMI_RH_HIERARCHY_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4962,1
    - Dst: TPM2B_CONTEXT_DATA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4965,1
    - Dst: TPMCapGetProperties
      Src: /src/libtpms/src/tpm2/Unmarshal.c:4987,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_CONTEXT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4997
      start: 4949
    functionDepth: 7
    functionLinenumber: 4949
    functionLinenumberEnd: 4997
    functionName: TPMS_CONTEXT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPM2B_CONTEXT_DATA_Unmarshal
    - TPMI_DH_SAVED_Unmarshal
    - UINT64_Unmarshal
    - TPMI_RH_HIERARCHY_Unmarshal
    - TPMCapGetProperties
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_CONTEXT_Unmarshal(TPMS_CONTEXT *target, BYTE **buffer,
      INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:5007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM_AT*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5010
      start: 5001
    functionDepth: 1
    functionLinenumber: 5001
    functionLinenumberEnd: 5010
    functionName: TPM_AT_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - UINT32_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM_AT_Unmarshal(TPM_AT *target, BYTE **buffer, INT32 *size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - target
    - buffer
    - size
    - selector
    argTypes:
    - TPMU_SET_CAPABILITIES*
    - BYTE**
    - INT32*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5023
      start: 5013
    functionDepth: 0
    functionLinenumber: 5013
    functionLinenumberEnd: 5023
    functionName: TPMU_SET_CAPABILITIES_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMU_SET_CAPABILITIES_Unmarshal(TPMU_SET_CAPABILITIES *target,
      BYTE **buffer, INT32 *size, UINT32 selector)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_CAP_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:5031,1
    - Dst: TPMU_SET_CAPABILITIES_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:5034,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPMS_SET_CAPABILITY_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5037
      start: 5025
    functionDepth: 2
    functionLinenumber: 5025
    functionLinenumberEnd: 5037
    functionName: TPMS_SET_CAPABILITY_DATA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 1
    functionsReached:
    - TPMU_SET_CAPABILITIES_Unmarshal
    - TPM_CAP_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPMS_SET_CAPABILITY_DATA_Unmarshal(TPMS_SET_CAPABILITY_DATA
      *target, BYTE **buffer, INT32 *size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:5046,1
    - Dst: TPMS_SET_CAPABILITY_DATA_Unmarshal
      Src: /src/libtpms/src/tpm2/Unmarshal.c:5057,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - TPM2B_SET_CAPABILITY_DATA*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5065
      start: 5039
    functionDepth: 3
    functionLinenumber: 5039
    functionLinenumberEnd: 5065
    functionName: TPM2B_SET_CAPABILITY_DATA_Unmarshal
    functionSourceFile: /src/libtpms/src/tpm2/Unmarshal.c
    functionUses: 0
    functionsReached:
    - TPMS_SET_CAPABILITY_DATA_Unmarshal
    - UINT16_Unmarshal
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC TPM2B_SET_CAPABILITY_DATA_Unmarshal(TPM2B_SET_CAPABILITY_DATA
      *target, BYTE **buffer, INT32 *size)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmCapGetImplemented
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:77,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:82,1
    - Dst: ObjectCapGetLoaded
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:86,1
    - Dst: NvCapGetPersistent
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:92,1
    - Dst: NvCapGetIndex
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:98,1
    - Dst: SessionCapGetLoaded
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:104,1
    - Dst: SessionCapGetSaved
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:114,1
    - Dst: PCRCapGetHandles
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:120,1
    - Dst: PermanentCapGetHandles
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:126,1
    - Dst: CommandCapGetCCList
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:137,1
    - Dst: PhysicalPresenceCapGetCCList
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:142,1
    - Dst: CommandAuditCapGetCCList
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:147,1
    - Dst: PCRCapGetAllocation
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:155,1
    - Dst: PCRCapGetProperties
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:159,1
    - Dst: TPMCapGetProperties
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:164,1
    - Dst: CryptCapGetECCCurve
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:170,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:176,1
    - Dst: PermanentHandleGetPolicy
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:178,1
    - Dst: ActGetCapabilityData
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:186,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 74
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - GetCapability_In*
    - GetCapability_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 64
    functionDepth: 7
    functionLinenumber: 64
    functionLinenumberEnd: 198
    functionName: TPM2_GetCapability
    functionSourceFile: /src/libtpms/src/tpm2/CapabilityCommands.c
    functionUses: 0
    functionsReached:
    - AlgorithmCapGetImplemented
    - PermanentCapGetHandles
    - PCRCapGetAllocation
    - PermanentHandleGetPolicy
    - ObjectCapGetLoaded
    - NvCapGetIndex
    - CryptCapGetECCCurve
    - ActGetCapabilityData
    - HandleGetType
    - PCRCapGetProperties
    - NvCapGetPersistent
    - CommandCapGetCCList
    - PCRCapGetHandles
    - PhysicalPresenceCapGetCCList
    - TPMCapGetProperties
    - SessionCapGetLoaded
    - SessionCapGetSaved
    - CommandAuditCapGetCCList
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_GetCapability(\n\t\t   GetCapability_In    *in,            //
      IN: input parameter list\n\t\t   GetCapability_Out   *out            // OUT:
      output parameter list\n\t\t   )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/CapabilityCommands.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - TestParms_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 214
    functionName: TPM2_TestParms
    functionSourceFile: /src/libtpms/src/tpm2/CapabilityCommands.c
    functionUses: 0
    functionsReached:
    - NOT_REFERENCED
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_TestParms(\n\t       TestParms_In    *in             //
      IN: input parameter list\n\t       )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - SetCapability_In*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: TPM2_SetCapability
    functionSourceFile: /src/libtpms/src/tpm2/CapabilityCommands.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_SetCapability(SetCapability_In* in  // IN: input parameter
      list\n\t\t   )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _plat__TimerReset
      Src: /src/libtpms/src/tpm2/PowerPlat.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: _plat__Signal_PowerOn
    functionSourceFile: /src/libtpms/src/tpm2/PowerPlat.c
    functionUses: 1
    functionsReached:
    - _plat__TimerReset
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__Signal_PowerOn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: _plat__WasPowerLost
    functionSourceFile: /src/libtpms/src/tpm2/PowerPlat.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__WasPowerLost(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _TPM_Init
      Src: /src/libtpms/src/tpm2/PowerPlat.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 102
    functionDepth: 8
    functionLinenumber: 102
    functionLinenumberEnd: 116
    functionName: _plat__Signal_Reset
    functionSourceFile: /src/libtpms/src/tpm2/PowerPlat.c
    functionUses: 1
    functionsReached:
    - _TPM_Init
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__Signal_Reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _plat__NVDisable
      Src: /src/libtpms/src/tpm2/PowerPlat.c:123,1
    - Dst: _plat__ACT_EnableTicks
      Src: /src/libtpms/src/tpm2/PowerPlat.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 131
    functionName: _plat__Signal_PowerOff
    functionSourceFile: /src/libtpms/src/tpm2/PowerPlat.c
    functionUses: 1
    functionsReached:
    - _plat__ACT_EnableTicks
    - _plat__NVDisable
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__Signal_PowerOff(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/Attest_spt.c:78,1
    - Dst: UINT32_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/Attest_spt.c:91,1
    - Dst: CryptIsSchemeAnonymous
      Src: /src/libtpms/src/tpm2/Attest_spt.c:97,1
    - Dst: TimeFillInfo
      Src: /src/libtpms/src/tpm2/Attest_spt.c:103,1
    - Dst: CryptKDFa
      Src: /src/libtpms/src/tpm2/Attest_spt.c:118,1
    - Dst: CryptIsSchemeAnonymous
      Src: /src/libtpms/src/tpm2/Attest_spt.c:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - signHandle
    - scheme
    - data
    - attest
    argTypes:
    - TPMI_DH_OBJECT
    - TPMT_SIG_SCHEME*
    - TPM2B_DATA*
    - TPMS_ATTEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 142
    functionName: FillInAttestInfo
    functionSourceFile: /src/libtpms/src/tpm2/Attest_spt.c
    functionUses: 7
    functionsReached:
    - UINT32_TO_BYTE_ARRAY
    - HandleToObject
    - CryptIsSchemeAnonymous
    - CryptKDFa
    - TimeFillInfo
    linkageType: ''
    returnType: void
    signature: "void FillInAttestInfo(\n    TPMI_DH_OBJECT   signHandle,  // IN: handle
      of signing object\n    TPMT_SIG_SCHEME* scheme,      // IN/OUT: scheme to be
      used for signing\n    TPM2B_DATA*      data,        // IN: qualifying data\n
      \   TPMS_ATTEST*     attest       // OUT: attest structure\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TPMS_ATTEST_Marshal
      Src: /src/libtpms/src/tpm2/Attest_spt.c:173,1
    - Dst: CryptHashBlock
      Src: /src/libtpms/src/tpm2/Attest_spt.c:187,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/Attest_spt.c:196,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Attest_spt.c:197,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Attest_spt.c:198,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/Attest_spt.c:199,1
    - Dst: CryptSign
      Src: /src/libtpms/src/tpm2/Attest_spt.c:203,1
    - Dst: NvClearOrderly
      Src: /src/libtpms/src/tpm2/Attest_spt.c:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 6
    argNames:
    - signKey
    - scheme
    - certifyInfo
    - qualifyingData
    - attest
    - signature
    argTypes:
    - OBJECT*
    - TPMT_SIG_SCHEME*
    - TPMS_ATTEST*
    - TPM2B_DATA*
    - TPM2B_ATTEST*
    - TPMT_SIGNATURE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 155
    functionDepth: 9
    functionLinenumber: 155
    functionLinenumberEnd: 215
    functionName: SignAttestInfo
    functionSourceFile: /src/libtpms/src/tpm2/Attest_spt.c
    functionUses: 7
    functionsReached:
    - CryptDigestUpdate2B
    - CryptSign
    - NvClearOrderly
    - CryptHashStart
    - TPMS_ATTEST_Marshal
    - CryptHashEnd2B
    - CryptHashBlock
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC SignAttestInfo(OBJECT*          signKey,         // IN: sign
      object\n               TPMT_SIG_SCHEME* scheme,          // IN: sign scheme\n
      \              TPMS_ATTEST*     certifyInfo,     // IN: the data to be signed\n
      \              TPM2B_DATA*      qualifyingData,  // IN: extra data for the signing\n
      \                                                //     process\n               TPM2B_ATTEST*
      attest,             // OUT: marshaled attest blob to be\n                                                 //
      \    signed\n               TPMT_SIGNATURE* signature         // OUT: signature\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/Attest_spt.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - object
    argTypes:
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: IsSigningObject
    functionSourceFile: /src/libtpms/src/tpm2/Attest_spt.c
    functionUses: 8
    functionsReached:
    - IS_ATTRIBUTE
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL IsSigningObject(OBJECT* object  // IN:

      )'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:80,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:82,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:84,1
    - Dst: ObjectIsStorage
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:91,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:95,1
    - Dst: CryptSecretEncrypt
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:124,1
    - Dst: SensitiveToDuplicate
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:141,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - Duplicate_In*
    - Duplicate_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 66
    functionDepth: 6
    functionLinenumber: 66
    functionLinenumberEnd: 147
    functionName: TPM2_Duplicate
    functionSourceFile: /src/libtpms/src/tpm2/DuplicationCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - ObjectIsStorage
    - HandleToObject
    - SensitiveToDuplicate
    - CryptSecretEncrypt
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Duplicate(\n\t       Duplicate_In    *in,            //
      IN: input parameter list\n\t       Duplicate_Out   *out            // OUT: output
      parameter list\n\t       )"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:171,1
    - Dst: ObjectIsStorage
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:173,1
    - Dst: CryptSecretDecrypt
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:178,1
    - Dst: UnwrapOuter
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:183,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:188,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:191,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:193,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:194,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:205,1
    - Dst: ObjectIsStorage
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:207,1
    - Dst: CryptSecretEncrypt
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:213,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:219,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:228,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:230,1
    - Dst: ProduceOuterWrap
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:233,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - Rewrap_In*
    - Rewrap_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 153
    functionDepth: 6
    functionLinenumber: 153
    functionLinenumberEnd: 247
    functionName: TPM2_Rewrap
    functionSourceFile: /src/libtpms/src/tpm2/DuplicationCommands.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - MemoryCopy
    - RcSafeAddToResult
    - ObjectIsStorage
    - CryptSecretDecrypt
    - pAssert
    - HandleToObject
    - ProduceOuterWrap
    - UnwrapOuter
    - CryptSecretEncrypt
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Rewrap(\n\t    Rewrap_In       *in,            // IN:
      input parameter list\n\t    Rewrap_Out      *out            // OUT: output parameter
      list\n\t    )"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:271,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:272,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:275,1
    - Dst: ObjectIsParent
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:276,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:294,1
    - Dst: CryptSecretDecrypt
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:307,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:309,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:311,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:317,1
    - Dst: PublicMarshalAndComputeName
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:322,1
    - Dst: DuplicateToSensitive
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:327,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:332,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:336,1
    - Dst: ObjectLoad
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:338,1
    - Dst: SensitiveToPrivate
      Src: /src/libtpms/src/tpm2/DuplicationCommands.c:346,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - Import_In*
    - Import_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 253
    functionDepth: 12
    functionLinenumber: 253
    functionLinenumberEnd: 351
    functionName: TPM2_Import
    functionSourceFile: /src/libtpms/src/tpm2/DuplicationCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - PublicMarshalAndComputeName
    - RcSafeAddToResult
    - CryptSecretDecrypt
    - pAssert
    - HandleToObject
    - DuplicateToSensitive
    - ObjectLoad
    - ObjectIsParent
    - SensitiveToPrivate
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Import(\n\t    Import_In       *in,            // IN:
      input parameter list\n\t    Import_Out      *out            // OUT: output parameter
      list\n\t    )"
  - 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: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: MAX
    functionSourceFile: /src/libtpms/src/tpm2/MinMax.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(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: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: MIN
    functionSourceFile: /src/libtpms/src/tpm2/MinMax.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a, b)
  - 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: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: SIZEOF_MEMBER
    functionSourceFile: /src/libtpms/src/tpm2/MinMax.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIZEOF_MEMBER(type, member)
  - BBCount: 20
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 2
    argNames:
    - actData
    - 'on'
    argTypes:
    - P_ACT_DATA
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 155
    functionName: ActSignal
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ActSignal(P_ACT_DATA actData, int on)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FOR_EACH_ACT
      Src: /src/libtpms/src/tpm2/PlatformACT.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - act
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: ActGetDataPointer
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.c
    functionUses: 0
    functionsReached:
    - FOR_EACH_ACT
    linkageType: ''
    returnType: P_ACT_DATA
    signature: P_ACT_DATA ActGetDataPointer(uint32_t act)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: RETURN_ACT_POINTER
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_ACT_POINTER(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ActGetDataPointer
      Src: /src/libtpms/src/tpm2/PlatformACT.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - act
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: _plat__ACT_GetImplemented
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.c
    functionUses: 0
    functionsReached:
    - ActGetDataPointer
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__ACT_GetImplemented(uint32_t act)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ActGetDataPointer
      Src: /src/libtpms/src/tpm2/PlatformACT.c:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - act
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 198
    functionName: _plat__ACT_GetRemaining
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.c
    functionUses: 0
    functionsReached:
    - ActGetDataPointer
    linkageType: ''
    returnType: LIB_EXPORT
    signature: 'LIB_EXPORT _plat__ACT_GetRemaining(uint32_t act  //IN: the ACT selector

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ActGetDataPointer
      Src: /src/libtpms/src/tpm2/PlatformACT.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - act
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 209
    functionName: _plat__ACT_GetSignaled
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.c
    functionUses: 1
    functionsReached:
    - ActGetDataPointer
    linkageType: ''
    returnType: LIB_EXPORT
    signature: 'LIB_EXPORT _plat__ACT_GetSignaled(uint32_t act  //IN: number of ACT
      to check

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ActSignal
      Src: /src/libtpms/src/tpm2/PlatformACT.c:215,1
    - Dst: ActGetDataPointer
      Src: /src/libtpms/src/tpm2/PlatformACT.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - act
    - 'on'
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: _plat__ACT_SetSignaled
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.c
    functionUses: 0
    functionsReached:
    - ActSignal
    - ActGetDataPointer
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__ACT_SetSignaled(uint32_t act, int on)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ActGetDataPointer
      Src: /src/libtpms/src/tpm2/PlatformACT.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - act
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: _plat__ACT_GetPending
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.c
    functionUses: 0
    functionsReached:
    - ActGetDataPointer
    linkageType: ''
    returnType: LIB_EXPORT
    signature: 'LIB_EXPORT _plat__ACT_GetPending(uint32_t act  //IN: number of ACT
      to check

      )'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ActGetDataPointer
      Src: /src/libtpms/src/tpm2/PlatformACT.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - act
    - newValue
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 251
    functionName: _plat__ACT_UpdateCounter
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.c
    functionUses: 0
    functionsReached:
    - ActGetDataPointer
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT _plat__ACT_UpdateCounter(uint32_t act,      // IN: ACT
      to update\n                                        uint32_t newValue  // IN:
      the value to post\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enable
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    functionName: _plat__ACT_EnableTicks
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__ACT_EnableTicks(int enable)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ActSignal
      Src: /src/libtpms/src/tpm2/PlatformACT.c:290,1
    - Dst: ActSignal
      Src: /src/libtpms/src/tpm2/PlatformACT.c:295,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - actData
    argTypes:
    - P_ACT_DATA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 296
    functionName: ActDecrement
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.c
    functionUses: 0
    functionsReached:
    - ActSignal
    linkageType: ''
    returnType: void
    signature: void ActDecrement(P_ACT_DATA actData)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FOR_EACH_ACT
      Src: /src/libtpms/src/tpm2/PlatformACT.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 314
    functionName: _plat__ACT_Tick
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.c
    functionUses: 0
    functionsReached:
    - FOR_EACH_ACT
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__ACT_Tick(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: DECREMENT_COUNT
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECREMENT_COUNT(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ActSignal
      Src: /src/libtpms/src/tpm2/PlatformACT.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - act
    - actData
    argTypes:
    - uint32_t
    - P_ACT_DATA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 325
    functionName: ActZero
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.c
    functionUses: 0
    functionsReached:
    - ActSignal
    linkageType: ''
    returnType: void
    signature: void ActZero(uint32_t act, P_ACT_DATA actData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FOR_EACH_ACT
      Src: /src/libtpms/src/tpm2/PlatformACT.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 337
    functionName: _plat__ACT_Initialize
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.c
    functionUses: 0
    functionsReached:
    - FOR_EACH_ACT
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT _plat__ACT_Initialize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: ZERO_ACT
    functionSourceFile: /src/libtpms/src/tpm2/PlatformACT.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZERO_ACT(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: REVERSE_ENDIAN_16
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_msvc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_16(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: REVERSE_ENDIAN_32
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_msvc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_32(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _Number
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: REVERSE_ENDIAN_64
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_msvc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REVERSE_ENDIAN_64(_Number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: NOT_REFERENCED
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_msvc.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOT_REFERENCED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: _REDUCE_WARNING_LEVEL_
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_msvc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _REDUCE_WARNING_LEVEL_(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: TPM_STATIC_ASSERT
    functionSourceFile: /src/libtpms/src/tpm2/CompilerDependencies_msvc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TPM_STATIC_ASSERT(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: IF_ACT_0_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_0_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: IF_ACT_1_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_1_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: IF_ACT_2_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_2_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: IF_ACT_3_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_3_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: IF_ACT_4_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_4_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: IF_ACT_5_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_5_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: IF_ACT_6_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_6_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: IF_ACT_7_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_7_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: IF_ACT_8_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_8_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: IF_ACT_9_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_9_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: IF_ACT_A_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_A_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: IF_ACT_B_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_B_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: IF_ACT_C_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_C_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: IF_ACT_D_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_D_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: IF_ACT_E_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_E_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 187
    functionName: IF_ACT_F_IMPLEMENTED
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_ACT_F_IMPLEMENTED(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 256
    functionName: FOR_EACH_ACT
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOR_EACH_ACT(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: CASE_ACT_HANDLE
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_ACT_HANDLE(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 263
    functionName: CASE_ACT_NUMBER
    functionSourceFile: /src/libtpms/src/tpm2/ACT.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE_ACT_NUMBER(N)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CryptEccGetParametersByCurveId
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:91,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:110,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:111,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:112,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:113,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:114,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:115,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:116,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:117,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:118,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:119,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:120,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:130,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:138,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:141,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:142,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:144,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:145,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:146,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:147,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:168,1
    - Dst: MAX
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:170,1
    - Dst: MAX
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:170,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:178,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:185,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:201,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:204,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:209,1
    - Dst: FOR_EACH_ACT
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:222,1
    - Dst: _plat__ACT_GetImplemented
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:223,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:225,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/TpmSizeChecks.c:240,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 246
    functionName: TpmSizeChecks
    functionSourceFile: /src/libtpms/src/tpm2/TpmSizeChecks.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - CryptEccGetParametersByCurveId
    - NOT_REFERENCED
    - _plat__ACT_GetImplemented
    - SET_ATTRIBUTE
    - printf
    - MAX
    - FOR_EACH_ACT
    linkageType: ''
    returnType: BOOL
    signature: BOOL TpmSizeChecks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/TpmASN1.c:80,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/TpmASN1.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - size
    - buffer
    argTypes:
    - ASN1UnmarshalContext*
    - INT16
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: ASN1UnmarshalContextInitialize
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 2
    functionsReached:
    - GOTO_ERROR_UNLESS
    linkageType: ''
    returnType: BOOL
    signature: "BOOL ASN1UnmarshalContextInitialize(\n    ASN1UnmarshalContext* ctx,
      INT16 size, BYTE* buffer)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/TpmASN1.c:102,1
    - Dst: NEXT_OCTET
      Src: /src/libtpms/src/tpm2/TpmASN1.c:103,1
    - Dst: CHECK_SIZE
      Src: /src/libtpms/src/tpm2/TpmASN1.c:110,1
    - Dst: NEXT_OCTET
      Src: /src/libtpms/src/tpm2/TpmASN1.c:115,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/TpmASN1.c:117,1
    - Dst: NEXT_OCTET
      Src: /src/libtpms/src/tpm2/TpmASN1.c:119,1
    - Dst: NEXT_OCTET
      Src: /src/libtpms/src/tpm2/TpmASN1.c:122,1
    - Dst: CHECK_SIZE
      Src: /src/libtpms/src/tpm2/TpmASN1.c:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ASN1UnmarshalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 135
    functionName: ASN1DecodeLength
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 0
    functionsReached:
    - GOTO_ERROR_UNLESS
    - CHECK_SIZE
    - NEXT_OCTET
    linkageType: ''
    returnType: INT16
    signature: INT16 ASN1DecodeLength(ASN1UnmarshalContext* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/TpmASN1.c:149,1
    - Dst: NEXT_OCTET
      Src: /src/libtpms/src/tpm2/TpmASN1.c:151,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/TpmASN1.c:153,1
    - Dst: ASN1DecodeLength
      Src: /src/libtpms/src/tpm2/TpmASN1.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ASN1UnmarshalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 162
    functionName: ASN1NextTag
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 4
    functionsReached:
    - GOTO_ERROR_UNLESS
    - NEXT_OCTET
    - ASN1DecodeLength
    linkageType: ''
    returnType: INT16
    signature: INT16 ASN1NextTag(ASN1UnmarshalContext* ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1NextTag
      Src: /src/libtpms/src/tpm2/TpmASN1.c:179,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/TpmASN1.c:180,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/TpmASN1.c:181,1
    - Dst: NEXT_OCTET
      Src: /src/libtpms/src/tpm2/TpmASN1.c:183,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/TpmASN1.c:188,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/TpmASN1.c:194,1
    - Dst: NEXT_OCTET
      Src: /src/libtpms/src/tpm2/TpmASN1.c:195,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/TpmASN1.c:202,1
    - Dst: NEXT_OCTET
      Src: /src/libtpms/src/tpm2/TpmASN1.c:203,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - ctx
    - val
    argTypes:
    - ASN1UnmarshalContext*
    - UINT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 213
    functionName: ASN1GetBitStringValue
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 1
    functionsReached:
    - GOTO_ERROR_UNLESS
    - NEXT_OCTET
    - ASN1NextTag
    linkageType: ''
    returnType: BOOL
    signature: BOOL ASN1GetBitStringValue(ASN1UnmarshalContext* ctx, UINT32* val)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - length
    - buffer
    argTypes:
    - ASN1MarshalContext*
    - INT16
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 271
    functionName: ASN1InitialializeMarshalContext
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ASN1InitialializeMarshalContext(\n    ASN1MarshalContext* ctx,
      INT16 length, BYTE* buffer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/TpmASN1.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ASN1MarshalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: ASN1StartMarshalContext
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 5
    functionsReached:
    - pAssert
    linkageType: ''
    returnType: void
    signature: void ASN1StartMarshalContext(ASN1MarshalContext* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/TpmASN1.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ASN1MarshalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: ASN1EndMarshalContext
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 0
    functionsReached:
    - pAssert
    linkageType: ''
    returnType: INT16
    signature: INT16 ASN1EndMarshalContext(ASN1MarshalContext* ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1PushByte
      Src: /src/libtpms/src/tpm2/TpmASN1.c:312,1
    - Dst: ASN1PushTagAndLength
      Src: /src/libtpms/src/tpm2/TpmASN1.c:313,1
    - Dst: ASN1EndMarshalContext
      Src: /src/libtpms/src/tpm2/TpmASN1.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - tag
    argTypes:
    - ASN1MarshalContext*
    - BYTE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 315
    functionName: ASN1EndEncapsulation
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 5
    functionsReached:
    - ASN1PushByte
    - ASN1PushTagAndLength
    - ASN1EndMarshalContext
    linkageType: ''
    returnType: UINT16
    signature: UINT16 ASN1EndEncapsulation(ASN1MarshalContext* ctx, BYTE tag)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - b
    argTypes:
    - ASN1MarshalContext*
    - BYTE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 329
    functionName: ASN1PushByte
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL ASN1PushByte(ASN1MarshalContext* ctx, BYTE b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/TpmASN1.c:341,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/TpmASN1.c:345,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/TpmASN1.c:349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - ctx
    - count
    - buffer
    argTypes:
    - ASN1MarshalContext*
    - INT16
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 354
    functionName: ASN1PushBytes
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 1
    functionsReached:
    - MemoryCopy
    - GOTO_ERROR_UNLESS
    linkageType: ''
    returnType: INT16
    signature: INT16 ASN1PushBytes(ASN1MarshalContext* ctx, INT16 count, const BYTE*
      buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1PushByte
      Src: /src/libtpms/src/tpm2/TpmASN1.c:363,1
    - Dst: ASN1PushByte
      Src: /src/libtpms/src/tpm2/TpmASN1.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - ASN1MarshalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 366
    functionName: ASN1PushNull
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 1
    functionsReached:
    - ASN1PushByte
    linkageType: ''
    returnType: INT16
    signature: INT16 ASN1PushNull(ASN1MarshalContext* ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/TpmASN1.c:377,1
    - Dst: ASN1PushByte
      Src: /src/libtpms/src/tpm2/TpmASN1.c:379,1
    - Dst: ASN1PushByte
      Src: /src/libtpms/src/tpm2/TpmASN1.c:382,1
    - Dst: ASN1PushByte
      Src: /src/libtpms/src/tpm2/TpmASN1.c:385,1
    - Dst: ASN1PushByte
      Src: /src/libtpms/src/tpm2/TpmASN1.c:388,1
    - Dst: ASN1PushByte
      Src: /src/libtpms/src/tpm2/TpmASN1.c:389,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - len
    argTypes:
    - ASN1MarshalContext*
    - INT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 397
    functionName: ASN1PushLength
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 0
    functionsReached:
    - ASN1PushByte
    - GOTO_ERROR_UNLESS
    linkageType: ''
    returnType: INT16
    signature: INT16 ASN1PushLength(ASN1MarshalContext* ctx, INT16 len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1PushLength
      Src: /src/libtpms/src/tpm2/TpmASN1.c:407,1
    - Dst: ASN1PushByte
      Src: /src/libtpms/src/tpm2/TpmASN1.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - tag
    - length
    argTypes:
    - ASN1MarshalContext*
    - BYTE
    - INT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 410
    functionName: ASN1PushTagAndLength
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 2
    functionsReached:
    - ASN1PushByte
    - ASN1PushLength
    linkageType: ''
    returnType: INT16
    signature: INT16 ASN1PushTagAndLength(ASN1MarshalContext* ctx, BYTE tag, INT16
      length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASN1PushBytes
      Src: /src/libtpms/src/tpm2/TpmASN1.c:421,1
    - Dst: ASN1PushTagAndLength
      Src: /src/libtpms/src/tpm2/TpmASN1.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - size
    - string
    - tag
    argTypes:
    - ASN1MarshalContext*
    - INT16
    - BYTE*
    - BYTE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 426
    functionName: ASN1PushTaggedOctetString
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 0
    functionsReached:
    - ASN1PushBytes
    - ASN1PushTagAndLength
    linkageType: ''
    returnType: INT16
    signature: "INT16 ASN1PushTaggedOctetString(\n    ASN1MarshalContext* ctx, INT16
      size, const BYTE* string, BYTE tag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/TpmASN1.c:439,1
    - Dst: ASN1PushInteger
      Src: /src/libtpms/src/tpm2/TpmASN1.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - integer
    argTypes:
    - ASN1MarshalContext*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 441
    functionName: ASN1PushUINT
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 1
    functionsReached:
    - ASN1PushInteger
    - UINT32_TO_BYTE_ARRAY
    linkageType: ''
    returnType: INT16
    signature: INT16 ASN1PushUINT(ASN1MarshalContext* ctx, UINT32 integer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1PushBytes
      Src: /src/libtpms/src/tpm2/TpmASN1.c:458,1
    - Dst: ASN1PushByte
      Src: /src/libtpms/src/tpm2/TpmASN1.c:461,1
    - Dst: ASN1PushTagAndLength
      Src: /src/libtpms/src/tpm2/TpmASN1.c:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - iLen
    - integer
    argTypes:
    - ASN1MarshalContext*
    - INT16
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 466
    functionName: ASN1PushInteger
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 2
    functionsReached:
    - ASN1PushByte
    - ASN1PushBytes
    - ASN1PushTagAndLength
    linkageType: ''
    returnType: INT16
    signature: "INT16 ASN1PushInteger(ASN1MarshalContext* ctx,     // IN/OUT: buffer
      context\n                INT16               iLen,    // IN: octets of the integer\n
      \               BYTE*               integer  // IN: big-endian integer\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASN1PushBytes
      Src: /src/libtpms/src/tpm2/TpmASN1.c:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - OID
    argTypes:
    - ASN1MarshalContext*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 484
    functionName: ASN1PushOID
    functionSourceFile: /src/libtpms/src/tpm2/TpmASN1.c
    functionUses: 3
    functionsReached:
    - ASN1PushBytes
    linkageType: ''
    returnType: INT16
    signature: INT16 ASN1PushOID(ASN1MarshalContext* ctx, const BYTE* OID)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CONTEXT_SLOT_MASKED
      Src: /src/libtpms/src/tpm2/Session.c:171,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:173,1
    - Dst: CONTEXT_SLOT_MASKED
      Src: /src/libtpms/src/tpm2/Session.c:177,1
    - Dst: CONTEXT_SLOT_MASKED
      Src: /src/libtpms/src/tpm2/Session.c:188,1
    - Dst: CONTEXT_SLOT_MASKED
      Src: /src/libtpms/src/tpm2/Session.c:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 197
    functionName: ContextIdSetOldest
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 0
    functionsReached:
    - pAssert
    - CONTEXT_SLOT_MASKED
    linkageType: ''
    returnType: void
    signature: void ContextIdSetOldest(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ContextIdSetOldest
      Src: /src/libtpms/src/tpm2/Session.c:231,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - type
    argTypes:
    - STARTUP_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 249
    functionName: SessionStartup
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 1
    functionsReached:
    - ContextIdSetOldest
    linkageType: ''
    returnType: BOOL
    signature: BOOL SessionStartup(STARTUP_TYPE type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:268,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Session.c:268,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Session.c:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 280
    functionName: SessionIsLoaded
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 3
    functionsReached:
    - pAssert
    - HandleGetType
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL SessionIsLoaded(TPM_HANDLE handle  // IN: session handle

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:297,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Session.c:297,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Session.c:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 308
    functionName: SessionIsSaved
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 1
    functionsReached:
    - pAssert
    - HandleGetType
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL SessionIsSaved(TPM_HANDLE handle  // IN: session handle

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:319,1
    - Dst: CONTEXT_SLOT_MASKED
      Src: /src/libtpms/src/tpm2/Session.c:328,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - TPMS_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 336
    functionName: SequenceNumberForSavedContextIsValid
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 1
    functionsReached:
    - pAssert
    - CONTEXT_SLOT_MASKED
    linkageType: ''
    returnType: BOOL
    signature: "BOOL SequenceNumberForSavedContextIsValid(\n    TPMS_CONTEXT* context
      \ // IN: pointer to a context structure to be\n                           //
      \    validated\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - session
    argTypes:
    - SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 354
    functionName: SessionPCRValueIsCurrent
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL SessionPCRValueIsCurrent(SESSION* session  // IN: session structure

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:367,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Session.c:367,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Session.c:368,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:372,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 381
    functionName: SessionGet
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 37
    functionsReached:
    - pAssert
    - HandleGetType
    linkageType: ''
    returnType: SESSION
    signature: 'SESSION * SessionGet(TPM_HANDLE handle  // IN: session handle

      )'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:411,1
    - Dst: CONTEXT_SLOT_MASKED
      Src: /src/libtpms/src/tpm2/Session.c:425,1
    - Dst: CONTEXT_SLOT_MASKED
      Src: /src/libtpms/src/tpm2/Session.c:437,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - handle
    - sessionIndex
    argTypes:
    - TPM_HANDLE*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 442
    functionName: ContextIdSessionCreate
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 0
    functionsReached:
    - pAssert
    - CONTEXT_SLOT_MASKED
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC ContextIdSessionCreate(\n    TPM_HANDLE* handle,  // OUT: receives
      the assigned handle. This will\n                         //     be an index
      that must be adjusted by the\n                         //     caller according
      to the type of the\n                         //     session created\n    UINT32
      sessionIndex  // IN: The session context array entry that will\n                         //
      \    be occupied by the created session\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:471,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/Session.c:490,1
    - Dst: ContextIdSessionCreate
      Src: /src/libtpms/src/tpm2/Session.c:496,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Session.c:507,1
    - Dst: SessionSetStartTime
      Src: /src/libtpms/src/tpm2/Session.c:525,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Session.c:531,1
    - Dst: CryptRandomGenerate
      Src: /src/libtpms/src/tpm2/Session.c:535,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/Session.c:536,1
    - Dst: TPM2B_TYPE
      Src: /src/libtpms/src/tpm2/Session.c:549,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/Session.c:553,1
    - Dst: EntityGetAuthValue
      Src: /src/libtpms/src/tpm2/Session.c:556,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:557,1
    - Dst: MemoryConcat2B
      Src: /src/libtpms/src/tpm2/Session.c:560,1
    - Dst: CryptKDFa
      Src: /src/libtpms/src/tpm2/Session.c:563,1
    - Dst: SessionComputeBoundEntity
      Src: /src/libtpms/src/tpm2/Session.c:579,1
    - Dst: IsDAExempted
      Src: /src/libtpms/src/tpm2/Session.c:584,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 8
    argNames:
    - sessionType
    - authHash
    - nonceCaller
    - symmetric
    - bind
    - seed
    - sessionHandle
    - nonceTpm
    argTypes:
    - TPM_SE
    - TPMI_ALG_HASH
    - TPM2B_NONCE*
    - TPMT_SYM_DEF*
    - TPMI_DH_ENTITY
    - TPM2B_DATA*
    - TPM_HANDLE*
    - TPM2B_NONCE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 456
    functionDepth: 4
    functionLinenumber: 456
    functionLinenumberEnd: 590
    functionName: SessionCreate
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 2
    functionsReached:
    - CryptHashGetDigestSize
    - IsDAExempted
    - CryptRandomGenerate
    - ContextIdSessionCreate
    - pAssert
    - SessionSetStartTime
    - CryptKDFa
    - MemoryConcat2B
    - SessionComputeBoundEntity
    - MemoryCopy2B
    - EntityGetAuthValue
    - FAIL
    - MemorySet
    - TPM2B_TYPE
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC SessionCreate(TPM_SE         sessionType,    // IN: the session
      type\n              TPMI_ALG_HASH  authHash,       // IN: the hash algorithm\n
      \             TPM2B_NONCE*   nonceCaller,    // IN: initial nonceCaller\n              TPMT_SYM_DEF*
      \ symmetric,      // IN: the symmetric algorithm\n              TPMI_DH_ENTITY
      bind,           // IN: the bind object\n              TPM2B_DATA*    seed,           //
      IN: seed data\n              TPM_HANDLE*    sessionHandle,  // OUT: the session
      handle\n              TPM2B_NONCE*   nonceTpm        // OUT: the session nonce\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:613,1
    - Dst: SessionIsLoaded
      Src: /src/libtpms/src/tpm2/Session.c:613,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:614,1
    - Dst: CONTEXT_SLOT_MASKED
      Src: /src/libtpms/src/tpm2/Session.c:621,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:629,1
    - Dst: CONTEXT_SLOT_MASKED
      Src: /src/libtpms/src/tpm2/Session.c:637,1
    - Dst: CONTEXT_SLOT_MASKED
      Src: /src/libtpms/src/tpm2/Session.c:652,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - handle
    - contextID
    argTypes:
    - TPM_HANDLE
    - CONTEXT_COUNTER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 666
    functionName: SessionContextSave
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 1
    functionsReached:
    - pAssert
    - SessionIsLoaded
    - CONTEXT_SLOT_MASKED
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC SessionContextSave(TPM_HANDLE       handle,    // IN: session
      handle\n                   CONTEXT_COUNTER* contextID  // OUT: assigned contextID\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:690,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:691,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Session.c:691,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Session.c:692,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:704,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/Session.c:708,1
    - Dst: CONTEXT_SLOT_MASKED
      Src: /src/libtpms/src/tpm2/Session.c:717,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:721,1
    - Dst: ContextIdSetOldest
      Src: /src/libtpms/src/tpm2/Session.c:729,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/Session.c:732,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 2
    argNames:
    - session
    - handle
    argTypes:
    - SESSION_BUF*
    - TPM_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 741
    functionName: SessionContextLoad
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 1
    functionsReached:
    - MemoryCopy
    - ContextIdSetOldest
    - pAssert
    - CONTEXT_SLOT_MASKED
    - HandleGetType
    - FAIL
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC SessionContextLoad(SESSION_BUF* session,  // IN: session structure
      from saved context\n                   TPM_HANDLE*  handle    // IN/OUT: session
      handle\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:756,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Session.c:756,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Session.c:757,1
    - Dst: SessionIsLoaded
      Src: /src/libtpms/src/tpm2/Session.c:758,1
    - Dst: SessionIsSaved
      Src: /src/libtpms/src/tpm2/Session.c:758,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:764,1
    - Dst: ContextIdSetOldest
      Src: /src/libtpms/src/tpm2/Session.c:778,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 791
    functionName: SessionFlush
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 2
    functionsReached:
    - SessionIsLoaded
    - ContextIdSetOldest
    - pAssert
    - HandleGetType
    - SessionIsSaved
    linkageType: ''
    returnType: void
    signature: 'void SessionFlush(TPM_HANDLE handle  // IN: loaded or saved session
      handle

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EntityGetName
      Src: /src/libtpms/src/tpm2/Session.c:809,1
    - Dst: EntityGetAuthValue
      Src: /src/libtpms/src/tpm2/Session.c:817,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Session.c:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - entityHandle
    - bind
    argTypes:
    - TPMI_DH_ENTITY
    - TPM2B_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 800
    functionDepth: 5
    functionLinenumber: 800
    functionLinenumberEnd: 829
    functionName: SessionComputeBoundEntity
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 2
    functionsReached:
    - MemorySet
    - EntityGetAuthValue
    - EntityGetName
    linkageType: ''
    returnType: void
    signature: "void SessionComputeBoundEntity(TPMI_DH_ENTITY entityHandle,  // IN:
      handle of entity\n                               TPM2B_NAME*    bind           //
      OUT: binding value\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - session
    argTypes:
    - SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 839
    functionName: SessionSetStartTime
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void SessionSetStartTime(SESSION* session  // IN: the session to update

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:848,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Session.c:857,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Session.c:869,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Session.c:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - session
    argTypes:
    - SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 881
    functionName: SessionResetPolicyData
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 2
    functionsReached:
    - MemorySet
    - pAssert
    linkageType: ''
    returnType: void
    signature: 'void SessionResetPolicyData(SESSION* session  // IN: the session to
      reset

      )'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:901,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Session.c:901,1
    - Dst: SessionGet
      Src: /src/libtpms/src/tpm2/Session.c:927,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - handle
    - count
    - handleList
    argTypes:
    - TPMI_SH_POLICY
    - UINT32
    - TPML_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 892
    functionDepth: 2
    functionLinenumber: 892
    functionLinenumberEnd: 945
    functionName: SessionCapGetLoaded
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 1
    functionsReached:
    - pAssert
    - HandleGetType
    - SessionGet
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO SessionCapGetLoaded(TPMI_SH_POLICY handle,     // IN:
      start handle\n                    UINT32         count,      // IN: count of
      returned handles\n                    TPML_HANDLE*   handleList  // OUT: list
      of handle\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:951,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Session.c:951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_SH_POLICY
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 960
    functionName: SessionCapGetOneLoaded
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 1
    functionsReached:
    - pAssert
    - HandleGetType
    linkageType: ''
    returnType: BOOL
    signature: BOOL SessionCapGetOneLoaded(TPMI_SH_POLICY handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:981,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Session.c:981,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - handle
    - count
    - handleList
    argTypes:
    - TPMI_SH_HMAC
    - UINT32
    - TPML_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 1018
    functionName: SessionCapGetSaved
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 1
    functionsReached:
    - pAssert
    - HandleGetType
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO SessionCapGetSaved(TPMI_SH_HMAC handle,     // IN: start
      handle\n                   UINT32       count,      // IN: count of returned
      handles\n                   TPML_HANDLE* handleList  // OUT: list of handle\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Session.c:1024,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/Session.c:1024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPMI_SH_HMAC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1022
    functionDepth: 1
    functionLinenumber: 1022
    functionLinenumberEnd: 1033
    functionName: SessionCapGetOneSaved
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 1
    functionsReached:
    - pAssert
    - HandleGetType
    linkageType: ''
    returnType: BOOL
    signature: BOOL SessionCapGetOneSaved(TPMI_SH_HMAC handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1042
    functionName: SessionCapGetLoadedNumber
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: UINT32
    signature: UINT32 SessionCapGetLoadedNumber(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1054
    functionName: SessionCapGetLoadedAvail
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: UINT32
    signature: UINT32 SessionCapGetLoadedAvail(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1073
    functionName: SessionCapGetActiveNumber
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: UINT32
    signature: UINT32 SessionCapGetActiveNumber(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1079
    functionDepth: 0
    functionLinenumber: 1079
    functionLinenumberEnd: 1093
    functionName: SessionCapGetActiveAvail
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: UINT32
    signature: UINT32 SessionCapGetActiveAvail(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - attrs
    argTypes:
    - SESSION_ATTRIBUTES
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1102
    functionName: IsCpHashUnionOccupied
    functionSourceFile: /src/libtpms/src/tpm2/Session.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL IsCpHashUnionOccupied(SESSION_ATTRIBUTES attrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT16_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/TpmFail.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - integer
    - buffer
    argTypes:
    - UINT16
    - BYTE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: MarshalUint16
    functionSourceFile: /src/libtpms/src/tpm2/TpmFail.c
    functionUses: 0
    functionsReached:
    - UINT16_TO_BYTE_ARRAY
    linkageType: ''
    returnType: INT32
    signature: INT32 MarshalUint16(UINT16 integer, BYTE** buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/TpmFail.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - integer
    - buffer
    argTypes:
    - UINT32
    - BYTE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: MarshalUint32
    functionSourceFile: /src/libtpms/src/tpm2/TpmFail.c
    functionUses: 0
    functionsReached:
    - UINT32_TO_BYTE_ARRAY
    linkageType: ''
    returnType: INT32
    signature: INT32 MarshalUint32(UINT32 integer, BYTE** buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BYTE_ARRAY_TO_UINT32
      Src: /src/libtpms/src/tpm2/TpmFail.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - UINT32*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: Unmarshal32
    functionSourceFile: /src/libtpms/src/tpm2/TpmFail.c
    functionUses: 0
    functionsReached:
    - BYTE_ARRAY_TO_UINT32
    linkageType: ''
    returnType: BOOL
    signature: BOOL Unmarshal32(UINT32* target, BYTE** buffer, INT32* size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BYTE_ARRAY_TO_UINT16
      Src: /src/libtpms/src/tpm2/TpmFail.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - target
    - buffer
    - size
    argTypes:
    - UINT16*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 178
    functionName: Unmarshal16
    functionSourceFile: /src/libtpms/src/tpm2/TpmFail.c
    functionUses: 0
    functionsReached:
    - BYTE_ARRAY_TO_UINT16
    linkageType: ''
    returnType: BOOL
    signature: BOOL Unmarshal16(UINT16* target, BYTE** buffer, INT32* size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: SetForceFailureMode
    functionSourceFile: /src/libtpms/src/tpm2/TpmFail.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT SetForceFailureMode(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/TpmFail.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - function
    - line
    - code
    argTypes:
    - FAIL_TRACE*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 226
    functionName: TpmSetFailureMode
    functionSourceFile: /src/libtpms/src/tpm2/TpmFail.c
    functionUses: 0
    functionsReached:
    - TPMLIB_LogTPM2Error
    linkageType: ''
    returnType: void
    signature: "void TpmSetFailureMode(\n#if FAIL_TRACE\n\tconst char      *function,\n\tint
      \             line,\n#endif\n\tint              code\n\t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/TpmFail.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - function
    - line
    - code
    argTypes:
    - FAIL_TRACE*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 267
    functionName: TpmLogFailure
    functionSourceFile: /src/libtpms/src/tpm2/TpmFail.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void TpmLogFailure(\n#if FAIL_TRACE\n\t      const char      *function,\n\t
      \     int              line,\n#endif\n\t      int              code\n\t      )"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: Unmarshal16
      Src: /src/libtpms/src/tpm2/TpmFail.c:350,1
    - Dst: Unmarshal32
      Src: /src/libtpms/src/tpm2/TpmFail.c:351,1
    - Dst: Unmarshal32
      Src: /src/libtpms/src/tpm2/TpmFail.c:352,1
    - Dst: MarshalUint16
      Src: /src/libtpms/src/tpm2/TpmFail.c:363,1
    - Dst: MarshalUint32
      Src: /src/libtpms/src/tpm2/TpmFail.c:364,1
    - Dst: MarshalUint32
      Src: /src/libtpms/src/tpm2/TpmFail.c:365,1
    - Dst: MarshalUint32
      Src: /src/libtpms/src/tpm2/TpmFail.c:366,1
    - Dst: MarshalUint32
      Src: /src/libtpms/src/tpm2/TpmFail.c:368,1
    - Dst: MarshalUint32
      Src: /src/libtpms/src/tpm2/TpmFail.c:370,1
    - Dst: Unmarshal32
      Src: /src/libtpms/src/tpm2/TpmFail.c:377,1
    - Dst: Unmarshal32
      Src: /src/libtpms/src/tpm2/TpmFail.c:379,1
    - Dst: Unmarshal32
      Src: /src/libtpms/src/tpm2/TpmFail.c:380,1
    - Dst: MarshalUint32
      Src: /src/libtpms/src/tpm2/TpmFail.c:400,1
    - Dst: MarshalUint32
      Src: /src/libtpms/src/tpm2/TpmFail.c:402,1
    - Dst: MarshalUint32
      Src: /src/libtpms/src/tpm2/TpmFail.c:404,1
    - Dst: _plat__GetManufacturerCapabilityCode
      Src: /src/libtpms/src/tpm2/TpmFail.c:411,1
    - Dst: _plat__GetVendorCapabilityCode
      Src: /src/libtpms/src/tpm2/TpmFail.c:416,1
    - Dst: _plat__GetVendorCapabilityCode
      Src: /src/libtpms/src/tpm2/TpmFail.c:421,1
    - Dst: _plat__GetVendorCapabilityCode
      Src: /src/libtpms/src/tpm2/TpmFail.c:426,1
    - Dst: _plat__GetVendorCapabilityCode
      Src: /src/libtpms/src/tpm2/TpmFail.c:431,1
    - Dst: _plat__GetTpmType
      Src: /src/libtpms/src/tpm2/TpmFail.c:437,1
    - Dst: _plat__GetTpmFirmwareVersionHigh
      Src: /src/libtpms/src/tpm2/TpmFail.c:443,1
    - Dst: _plat__GetTpmFirmwareVersionLow
      Src: /src/libtpms/src/tpm2/TpmFail.c:449,1
    - Dst: MarshalUint32
      Src: /src/libtpms/src/tpm2/TpmFail.c:452,1
    - Dst: MarshalUint16
      Src: /src/libtpms/src/tpm2/TpmFail.c:461,1
    - Dst: MarshalUint32
      Src: /src/libtpms/src/tpm2/TpmFail.c:462,1
    - Dst: MarshalUint32
      Src: /src/libtpms/src/tpm2/TpmFail.c:463,1
    - Dst: MarshalUint16
      Src: /src/libtpms/src/tpm2/TpmFail.c:470,1
    - Dst: MarshalUint32
      Src: /src/libtpms/src/tpm2/TpmFail.c:471,1
    - Dst: MarshalUint32
      Src: /src/libtpms/src/tpm2/TpmFail.c:472,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 92
    argCount: 4
    argNames:
    - inRequestSize
    - inRequest
    - outResponseSize
    - outResponse
    argTypes:
    - uint32_t
    - unsigned char*
    - uint32_t*
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 476
    functionName: TpmFailureMode
    functionSourceFile: /src/libtpms/src/tpm2/TpmFail.c
    functionUses: 1
    functionsReached:
    - MarshalUint32
    - _plat__GetManufacturerCapabilityCode
    - _plat__GetTpmFirmwareVersionLow
    - _plat__GetVendorCapabilityCode
    - _plat__GetTpmFirmwareVersionHigh
    - Unmarshal16
    - Unmarshal32
    - _plat__GetTpmType
    - MarshalUint16
    linkageType: ''
    returnType: void
    signature: "void TpmFailureMode(uint32_t        inRequestSize,    // IN: command
      buffer size\n                    unsigned char*  inRequest,        // IN: command
      buffer\n                    uint32_t*       outResponseSize,  // OUT: response
      buffer size\n                    unsigned char** outResponse       // OUT: response
      buffer\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TpmFail.c:484,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TpmFail.c:485,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/TpmFail.c:486,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/TpmFail.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - type
    - buffer
    - size
    argTypes:
    - void*
    - BYTE**
    - INT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 488
    functionName: UnmarshalFail
    functionSourceFile: /src/libtpms/src/tpm2/TpmFail.c
    functionUses: 0
    functionsReached:
    - FAIL
    - NOT_REFERENCED
    linkageType: ''
    returnType: void
    signature: void UnmarshalFail(void* type, BYTE** buffer, INT32* size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - CC
    - ','
    - INDEX
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: ENTRY
    functionSourceFile: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENTRY(CC, INDEX)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c:186,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c:186,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c:189,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c:201,1
    - Dst: SetBit
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - inAuditCommands
    - inAuditCommandsLen
    - outAuditCommands
    - outAuditCommandsLen
    argTypes:
    - BYTE*
    - size_t
    - BYTE*
    - size_t
    assertStmts:
    - condition: (idx != UNIMPLEMENTED_COMMAND_INDEX)
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c
    constantsTouched: []
    func_position:
      end: 213
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 213
    functionName: ConvertFromCompressedBitArray
    functionSourceFile: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    - assert
    - MIN
    - MemorySet
    - SetBit
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC ConvertFromCompressedBitArray(BYTE         *inAuditCommands,\n\t\t\t
      \     size_t        inAuditCommandsLen,\n\t\t\t      BYTE         *outAuditCommands,\n\t\t\t
      \     size_t        outAuditCommandsLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c:217,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c:239,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - cc
    argTypes:
    - TPM_CC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 240
    functionName: FindCCInCompressedListIndexArray
    functionSourceFile: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - pAssert
    linkageType: ''
    returnType: size_t
    signature: size_t FindCCInCompressedListIndexArray(TPM_CC cc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c:254,1
    - Dst: FindCCInCompressedListIndexArray
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c:265,1
    - Dst: SetBit
      Src: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - inAuditCommands
    - inAuditCommandsLen
    - outAuditCommands
    - outAuditCommandsLen
    argTypes:
    - BYTE*
    - size_t
    - BYTE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 277
    functionName: ConvertToCompressedBitArray
    functionSourceFile: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c
    functionUses: 2
    functionsReached:
    - SetBit
    - MemorySet
    - FindCCInCompressedListIndexArray
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC ConvertToCompressedBitArray(BYTE         *inAuditCommands,\n\t\t\t
      \   size_t        inAuditCommandsLen,\n\t\t\t    BYTE         *outAuditCommands,\n\t\t\t
      \   size_t        outAuditCommandsLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 418
    functionName: CRYPT_INT_BUF
    functionSourceFile: /src/libtpms/src/tpm2/PrimeData.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CRYPT_INT_BUF(smallprimecomp, 43 * RADIX_BITS)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:84,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:93,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:99,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - authHandle
    - nvHandle
    - attributes
    argTypes:
    - TPM_HANDLE
    - TPM_HANDLE
    - TPMA_NV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 114
    functionName: NvReadAccessChecks
    functionSourceFile: /src/libtpms/src/tpm2/NV_spt.c
    functionUses: 5
    functionsReached:
    - IS_ATTRIBUTE
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NvReadAccessChecks(TPM_HANDLE authHandle,  // IN: the handle
      that provided the\n                                           //     authorization\n
      \                  TPM_HANDLE nvHandle,   // IN: the handle of the NV index
      to be read\n                   TPMA_NV    attributes  // IN: the attributes
      of 'nvHandle'\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:132,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:141,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:147,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - authHandle
    - nvHandle
    - attributes
    argTypes:
    - TPM_HANDLE
    - TPM_HANDLE
    - TPMA_NV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 155
    functionName: NvWriteAccessChecks
    functionSourceFile: /src/libtpms/src/tpm2/NV_spt.c
    functionUses: 5
    functionsReached:
    - IS_ATTRIBUTE
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NvWriteAccessChecks(\n    TPM_HANDLE authHandle,  // IN: the
      handle that provided the\n                            //     authorization\n
      \   TPM_HANDLE nvHandle,    // IN: the handle of the NV index to be written\n
      \   TPMA_NV    attributes   // IN: the attributes of 'nvHandle'\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 167
    functionName: NvClearOrderly
    functionSourceFile: /src/libtpms/src/tpm2/NV_spt.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC NvClearOrderly(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/NV_spt.c:177,1
    - Dst: NvGetIndexInfo
      Src: /src/libtpms/src/tpm2/NV_spt.c:179,1
    - Dst: IsNvPinPassIndex
      Src: /src/libtpms/src/tpm2/NV_spt.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 184
    functionName: NvIsPinPassIndex
    functionSourceFile: /src/libtpms/src/tpm2/NV_spt.c
    functionUses: 1
    functionsReached:
    - IsNvPinPassIndex
    - NvGetIndexInfo
    - HandleGetType
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL NvIsPinPassIndex(TPM_HANDLE index  // IN: Handle to check

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvPublic2FromNvPublic
      Src: /src/libtpms/src/tpm2/NV_spt.c:206,1
    - Dst: TPMU_NV_PUBLIC_2_Marshal
      Src: /src/libtpms/src/tpm2/NV_spt.c:216,1
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/NV_spt.c:219,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/NV_spt.c:222,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/NV_spt.c:223,1
    - Dst: CryptHashEnd
      Src: /src/libtpms/src/tpm2/NV_spt.c:226,1
    - Dst: UINT16_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/NV_spt.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - nvIndex
    - name
    argTypes:
    - NV_INDEX*
    - TPM2B_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 192
    functionDepth: 6
    functionLinenumber: 192
    functionLinenumberEnd: 232
    functionName: NvGetIndexName
    functionSourceFile: /src/libtpms/src/tpm2/NV_spt.c
    functionUses: 4
    functionsReached:
    - HandleGetType
    - CryptHashStart
    - CryptDigestUpdate
    - UINT16_TO_BYTE_ARRAY
    - CryptHashEnd
    - TPMU_NV_PUBLIC_2_Marshal
    - NvPublic2FromNvPublic
    linkageType: ''
    returnType: TPM2B_NAME
    signature: "TPM2B_NAME * NvGetIndexName(\n    NV_INDEX* nvIndex,  // IN: the index
      over which the name is to be\n                        //     computed\n    TPM2B_NAME*
      name    // OUT: name of the index\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMA_NV_EXP_TO_UINT64
      Src: /src/libtpms/src/tpm2/NV_spt.c:243,1
    - Dst: UINT32_TO_TPMA_NV
      Src: /src/libtpms/src/tpm2/NV_spt.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - attributes
    argTypes:
    - TPMA_NV_EXP
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 247
    functionName: LegacyAttributesFromExpanded
    functionSourceFile: /src/libtpms/src/tpm2/NV_spt.c
    functionUses: 0
    functionsReached:
    - TPMA_NV_EXP_TO_UINT64
    - UINT32_TO_TPMA_NV
    linkageType: ''
    returnType: TPMA_NV
    signature: TPMA_NV LegacyAttributesFromExpanded(TPMA_NV_EXP attributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TPMA_NV_TO_UINT32
      Src: /src/libtpms/src/tpm2/NV_spt.c:254,1
    - Dst: UINT64_TO_TPMA_NV_EXP
      Src: /src/libtpms/src/tpm2/NV_spt.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - attributes
    argTypes:
    - TPMA_NV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 258
    functionName: ExpandedAttributesFromLegacy
    functionSourceFile: /src/libtpms/src/tpm2/NV_spt.c
    functionUses: 0
    functionsReached:
    - UINT64_TO_TPMA_NV_EXP
    - TPMA_NV_TO_UINT32
    linkageType: ''
    returnType: TPMA_NV_EXP
    signature: TPMA_NV_EXP ExpandedAttributesFromLegacy(TPMA_NV attributes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HandleGetType
      Src: /src/libtpms/src/tpm2/NV_spt.c:269,1
    - Dst: ExpandedAttributesFromLegacy
      Src: /src/libtpms/src/tpm2/NV_spt.c:284,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - nvPublic
    - nvPublic2
    argTypes:
    - TPMS_NV_PUBLIC*
    - TPMT_NV_PUBLIC_2*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 298
    functionName: NvPublic2FromNvPublic
    functionSourceFile: /src/libtpms/src/tpm2/NV_spt.c
    functionUses: 2
    functionsReached:
    - ExpandedAttributesFromLegacy
    - HandleGetType
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NvPublic2FromNvPublic(\n    TPMS_NV_PUBLIC*   nvPublic,  //
      IN: the source S-form NV public area\n    TPMT_NV_PUBLIC_2* nvPublic2  // OUT:
      the T-form NV public area to populate\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LegacyAttributesFromExpanded
      Src: /src/libtpms/src/tpm2/NV_spt.c:324,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - nvPublic2
    - nvPublic
    argTypes:
    - TPMT_NV_PUBLIC_2*
    - TPMS_NV_PUBLIC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 336
    functionName: NvPublicFromNvPublic2
    functionSourceFile: /src/libtpms/src/tpm2/NV_spt.c
    functionUses: 1
    functionsReached:
    - LegacyAttributesFromExpanded
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NvPublicFromNvPublic2(\n    TPMT_NV_PUBLIC_2* nvPublic2,  //
      IN: the source T-form NV public area\n    TPMS_NV_PUBLIC*   nvPublic    // OUT:
      the S-form NV public area to populate\n)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/NV_spt.c:352,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:361,1
    - Dst: MemoryRemoveTrailingZeros
      Src: /src/libtpms/src/tpm2/NV_spt.c:372,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/NV_spt.c:372,1
    - Dst: GET_TPM_NT
      Src: /src/libtpms/src/tpm2/NV_spt.c:384,1
    - Dst: GET_TPM_NT
      Src: /src/libtpms/src/tpm2/NV_spt.c:406,1
    - Dst: GET_TPM_NT
      Src: /src/libtpms/src/tpm2/NV_spt.c:424,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:428,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:443,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:449,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:450,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:451,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:460,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:461,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:462,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:466,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:467,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:468,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:469,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:473,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:474,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:475,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:476,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:480,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:481,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:485,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:487,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:493,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/NV_spt.c:500,1
    - Dst: NvIndexIsDefined
      Src: /src/libtpms/src/tpm2/NV_spt.c:504,1
    - Dst: NvDefineIndex
      Src: /src/libtpms/src/tpm2/NV_spt.c:509,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 68
    argCount: 6
    argNames:
    - authHandle
    - auth
    - publicInfo
    - blameAuthHandle
    - blameAuth
    - blamePublic
    argTypes:
    - TPMI_RH_PROVISION
    - TPM2B_AUTH*
    - TPMS_NV_PUBLIC*
    - TPM_RC
    - TPM_RC
    - TPM_RC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 342
    functionDepth: 6
    functionLinenumber: 342
    functionLinenumberEnd: 510
    functionName: NvDefineSpace
    functionSourceFile: /src/libtpms/src/tpm2/NV_spt.c
    functionUses: 2
    functionsReached:
    - CryptHashGetDigestSize
    - IS_ATTRIBUTE
    - NvDefineIndex
    - MemoryRemoveTrailingZeros
    - GET_TPM_NT
    - NvIndexIsDefined
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC NvDefineSpace(TPMI_RH_PROVISION authHandle,\n                     TPM2B_AUTH*
      \      auth,\n                     TPMS_NV_PUBLIC*   publicInfo,\n                     TPM_RC
      \           blameAuthHandle,\n                     TPM_RC            blameAuth,\n
      \                    TPM_RC            blamePublic)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeProfileInit
      Src: /src/libtpms/src/tpm2/Manufacture.c:97,1
    - Dst: RuntimeProfileSet
      Src: /src/libtpms/src/tpm2/Manufacture.c:99,1
    - Dst: TpmSizeChecks
      Src: /src/libtpms/src/tpm2/Manufacture.c:105,1
    - Dst: ExtMath_Debug_CompatibilityCheck
      Src: /src/libtpms/src/tpm2/Manufacture.c:110,1
    - Dst: _plat__GetNvReadyState
      Src: /src/libtpms/src/tpm2/Manufacture.c:119,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/Manufacture.c:120,1
    - Dst: CryptInit
      Src: /src/libtpms/src/tpm2/Manufacture.c:127,1
    - Dst: NvManufacture
      Src: /src/libtpms/src/tpm2/Manufacture.c:132,1
    - Dst: CryptStartup
      Src: /src/libtpms/src/tpm2/Manufacture.c:136,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/Manufacture.c:137,1
    - Dst: IsEntropyBad
      Src: /src/libtpms/src/tpm2/Manufacture.c:144,1
    - Dst: IsTestStateSet
      Src: /src/libtpms/src/tpm2/Manufacture.c:145,1
    - Dst: IsTestStateSet
      Src: /src/libtpms/src/tpm2/Manufacture.c:146,1
    - Dst: IsTestStateSet
      Src: /src/libtpms/src/tpm2/Manufacture.c:147,1
    - Dst: IsDrbgTested
      Src: /src/libtpms/src/tpm2/Manufacture.c:148,1
    - Dst: PCRManufacture
      Src: /src/libtpms/src/tpm2/Manufacture.c:152,1
    - Dst: HierarchyPreInstall_Init
      Src: /src/libtpms/src/tpm2/Manufacture.c:157,1
    - Dst: DAPreInstall_Init
      Src: /src/libtpms/src/tpm2/Manufacture.c:160,1
    - Dst: PhysicalPresencePreInstall_Init
      Src: /src/libtpms/src/tpm2/Manufacture.c:163,1
    - Dst: CommandAuditPreInstall_Init
      Src: /src/libtpms/src/tpm2/Manufacture.c:166,1
    - Dst: NV_WRITE_PERSISTENT
      Src: /src/libtpms/src/tpm2/Manufacture.c:170,1
    - Dst: _plat__GetTpmFirmwareVersionHigh
      Src: /src/libtpms/src/tpm2/Manufacture.c:173,1
    - Dst: _plat__GetTpmFirmwareVersionLow
      Src: /src/libtpms/src/tpm2/Manufacture.c:174,1
    - Dst: _plat__GetPlatformManufactureData
      Src: /src/libtpms/src/tpm2/Manufacture.c:176,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Manufacture.c:178,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Manufacture.c:180,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Manufacture.c:181,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/Manufacture.c:185,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/Manufacture.c:191,1
    - Dst: NvCommit
      Src: /src/libtpms/src/tpm2/Manufacture.c:198,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 2
    argNames:
    - firstTime
    - profile
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 86
    functionDepth: 6
    functionLinenumber: 86
    functionLinenumberEnd: 203
    functionName: TPM_Manufacture
    functionSourceFile: /src/libtpms/src/tpm2/Manufacture.c
    functionUses: 1
    functionsReached:
    - PCRManufacture
    - RuntimeProfileInit
    - pAssert
    - HierarchyPreInstall_Init
    - CommandAuditPreInstall_Init
    - DAPreInstall_Init
    - _plat__GetTpmFirmwareVersionHigh
    - NV_WRITE_PERSISTENT
    - IsEntropyBad
    - NvWrite
    - _plat__GetPlatformManufactureData
    - PhysicalPresencePreInstall_Init
    - NvManufacture
    - _plat__GetTpmFirmwareVersionLow
    - IsDrbgTested
    - TPMLIB_LogTPM2Error
    - _plat__GetNvReadyState
    - TpmSizeChecks
    - ExtMath_Debug_CompatibilityCheck
    - CryptInit
    - NvCommit
    - CryptStartup
    - IsTestStateSet
    - RuntimeProfileSet
    - NV_SYNC_PERSISTENT
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT TPM_Manufacture(\n    int firstTime, // IN: indicates if
      this is the first call from\n                   //     main()\n    const char
      *    profile\t\t// libtpms: optional profile to use\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeProfileFree
      Src: /src/libtpms/src/tpm2/Manufacture.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: TPM_TearDown
    functionSourceFile: /src/libtpms/src/tpm2/Manufacture.c
    functionUses: 1
    functionsReached:
    - RuntimeProfileFree
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT TPM_TearDown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HashLibSimulationEnd
      Src: /src/libtpms/src/tpm2/Manufacture.c:229,1
    - Dst: SymLibSimulationEnd
      Src: /src/libtpms/src/tpm2/Manufacture.c:230,1
    - Dst: MathLibSimulationEnd
      Src: /src/libtpms/src/tpm2/Manufacture.c:231,1
    - Dst: RsaSimulationEnd
      Src: /src/libtpms/src/tpm2/Manufacture.c:233,1
    - Dst: EccSimulationEnd
      Src: /src/libtpms/src/tpm2/Manufacture.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 239
    functionName: TpmEndSimulation
    functionSourceFile: /src/libtpms/src/tpm2/Manufacture.c
    functionUses: 0
    functionsReached:
    - RsaSimulationEnd
    - SymLibSimulationEnd
    - EccSimulationEnd
    - MathLibSimulationEnd
    - HashLibSimulationEnd
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT TpmEndSimulation(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TPM_CONSTANTS32_Marshal
      Src: /src/libtpms/src/tpm2/Ticket.c:91,1
    - Dst: MemoryEqual
      Src: /src/libtpms/src/tpm2/Ticket.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 96
    functionName: TicketIsSafe
    functionSourceFile: /src/libtpms/src/tpm2/Ticket.c
    functionUses: 2
    functionsReached:
    - MemoryEqual
    - TPM_CONSTANTS32_Marshal
    linkageType: ''
    returnType: BOOL
    signature: BOOL TicketIsSafe(TPM2B* buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HierarchyGetProof
      Src: /src/libtpms/src/tpm2/Ticket.c:125,1
    - Dst: CryptHmacStart2B
      Src: /src/libtpms/src/tpm2/Ticket.c:131,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Ticket.c:132,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/Ticket.c:135,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Ticket.c:137,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Ticket.c:139,1
    - Dst: CryptHmacEnd2B
      Src: /src/libtpms/src/tpm2/Ticket.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - hierarchy
    - digest
    - keyName
    - ticket
    argTypes:
    - TPMI_RH_HIERARCHY
    - TPM2B_DIGEST*
    - TPM2B_NAME*
    - TPMT_TK_VERIFIED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 144
    functionName: TicketComputeVerified
    functionSourceFile: /src/libtpms/src/tpm2/Ticket.c
    functionUses: 1
    functionsReached:
    - HierarchyGetProof
    - CryptDigestUpdate2B
    - CryptDigestUpdateInt
    - CryptHmacEnd2B
    - MemorySet
    - CryptHmacStart2B
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TicketComputeVerified(\n    TPMI_RH_HIERARCHY hierarchy,  //
      IN: hierarchy constant for ticket\n    TPM2B_DIGEST*     digest,     // IN:
      digest\n    TPM2B_NAME*       keyName,    // IN: name of key that signed the
      values\n    TPMT_TK_VERIFIED* ticket      // OUT: verified ticket\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HierarchyGetProof
      Src: /src/libtpms/src/tpm2/Ticket.c:181,1
    - Dst: CryptHmacStart2B
      Src: /src/libtpms/src/tpm2/Ticket.c:191,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Ticket.c:192,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/Ticket.c:195,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Ticket.c:197,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Ticket.c:199,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Ticket.c:201,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/Ticket.c:203,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/Ticket.c:207,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/Ticket.c:210,1
    - Dst: CryptHmacEnd2B
      Src: /src/libtpms/src/tpm2/Ticket.c:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 8
    argNames:
    - type
    - hierarchy
    - timeout
    - expiresOnReset
    - cpHashA
    - policyRef
    - entityName
    - ticket
    argTypes:
    - TPM_ST
    - TPMI_RH_HIERARCHY
    - UINT64
    - BOOL
    - TPM2B_DIGEST*
    - TPM2B_NONCE*
    - TPM2B_NAME*
    - TPMT_TK_AUTH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 164
    functionDepth: 4
    functionLinenumber: 164
    functionLinenumberEnd: 217
    functionName: TicketComputeAuth
    functionSourceFile: /src/libtpms/src/tpm2/Ticket.c
    functionUses: 3
    functionsReached:
    - HierarchyGetProof
    - CryptDigestUpdate2B
    - CryptDigestUpdateInt
    - CryptHmacEnd2B
    - MemorySet
    - CryptHmacStart2B
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TicketComputeAuth(\n    TPM_ST            type,            //
      IN: the type of ticket.\n    TPMI_RH_HIERARCHY hierarchy,       // IN: hierarchy
      constant for ticket\n    UINT64            timeout,         // IN: timeout\n
      \   BOOL              expiresOnReset,  // IN: flag to indicate if ticket expires
      on\n                                       //      TPM Reset\n    TPM2B_DIGEST*
      cpHashA,             // IN: input cpHashA\n    TPM2B_NONCE*  policyRef,           //
      IN: input policyRef\n    TPM2B_NAME*   entityName,          // IN: name of entity\n
      \   TPMT_TK_AUTH* ticket               // OUT: Created ticket\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HierarchyGetProof
      Src: /src/libtpms/src/tpm2/Ticket.c:243,1
    - Dst: CryptHmacStart2B
      Src: /src/libtpms/src/tpm2/Ticket.c:253,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Ticket.c:254,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/Ticket.c:257,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/Ticket.c:259,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Ticket.c:261,1
    - Dst: CryptHmacEnd2B
      Src: /src/libtpms/src/tpm2/Ticket.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - hierarchy
    - hashAlg
    - digest
    - ticket
    argTypes:
    - TPMI_RH_HIERARCHY
    - TPM_ALG_ID
    - TPM2B_DIGEST*
    - TPMT_TK_HASHCHECK*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 231
    functionDepth: 4
    functionLinenumber: 231
    functionLinenumberEnd: 266
    functionName: TicketComputeHashCheck
    functionSourceFile: /src/libtpms/src/tpm2/Ticket.c
    functionUses: 1
    functionsReached:
    - HierarchyGetProof
    - CryptDigestUpdate2B
    - CryptDigestUpdateInt
    - CryptHmacEnd2B
    - MemorySet
    - CryptHmacStart2B
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TicketComputeHashCheck(\n    TPMI_RH_HIERARCHY  hierarchy,
      \ // IN: hierarchy constant for ticket\n    TPM_ALG_ID         hashAlg,    //
      IN: the hash algorithm for 'digest'\n    TPM2B_DIGEST*      digest,     // IN:
      input digest\n    TPMT_TK_HASHCHECK* ticket      // OUT: Created ticket\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HierarchyGetProof
      Src: /src/libtpms/src/tpm2/Ticket.c:291,1
    - Dst: CryptHmacStart2B
      Src: /src/libtpms/src/tpm2/Ticket.c:301,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/Ticket.c:302,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/Ticket.c:305,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Ticket.c:308,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/Ticket.c:310,1
    - Dst: CryptHmacEnd2B
      Src: /src/libtpms/src/tpm2/Ticket.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - hierarchy
    - name
    - creation
    - ticket
    argTypes:
    - TPMI_RH_HIERARCHY
    - TPM2B_NAME*
    - TPM2B_DIGEST*
    - TPMT_TK_CREATION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 280
    functionDepth: 4
    functionLinenumber: 280
    functionLinenumberEnd: 315
    functionName: TicketComputeCreation
    functionSourceFile: /src/libtpms/src/tpm2/Ticket.c
    functionUses: 3
    functionsReached:
    - HierarchyGetProof
    - CryptDigestUpdate2B
    - CryptDigestUpdateInt
    - CryptHmacEnd2B
    - MemorySet
    - CryptHmacStart2B
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TicketComputeCreation(TPMI_RH_HIERARCHY hierarchy,  // IN:
      hierarchy for ticket\n                             TPM2B_NAME*       name,       //
      IN: object name\n                             TPM2B_DIGEST*     creation,   //
      IN: creation hash\n                             TPMT_TK_CREATION* ticket      //
      OUT: created ticket\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/DA.c:89,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/DA.c:90,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/DA.c:91,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/DA.c:92,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/DA.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 96
    functionName: DAPreInstall_Init
    functionSourceFile: /src/libtpms/src/tpm2/DA.c
    functionUses: 2
    functionsReached:
    - NV_SYNC_PERSISTENT
    linkageType: ''
    returnType: void
    signature: void DAPreInstall_Init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/DA.c:108,1
    - Dst: _plat__TimerWasReset
      Src: /src/libtpms/src/tpm2/DA.c:110,1
    - Dst: _plat__TimerWasReset
      Src: /src/libtpms/src/tpm2/DA.c:114,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/DA.c:140,1
    - Dst: IS_ORDERLY
      Src: /src/libtpms/src/tpm2/DA.c:146,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/DA.c:155,1
    - Dst: TimeUpdate
      Src: /src/libtpms/src/tpm2/DA.c:159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - type
    argTypes:
    - STARTUP_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 162
    functionName: DAStartup
    functionSourceFile: /src/libtpms/src/tpm2/DA.c
    functionUses: 1
    functionsReached:
    - NOT_REFERENCED
    - IS_ORDERLY
    - NV_SYNC_PERSISTENT
    - TimeUpdate
    - _plat__TimerWasReset
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL DAStartup(STARTUP_TYPE type  // IN: startup type

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TPM_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 178
    functionName: DARegisterFailure
    functionSourceFile: /src/libtpms/src/tpm2/DA.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void DARegisterFailure(TPM_HANDLE handle  // IN: handle for failure

      )'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/DA.c:198,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/DA.c:228,1
    - Dst: NV_SYNC_PERSISTENT
      Src: /src/libtpms/src/tpm2/DA.c:246,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 251
    functionName: DASelfHeal
    functionSourceFile: /src/libtpms/src/tpm2/DA.c
    functionUses: 1
    functionsReached:
    - NV_SYNC_PERSISTENT
    linkageType: ''
    returnType: void
    signature: void DASelfHeal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: NvInitStatic
    functionSourceFile: /src/libtpms/src/tpm2/NvReserved.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NvInitStatic(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _plat__GetNvReadyState
      Src: /src/libtpms/src/tpm2/NvReserved.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 152
    functionName: NvCheckState
    functionSourceFile: /src/libtpms/src/tpm2/NvReserved.c
    functionUses: 1
    functionsReached:
    - _plat__GetNvReadyState
    linkageType: ''
    returnType: void
    signature: void NvCheckState(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _plat__NvCommit
      Src: /src/libtpms/src/tpm2/NvReserved.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: NvCommit
    functionSourceFile: /src/libtpms/src/tpm2/NvReserved.c
    functionUses: 5
    functionsReached:
    - _plat__NvCommit
    linkageType: ''
    returnType: BOOL
    signature: BOOL NvCommit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _plat__NVEnable
      Src: /src/libtpms/src/tpm2/NvReserved.c:174,1
    - Dst: TpmLogFailure
      Src: /src/libtpms/src/tpm2/NvReserved.c:175,1
    - Dst: NvInitStatic
      Src: /src/libtpms/src/tpm2/NvReserved.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 179
    functionName: NvPowerOn
    functionSourceFile: /src/libtpms/src/tpm2/NvReserved.c
    functionUses: 1
    functionsReached:
    - TpmLogFailure
    - NvInitStatic
    - _plat__NVEnable
    linkageType: ''
    returnType: BOOL
    signature: BOOL NvPowerOn(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _plat__NvMemoryClear
      Src: /src/libtpms/src/tpm2/NvReserved.c:192,1
    - Dst: NvInitStatic
      Src: /src/libtpms/src/tpm2/NvReserved.c:195,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/NvReserved.c:197,1
    - Dst: NvUpdateIndexOrderlyData
      Src: /src/libtpms/src/tpm2/NvReserved.c:199,1
    - Dst: NvSetMaxCount
      Src: /src/libtpms/src/tpm2/NvReserved.c:202,1
    - Dst: NvWriteNvListEnd
      Src: /src/libtpms/src/tpm2/NvReserved.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 207
    functionName: NvManufacture
    functionSourceFile: /src/libtpms/src/tpm2/NvReserved.c
    functionUses: 1
    functionsReached:
    - NvSetMaxCount
    - NvWriteNvListEnd
    - _plat__NvMemoryClear
    - NvUpdateIndexOrderlyData
    - NvInitStatic
    - MemorySet
    linkageType: ''
    returnType: void
    signature: void NvManufacture(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvReserved.c:217,1
    - Dst: _plat__NvMemoryRead
      Src: /src/libtpms/src/tpm2/NvReserved.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - outBuffer
    - nvOffset
    - size
    argTypes:
    - void*
    - UINT32
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: NvRead
    functionSourceFile: /src/libtpms/src/tpm2/NvReserved.c
    functionUses: 16
    functionsReached:
    - pAssert
    - _plat__NvMemoryRead
    linkageType: ''
    returnType: void
    signature: "void NvRead(void*  outBuffer,  // OUT: buffer to receive data\n            UINT32
      nvOffset,   // IN: offset in NV of value\n            UINT32 size        //
      IN: size of the value to read\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SET_NV_UPDATE
      Src: /src/libtpms/src/tpm2/NvReserved.c:234,1
    - Dst: _plat__NvMemoryWrite
      Src: /src/libtpms/src/tpm2/NvReserved.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - nvOffset
    - size
    - inBuffer
    argTypes:
    - UINT32
    - UINT32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 238
    functionName: NvWrite
    functionSourceFile: /src/libtpms/src/tpm2/NvReserved.c
    functionUses: 10
    functionsReached:
    - SET_NV_UPDATE
    - _plat__NvMemoryWrite
    linkageType: ''
    returnType: BOOL
    signature: "BOOL NvWrite(UINT32 nvOffset,  // IN: location in NV to receive data\n
      \            UINT32 size,      // IN: size of the data to move\n             void*
      \ inBuffer   // IN: location containing data to write\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvReserved.c:250,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/NvReserved.c:251,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NvReserved.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - offset
    - size
    - buffer
    argTypes:
    - UINT32
    - UINT32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 253
    functionName: NvUpdatePersistent
    functionSourceFile: /src/libtpms/src/tpm2/NvReserved.c
    functionUses: 0
    functionsReached:
    - MemoryCopy
    - pAssert
    - NvWrite
    linkageType: ''
    returnType: void
    signature: "void NvUpdatePersistent(\n    UINT32 offset,  // IN: location in PERMANENT_DATA
      to be updated\n    UINT32 size,    // IN: size of the value\n    void*  buffer
      \  // IN: the new data\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/NvReserved.c:262,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/NvReserved.c:263,1
    - Dst: NvWrite
      Src: /src/libtpms/src/tpm2/NvReserved.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - offset
    - size
    argTypes:
    - UINT32
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: NvClearPersistent
    functionSourceFile: /src/libtpms/src/tpm2/NvReserved.c
    functionUses: 0
    functionsReached:
    - MemorySet
    - pAssert
    - NvWrite
    linkageType: ''
    returnType: void
    signature: "void NvClearPersistent(UINT32 offset,  // IN: the offset in the PERMANENT_DATA\n
      \                                      //     structure to be cleared (zeroed)\n
      \                      UINT32 size     // IN: number of bytes to clear\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NvRead
      Src: /src/libtpms/src/tpm2/NvReserved.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 274
    functionName: NvReadPersistent
    functionSourceFile: /src/libtpms/src/tpm2/NvReserved.c
    functionUses: 1
    functionsReached:
    - NvRead
    linkageType: ''
    returnType: void
    signature: void NvReadPersistent(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EncryptDecryptShared
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:75,1
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:88,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:95,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:97,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:99,1
    - Dst: CryptGetSymmetricBlockSize
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:121,1
    - Dst: CryptSymmetricDecrypt
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:153,1
    - Dst: CryptSymmetricEncrypt
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:160,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 39
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - EncryptDecrypt_In*
    - EncryptDecrypt_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 166
    functionName: TPM2_EncryptDecrypt
    functionSourceFile: /src/libtpms/src/tpm2/SymmetricCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - EncryptDecryptShared
    - CryptGetSymmetricBlockSize
    - CryptSymmetricEncrypt
    - HandleToObject
    - CryptSymmetricDecrypt
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_EncryptDecrypt(\n\t\t    EncryptDecrypt_In   *in,            //
      IN: input parameter list\n\t\t    EncryptDecrypt_Out  *out            // OUT:
      output parameter list\n\t\t    )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EncryptDecryptShared
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:181,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - EncryptDecrypt2_In*
    - EncryptDecrypt2_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 200
    functionName: TPM2_EncryptDecrypt2
    functionSourceFile: /src/libtpms/src/tpm2/SymmetricCommands.c
    functionUses: 0
    functionsReached:
    - EncryptDecryptShared
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_EncryptDecrypt2(\n\t\t     EncryptDecrypt2_In   *in,            //
      IN: input parameter list\n\t\t     EncryptDecrypt2_Out  *out            // OUT:
      output parameter list\n\t\t     )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:215,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:217,1
    - Dst: CryptHashEnd2B
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:219,1
    - Dst: TicketIsSafe
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:230,1
    - Dst: TicketComputeHashCheck
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - Hash_In*
    - Hash_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 205
    functionDepth: 5
    functionLinenumber: 205
    functionLinenumberEnd: 243
    functionName: TPM2_Hash
    functionSourceFile: /src/libtpms/src/tpm2/SymmetricCommands.c
    functionUses: 0
    functionsReached:
    - TicketIsSafe
    - CryptDigestUpdate2B
    - CryptHashEnd2B
    - CryptHashStart
    - TicketComputeHashCheck
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Hash(\n\t  Hash_In         *in,            // IN: input
      parameter list\n\t  Hash_Out        *out            // OUT: output parameter
      list\n\t  )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:260,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:266,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:269,1
    - Dst: CryptHmacStart2B
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:289,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:292,1
    - Dst: CryptHmacEnd2B
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - HMAC_In*
    - HMAC_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 296
    functionName: TPM2_HMAC
    functionSourceFile: /src/libtpms/src/tpm2/SymmetricCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - CryptDigestUpdate2B
    - HandleToObject
    - CryptHmacEnd2B
    - CryptHmacStart2B
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_HMAC(\n\t  HMAC_In         *in,            // IN: input
      parameter list\n\t  HMAC_Out        *out            // OUT: output parameter
      list\n\t  )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:320,1
    - Dst: CryptSelectMac
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:324,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:330,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:332,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:335,1
    - Dst: CryptMacStart
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:338,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:344,1
    - Dst: CryptHmacEnd2B
      Src: /src/libtpms/src/tpm2/SymmetricCommands.c:346,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - MAC_In*
    - MAC_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 349
    functionName: TPM2_MAC
    functionSourceFile: /src/libtpms/src/tpm2/SymmetricCommands.c
    functionUses: 0
    functionsReached:
    - CryptSelectMac
    - IS_ATTRIBUTE
    - RcSafeAddToResult
    - CryptDigestUpdate2B
    - HandleToObject
    - CryptHmacEnd2B
    - CryptMacStart
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_MAC(\n\t MAC_In         *in,            // IN: input parameter
      list\n\t MAC_Out        *out            // OUT: output parameter list\n\t )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _plat__ACT_UpdateCounter
      Src: /src/libtpms/src/tpm2/ACT_spt.c:90,1
    - Dst: _plat__ACT_SetSignaled
      Src: /src/libtpms/src/tpm2/ACT_spt.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - act
    - actData
    argTypes:
    - UINT32
    - ACT_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 94
    functionName: _ActResume
    functionSourceFile: /src/libtpms/src/tpm2/ACT_spt.c
    functionUses: 0
    functionsReached:
    - _plat__ACT_SetSignaled
    - _plat__ACT_UpdateCounter
    linkageType: ''
    returnType: void
    signature: "void _ActResume(UINT32     act,     //IN: the act number\n                       ACT_STATE*
      actData  //IN: pointer to the saved ACT data\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _plat__ACT_Initialize
      Src: /src/libtpms/src/tpm2/ACT_spt.c:102,1
    - Dst: FOR_EACH_ACT
      Src: /src/libtpms/src/tpm2/ACT_spt.c:123,1
    - Dst: FOR_EACH_ACT
      Src: /src/libtpms/src/tpm2/ACT_spt.c:130,1
    - Dst: _plat__ACT_EnableTicks
      Src: /src/libtpms/src/tpm2/ACT_spt.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - type
    argTypes:
    - STARTUP_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 137
    functionName: ActStartup
    functionSourceFile: /src/libtpms/src/tpm2/ACT_spt.c
    functionUses: 1
    functionsReached:
    - _plat__ACT_Initialize
    - _plat__ACT_EnableTicks
    - FOR_EACH_ACT
    linkageType: ''
    returnType: BOOL
    signature: BOOL ActStartup(STARTUP_TYPE type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: CLEAR_ACT_POLICY
    functionSourceFile: /src/libtpms/src/tpm2/ACT_spt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_ACT_POLICY(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: RESUME_ACT
    functionSourceFile: /src/libtpms/src/tpm2/ACT_spt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESUME_ACT(N)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _plat__ACT_GetRemaining
      Src: /src/libtpms/src/tpm2/ACT_spt.c:145,1
    - Dst: _plat__ACT_GetSignaled
      Src: /src/libtpms/src/tpm2/ACT_spt.c:154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - act
    - actData
    argTypes:
    - UINT32
    - P_ACT_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 156
    functionName: _ActSaveState
    functionSourceFile: /src/libtpms/src/tpm2/ACT_spt.c
    functionUses: 0
    functionsReached:
    - _plat__ACT_GetSignaled
    - _plat__ACT_GetRemaining
    linkageType: ''
    returnType: void
    signature: void _ActSaveState(UINT32 act, P_ACT_STATE actData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _plat__ACT_GetSignaled
      Src: /src/libtpms/src/tpm2/ACT_spt.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - actHandle
    argTypes:
    - TPM_RH
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: ActGetSignaled
    functionSourceFile: /src/libtpms/src/tpm2/ACT_spt.c
    functionUses: 1
    functionsReached:
    - _plat__ACT_GetSignaled
    linkageType: ''
    returnType: BOOL
    signature: BOOL ActGetSignaled(TPM_RH actHandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FOR_EACH_ACT
      Src: /src/libtpms/src/tpm2/ACT_spt.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - TPM_SU
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 190
    functionName: ActShutdown
    functionSourceFile: /src/libtpms/src/tpm2/ACT_spt.c
    functionUses: 1
    functionsReached:
    - FOR_EACH_ACT
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL ActShutdown(TPM_SU state  //IN: the type of the shutdown.

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: SAVE_ACT_STATE
    functionSourceFile: /src/libtpms/src/tpm2/ACT_spt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SAVE_ACT_STATE(N)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FOR_EACH_ACT
      Src: /src/libtpms/src/tpm2/ACT_spt.c:201,1
    - Dst: _plat__ACT_GetImplemented
      Src: /src/libtpms/src/tpm2/ACT_spt.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - act
    argTypes:
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 210
    functionName: ActIsImplemented
    functionSourceFile: /src/libtpms/src/tpm2/ACT_spt.c
    functionUses: 0
    functionsReached:
    - _plat__ACT_GetImplemented
    - FOR_EACH_ACT
    linkageType: ''
    returnType: BOOL
    signature: BOOL ActIsImplemented(UINT32 act)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _plat__ACT_GetImplemented
      Src: /src/libtpms/src/tpm2/ACT_spt.c:226,1
    - Dst: _plat__ACT_UpdateCounter
      Src: /src/libtpms/src/tpm2/ACT_spt.c:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - handle
    - newValue
    argTypes:
    - TPM_RH
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 253
    functionName: ActCounterUpdate
    functionSourceFile: /src/libtpms/src/tpm2/ACT_spt.c
    functionUses: 1
    functionsReached:
    - _plat__ACT_UpdateCounter
    - _plat__ACT_GetImplemented
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC ActCounterUpdate(TPM_RH handle,   //IN: the handle of the act\n
      \                UINT32 newValue  //IN: the value to set in the ACT\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ActIsImplemented
      Src: /src/libtpms/src/tpm2/ACT_spt.c:282,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/ACT_spt.c:286,1
    - Dst: _plat__ACT_GetRemaining
      Src: /src/libtpms/src/tpm2/ACT_spt.c:288,1
    - Dst: _plat__ACT_GetSignaled
      Src: /src/libtpms/src/tpm2/ACT_spt.c:289,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ACT_spt.c:290,1
    - Dst: CLEAR_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ACT_spt.c:292,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ACT_spt.c:295,1
    - Dst: _plat__ACT_GetImplemented
      Src: /src/libtpms/src/tpm2/ACT_spt.c:302,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - actHandle
    - maxCount
    - actList
    argTypes:
    - TPM_HANDLE
    - UINT32
    - TPML_ACT_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 309
    functionName: ActGetCapabilityData
    functionSourceFile: /src/libtpms/src/tpm2/ACT_spt.c
    functionUses: 1
    functionsReached:
    - _plat__ACT_GetSignaled
    - _plat__ACT_GetRemaining
    - CLEAR_ATTRIBUTE
    - memset
    - _plat__ACT_GetImplemented
    - SET_ATTRIBUTE
    - ActIsImplemented
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO ActGetCapabilityData(TPM_HANDLE     actHandle,  // IN:
      the handle for the starting ACT\n                     UINT32         maxCount,
      \  // IN: maximum allowed return values\n                     TPML_ACT_DATA*
      actList     // OUT: ACT data list\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ActIsImplemented
      Src: /src/libtpms/src/tpm2/ACT_spt.c:320,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/ACT_spt.c:322,1
    - Dst: _plat__ACT_GetRemaining
      Src: /src/libtpms/src/tpm2/ACT_spt.c:324,1
    - Dst: _plat__ACT_GetSignaled
      Src: /src/libtpms/src/tpm2/ACT_spt.c:325,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ACT_spt.c:326,1
    - Dst: CLEAR_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ACT_spt.c:328,1
    - Dst: SET_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/ACT_spt.c:330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - actHandle
    - actData
    argTypes:
    - TPM_HANDLE
    - TPMS_ACT_DATA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 334
    functionName: ActGetOneCapability
    functionSourceFile: /src/libtpms/src/tpm2/ACT_spt.c
    functionUses: 1
    functionsReached:
    - _plat__ACT_GetSignaled
    - _plat__ACT_GetRemaining
    - CLEAR_ATTRIBUTE
    - memset
    - SET_ATTRIBUTE
    - ActIsImplemented
    linkageType: ''
    returnType: BOOL
    signature: "BOOL ActGetOneCapability(TPM_HANDLE     actHandle,  // IN: the handle
      for the ACT\n                         TPMS_ACT_DATA* actData     // OUT: ACT
      data\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/SigningCommands.c:85,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SigningCommands.c:89,1
    - Dst: CryptValidateSignature
      Src: /src/libtpms/src/tpm2/SigningCommands.c:94,1
    - Dst: RcSafeAddToResult
      Src: /src/libtpms/src/tpm2/SigningCommands.c:96,1
    - Dst: GetHierarchy
      Src: /src/libtpms/src/tpm2/SigningCommands.c:100,1
    - Dst: TicketComputeVerified
      Src: /src/libtpms/src/tpm2/SigningCommands.c:112,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - VerifySignature_In*
    - VerifySignature_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 79
    functionDepth: 6
    functionLinenumber: 79
    functionLinenumberEnd: 119
    functionName: TPM2_VerifySignature
    functionSourceFile: /src/libtpms/src/tpm2/SigningCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - GetHierarchy
    - RcSafeAddToResult
    - HandleToObject
    - TicketComputeVerified
    - CryptValidateSignature
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_VerifySignature(VerifySignature_In*  in,  // IN: input
      parameter list\n\t\t     VerifySignature_Out* out  // OUT: output parameter
      list\n\t\t     )"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/SigningCommands.c:157,1
    - Dst: IsSigningObject
      Src: /src/libtpms/src/tpm2/SigningCommands.c:160,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SigningCommands.c:166,1
    - Dst: CryptSelectSignScheme
      Src: /src/libtpms/src/tpm2/SigningCommands.c:174,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/SigningCommands.c:181,1
    - Dst: TicketComputeHashCheck
      Src: /src/libtpms/src/tpm2/SigningCommands.c:185,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/SigningCommands.c:192,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/SigningCommands.c:202,1
    - Dst: CryptSign
      Src: /src/libtpms/src/tpm2/SigningCommands.c:209,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - Sign_In*
    - Sign_Out*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 150
    functionDepth: 5
    functionLinenumber: 150
    functionLinenumberEnd: 212
    functionName: TPM2_Sign
    functionSourceFile: /src/libtpms/src/tpm2/SigningCommands.c
    functionUses: 0
    functionsReached:
    - IS_ATTRIBUTE
    - CryptHashGetDigestSize
    - MemoryEqual2B
    - IsSigningObject
    - CryptSign
    - HandleToObject
    - CryptSelectSignScheme
    - TicketComputeHashCheck
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TPM2_Sign(Sign_In*  in,  // IN: input parameter list\n\t  Sign_Out*
      out  // OUT: output parameter list\n\t  )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/AlgorithmCap.c:222,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - algID
    - count
    - algList
    argTypes:
    - TPM_ALG_ID
    - UINT32
    - TPML_ALG_PROPERTY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 244
    functionName: AlgorithmCapGetImplemented
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmCap.c
    functionUses: 1
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO AlgorithmCapGetImplemented(TPM_ALG_ID algID,  // IN: the
      starting algorithm ID\n                           UINT32     count,  // IN:
      count of returned algorithms\n                           TPML_ALG_PROPERTY*
      algList  // OUT: algorithm list\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/AlgorithmCap.c:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - algID
    - algProperty
    argTypes:
    - TPM_ALG_ID
    - TPMS_ALG_PROPERTY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 276
    functionName: AlgorithmCapGetOneImplemented
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmCap.c
    functionUses: 1
    functionsReached:
    - RuntimeAlgorithmCheckEnabled
    linkageType: ''
    returnType: BOOL
    signature: "BOOL AlgorithmCapGetOneImplemented(\n    TPM_ALG_ID         algID,
      \      // IN: the algorithm ID\n    TPMS_ALG_PROPERTY* algProperty  // OUT:
      algorithm properties\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/AlgorithmCap.c:288,1
    - Dst: RuntimeAlgorithmCheckEnabled
      Src: /src/libtpms/src/tpm2/AlgorithmCap.c:293,1
    - Dst: SET_BIT
      Src: /src/libtpms/src/tpm2/AlgorithmCap.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - implemented
    argTypes:
    - ALGORITHM_VECTOR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 298
    functionName: AlgorithmGetImplementedVector
    functionSourceFile: /src/libtpms/src/tpm2/AlgorithmCap.c
    functionUses: 1
    functionsReached:
    - MemorySet
    - RuntimeAlgorithmCheckEnabled
    - SET_BIT
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT AlgorithmGetImplementedVector(\n    ALGORITHM_VECTOR* implemented
      \ // OUT: the implemented bits are SET\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:205,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:207,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:209,1
    - Dst: SET_BIT
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:214,1
    - Dst: IdxToCc
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - RuntimeCommands
    - maxStateFormatLevel
    argTypes:
    - struct RuntimeCommands*
    - unsigned int
    assertStmts:
    - condition: (maxStateFormatLevel >= 1)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/libtpms/src/tpm2/RuntimeCommands.c
    constantsTouched: []
    func_position:
      end: 216
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 216
    functionName: RuntimeCommandsEnableAllCommands
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeCommands.c
    functionUses: 0
    functionsReached:
    - IdxToCc
    - ARRAY_SIZE
    - assert
    - MemorySet
    - SET_BIT
    linkageType: ''
    returnType: void
    signature: "void RuntimeCommandsEnableAllCommands(struct RuntimeCommands *RuntimeCommands,\n\t\t\t\t
      unsigned int            maxStateFormatLevel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - RuntimeCommands
    argTypes:
    - struct RuntimeCommands*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: RuntimeCommandsInit
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeCommands.c
    functionUses: 1
    functionsReached:
    - MemorySet
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT RuntimeCommandsInit(struct RuntimeCommands *RuntimeCommands)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - RuntimeCommands
    argTypes:
    - struct RuntimeCommands*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: RuntimeCommandsFree
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeCommands.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT RuntimeCommandsFree(struct RuntimeCommands *RuntimeCommands)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeCommandsFree
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:236,1
    - Dst: RuntimeCommandsInit
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:237,1
    - Dst: RuntimeCommandsEnableAllCommands
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - RuntimeCommands
    - maxStateFormatLevel
    argTypes:
    - struct RuntimeCommands*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: RuntimeCommandsSetDefault
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeCommands.c
    functionUses: 0
    functionsReached:
    - RuntimeCommandsInit
    - RuntimeCommandsFree
    - RuntimeCommandsEnableAllCommands
    linkageType: ''
    returnType: void
    signature: "void RuntimeCommandsSetDefault(struct RuntimeCommands *RuntimeCommands,\n\t\t\t
      \ unsigned int            maxStateFormatLevel)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:252,1
    - Dst: strtoul
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:260,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - buffer
    - commandCodeLo
    - commandCodeHi
    argTypes:
    - char*
    - TPM_CC*
    - TPM_CC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 274
    functionName: parseRange
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeCommands.c
    functionUses: 0
    functionsReached:
    - strtoul
    linkageType: ''
    returnType: int
    signature: "int parseRange(const char *buffer,\n\t   TPM_CC *commandCodeLo, TPM_CC
      *commandCodeHi)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeCommandsSetDefault
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:298,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:302,1
    - Dst: strchr
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:307,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:311,1
    - Dst: parseRange
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:313,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:314,1
    - Dst: CcToIdx
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:318,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:318,1
    - Dst: CcToIdx
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:319,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:319,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:320,1
    - Dst: CcToIdx
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:324,1
    - Dst: CcToIdx
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:325,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:329,1
    - Dst: IdxToCc
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:330,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:334,1
    - Dst: IdxToCc
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:335,1
    - Dst: SET_BIT
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:340,1
    - Dst: IdxToCc
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:340,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:341,1
    - Dst: MAX
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:342,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:352,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:356,1
    - Dst: IdxToCc
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:356,1
    - Dst: TPMLIB_LogTPM2Error
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:357,1
    - Dst: IdxToCc
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:358,1
    - Dst: RuntimeCommandsSetDefault
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:368,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 4
    argNames:
    - RuntimeCommands
    - newProfile
    - stateFormatLevel
    - maxStateFormatLevel
    argTypes:
    - struct RuntimeCommands*
    - char*
    - unsigned int*
    - unsigned int
    assertStmts:
    - condition: (s_CommandProperties[commandIndex].stateFormatLevel > 0)
      pos:
        line_end: 340
        line_start: 340
        source_file: /src/libtpms/src/tpm2/RuntimeCommands.c
    constantsTouched: []
    func_position:
      end: 371
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 371
    functionName: RuntimeCommandsSetProfile
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeCommands.c
    functionUses: 2
    functionsReached:
    - IdxToCc
    - RuntimeCommandsSetDefault
    - strchr
    - strlen
    - TEST_BIT
    - ARRAY_SIZE
    - CcToIdx
    - assert
    - SET_BIT
    - MemorySet
    - TPMLIB_LogTPM2Error
    - MAX
    - parseRange
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT RuntimeCommandsSetProfile(struct RuntimeCommands *RuntimeCommands,\n\t\t\t
      \ const char\t\t *newProfile,\t\t// IN: comma-separated list of command codes
      and ranges\n\t\t\t  unsigned int           *stateFormatLevel,\t// IN/OUT: stateFormatLevel\n\t\t\t
      \ unsigned int            maxStateFormatLevel\t// IN: maximum stateFormatLevel\n\t\t\t
      \ )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeCommandsSetProfile
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:388,1
    - Dst: RuntimeCommandsSetProfile
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - RuntimeCommands
    - newProfile
    - maxStateFormatLevel
    - oldProfile
    argTypes:
    - struct RuntimeCommands*
    - char*
    - unsigned int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 376
    functionDepth: 4
    functionLinenumber: 376
    functionLinenumberEnd: 396
    functionName: RuntimeCommandsSwitchProfile
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeCommands.c
    functionUses: 1
    functionsReached:
    - RuntimeCommandsSetProfile
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT RuntimeCommandsSwitchProfile(struct RuntimeCommands   *RuntimeCommands,\n\t\t\t
      \    const char               *newProfile,\n\t\t\t     unsigned int              maxStateFormatLevel,\n\t\t\t
      \    char                    **oldProfile)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CcToIdx
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:404,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:404,1
    - Dst: TPMLIB_LogPrintf
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:405,1
    - Dst: TPMLIB_LogPrintf
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:409,1
    - Dst: CcToIdx
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:411,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:412,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - RuntimeCommands
    - commandCode
    argTypes:
    - struct RuntimeCommands*
    - TPM_CC
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 416
    functionName: RuntimeCommandsCheckEnabled
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeCommands.c
    functionUses: 4
    functionsReached:
    - ARRAY_SIZE
    - CcToIdx
    - TPMLIB_LogPrintf
    - TEST_BIT
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT RuntimeCommandsCheckEnabled(struct RuntimeCommands *RuntimeCommands,\n\t\t\t
      \   TPM_CC\t            commandCode      // IN: the commandCode to check\n\t\t\t
      \   )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - RuntimeCommands
    argTypes:
    - struct RuntimeCommands*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 432
    functionName: RuntimeCommandsCountEnabled
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeCommands.c
    functionUses: 2
    functionsReached:
    - TEST_BIT
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT RuntimeCommandsCountEnabled(struct RuntimeCommands *RuntimeCommands)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:447,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:449,1
    - Dst: snprintf
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:454,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:455,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - buffer
    - first
    - commandCodeLo
    - commandCodeHi
    argTypes:
    - char*
    - BOOL
    - COMMAND_INDEX
    - COMMAND_INDEX
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 465
    functionName: RuntimeCommandPrint
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeCommands.c
    functionUses: 0
    functionsReached:
    - asprintf
    - free
    - snprintf
    linkageType: ''
    returnType: char
    signature: "char *\nRuntimeCommandPrint(char           *buffer,\n\t\t    BOOL
      \           first,\n\t\t    COMMAND_INDEX   commandCodeLo,\n\t\t    COMMAND_INDEX
      \  commandCodeHi)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:476,1
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:480,1
    - Dst: RuntimeCommandsCheckEnabled
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:495,1
    - Dst: IdxToCc
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:495,1
    - Dst: RuntimeCommandsCheckEnabled
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:499,1
    - Dst: IdxToCc
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:499,1
    - Dst: IdxToCc
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:507,1
    - Dst: IdxToCc
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:510,1
    - Dst: RuntimeCommandPrint
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:519,1
    - Dst: IdxToCc
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:526,1
    - Dst: RuntimeCommandPrint
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:533,1
    - Dst: asprintf
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:535,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/RuntimeCommands.c:536,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 52
    argCount: 2
    argNames:
    - RuntimeCommands
    - rct
    argTypes:
    - struct RuntimeCommands*
    - enum RuntimeCommandType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 541
    functionName: RuntimeCommandsPrint
    functionSourceFile: /src/libtpms/src/tpm2/RuntimeCommands.c
    functionUses: 1
    functionsReached:
    - RuntimeCommandsCheckEnabled
    - IdxToCc
    - strdup
    - RuntimeCommandPrint
    - ARRAY_SIZE
    - asprintf
    - free
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT *\nRuntimeCommandsPrint(struct RuntimeCommands    *RuntimeCommands,\n\t\t
      \    enum RuntimeCommandType    rct)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetHashDef
      Src: /src/libtpms/src/tpm2/X509_RSA.c:84,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/X509_RSA.c:86,1
    - Dst: X509PushAlgorithmIdentifierSequence
      Src: /src/libtpms/src/tpm2/X509_RSA.c:100,1
    - Dst: X509PushAlgorithmIdentifierSequence
      Src: /src/libtpms/src/tpm2/X509_RSA.c:111,1
    - Dst: ASN1StartMarshalContext
      Src: /src/libtpms/src/tpm2/X509_RSA.c:134,1
    - Dst: ASN1StartMarshalContext
      Src: /src/libtpms/src/tpm2/X509_RSA.c:136,1
    - Dst: ASN1StartMarshalContext
      Src: /src/libtpms/src/tpm2/X509_RSA.c:140,1
    - Dst: CryptRsaPssSaltSize
      Src: /src/libtpms/src/tpm2/X509_RSA.c:142,1
    - Dst: ASN1PushUINT
      Src: /src/libtpms/src/tpm2/X509_RSA.c:145,1
    - Dst: ASN1EndEncapsulation
      Src: /src/libtpms/src/tpm2/X509_RSA.c:147,1
    - Dst: ASN1StartMarshalContext
      Src: /src/libtpms/src/tpm2/X509_RSA.c:156,1
    - Dst: ASN1StartMarshalContext
      Src: /src/libtpms/src/tpm2/X509_RSA.c:158,1
    - Dst: X509PushAlgorithmIdentifierSequence
      Src: /src/libtpms/src/tpm2/X509_RSA.c:163,1
    - Dst: ASN1PushOID
      Src: /src/libtpms/src/tpm2/X509_RSA.c:166,1
    - Dst: ASN1EndEncapsulation
      Src: /src/libtpms/src/tpm2/X509_RSA.c:169,1
    - Dst: ASN1EndEncapsulation
      Src: /src/libtpms/src/tpm2/X509_RSA.c:172,1
    - Dst: ASN1StartMarshalContext
      Src: /src/libtpms/src/tpm2/X509_RSA.c:180,1
    - Dst: X509PushAlgorithmIdentifierSequence
      Src: /src/libtpms/src/tpm2/X509_RSA.c:182,1
    - Dst: ASN1EndEncapsulation
      Src: /src/libtpms/src/tpm2/X509_RSA.c:184,1
    - Dst: ASN1EndEncapsulation
      Src: /src/libtpms/src/tpm2/X509_RSA.c:187,1
    - Dst: ASN1PushOID
      Src: /src/libtpms/src/tpm2/X509_RSA.c:191,1
    - Dst: ASN1EndEncapsulation
      Src: /src/libtpms/src/tpm2/X509_RSA.c:194,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 3
    argNames:
    - signKey
    - scheme
    - ctx
    argTypes:
    - OBJECT*
    - TPMT_SIG_SCHEME*
    - ASN1MarshalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 200
    functionName: X509AddSigningAlgorithmRSA
    functionSourceFile: /src/libtpms/src/tpm2/X509_RSA.c
    functionUses: 1
    functionsReached:
    - NOT_REFERENCED
    - ASN1EndEncapsulation
    - ASN1PushUINT
    - X509PushAlgorithmIdentifierSequence
    - CryptGetHashDef
    - ASN1StartMarshalContext
    - ASN1PushOID
    - CryptRsaPssSaltSize
    linkageType: ''
    returnType: INT16
    signature: "INT16 X509AddSigningAlgorithmRSA(\n    OBJECT* signKey, TPMT_SIG_SCHEME*
      scheme, ASN1MarshalContext* ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASN1StartMarshalContext
      Src: /src/libtpms/src/tpm2/X509_RSA.c:228,1
    - Dst: ASN1StartMarshalContext
      Src: /src/libtpms/src/tpm2/X509_RSA.c:229,1
    - Dst: ASN1StartMarshalContext
      Src: /src/libtpms/src/tpm2/X509_RSA.c:230,1
    - Dst: ASN1PushUINT
      Src: /src/libtpms/src/tpm2/X509_RSA.c:238,1
    - Dst: ASN1PushInteger
      Src: /src/libtpms/src/tpm2/X509_RSA.c:240,1
    - Dst: ASN1EndEncapsulation
      Src: /src/libtpms/src/tpm2/X509_RSA.c:244,1
    - Dst: ASN1EndEncapsulation
      Src: /src/libtpms/src/tpm2/X509_RSA.c:247,1
    - Dst: X509PushAlgorithmIdentifierSequence
      Src: /src/libtpms/src/tpm2/X509_RSA.c:251,1
    - Dst: ASN1EndEncapsulation
      Src: /src/libtpms/src/tpm2/X509_RSA.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - object
    - ctx
    argTypes:
    - OBJECT*
    - ASN1MarshalContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 254
    functionName: X509AddPublicRSA
    functionSourceFile: /src/libtpms/src/tpm2/X509_RSA.c
    functionUses: 1
    functionsReached:
    - ASN1EndEncapsulation
    - ASN1PushUINT
    - ASN1PushInteger
    - X509PushAlgorithmIdentifierSequence
    - ASN1StartMarshalContext
    linkageType: ''
    returnType: INT16
    signature: INT16 X509AddPublicRSA(OBJECT* object, ASN1MarshalContext* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: IF_IMPLEMENTED_SHA1
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_IMPLEMENTED_SHA1(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: IF_IMPLEMENTED_SHA256
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_IMPLEMENTED_SHA256(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: IF_IMPLEMENTED_SHA384
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_IMPLEMENTED_SHA384(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: IF_IMPLEMENTED_SHA512
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_IMPLEMENTED_SHA512(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: IF_IMPLEMENTED_SM3_256
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_IMPLEMENTED_SM3_256(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: IF_IMPLEMENTED_SHA3_256
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_IMPLEMENTED_SHA3_256(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: IF_IMPLEMENTED_SHA3_384
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_IMPLEMENTED_SHA3_384(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: IF_IMPLEMENTED_SHA3_512
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_IMPLEMENTED_SHA3_512(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: FOR_EACH_HASH
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptHash.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOR_EACH_HASH(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HASH
    - ','
    - Hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: HASH_TYPE
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_TYPE(HASH, Hash)
  - 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: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: ALIGNED_SIZE
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGNED_SIZE(x, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HASH
    - ','
    - Hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: HASH_TPM2B
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_TPM2B(HASH, Hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 255
    functionName: PKCS1_OID
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKCS1_OID(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: ECDSA_OID
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ECDSA_OID(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: CRYPT_ECC_NUM
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptEcc.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_ECC_NUM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - initializer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: CRYPT_ECC_INITIALIZED
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptEcc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_ECC_INITIALIZED(name, initializer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: IF_IMPLEMENTED_AES
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_IMPLEMENTED_AES(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: IF_IMPLEMENTED_SM4
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_IMPLEMENTED_SM4(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: IF_IMPLEMENTED_CAMELLIA
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_IMPLEMENTED_CAMELLIA(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: IF_IMPLEMENTED_TDES
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IF_IMPLEMENTED_TDES(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: FOR_EACH_SYM
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOR_EACH_SYM(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: FOR_EACH_SYM_WITHOUT_TDES
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOR_EACH_SYM_WITHOUT_TDES(op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYM
    - ','
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: KEY_SCHEDULE
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEY_SCHEDULE(SYM, sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - keySchedule
    - ','
    - in
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: ENCRYPT
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCRYPT(keySchedule, in, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - keySchedule
    - ','
    - in
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: DECRYPT
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECRYPT(keySchedule, in, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ALG
    - ','
    - alg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: ENCRYPT_CASE
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENCRYPT_CASE(ALG, alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ALG
    - ','
    - alg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: DECRYPT_CASE
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECRYPT_CASE(ALG, alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: CRYPT_RSA_VAR
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_RSA_VAR(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - initializer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: CRYPT_RSA_INITIALIZED
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_RSA_INITIALIZED(name, initializer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: CRYPT_PRIME_VAR
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_PRIME_VAR(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - initializer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: CRYPT_PRIME_INITIALIZED
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_PRIME_INITIALIZED(name, initializer)
  - 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: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: NEW_PRIVATE_EXPONENT
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEW_PRIVATE_EXPONENT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_INIT
      Src: /src/libtpms/src/tpm2/crypto/CryptRsa.h:116,1
    - Dst: BN_INIT
      Src: /src/libtpms/src/tpm2/crypto/CryptRsa.h:117,1
    - Dst: BN_INIT
      Src: /src/libtpms/src/tpm2/crypto/CryptRsa.h:118,1
    - Dst: BN_INIT
      Src: /src/libtpms/src/tpm2/crypto/CryptRsa.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pExp
    argTypes:
    - privateExponent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: RsaInitializeExponentOld
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRsa.h
    functionUses: 0
    functionsReached:
    - BN_INIT
    linkageType: ''
    returnType: void
    signature: void RsaInitializeExponentOld(privateExponent_t* pExp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/crypto/CryptRsa.h:127,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/crypto/CryptRsa.h:128,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/crypto/CryptRsa.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pExp
    - Z
    argTypes:
    - privateExponent_t*
    - privateExponent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: RsaSetExponentOld
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRsa.h
    functionUses: 0
    functionsReached:
    - ExtMath_Copy
    linkageType: ''
    returnType: void
    signature: "void RsaSetExponentOld(privateExponent_t* pExp,  // OUT\n\t\t\t\t
      \    privateExponent*   Z      // IN\n\t\t\t\t     )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/crypto/CryptRsa.h:136,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/crypto/CryptRsa.h:137,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/crypto/CryptRsa.h:138,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/crypto/CryptRsa.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - Z
    - pExp
    argTypes:
    - privateExponent*
    - privateExponent_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: RsaSetExponentFromOld
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRsa.h
    functionUses: 0
    functionsReached:
    - ExtMath_Copy
    linkageType: ''
    returnType: void
    signature: "void RsaSetExponentFromOld(privateExponent*   Z,     // OUT\n\t\t\t\t\t
      privateExponent_t* pExp   // IN\n\t\t\t\t\t )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - key
    - ','
    - keySizeInBits
    - ','
    - schedule
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: DRBG_ENCRYPT_SETUP
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DRBG_ENCRYPT_SETUP(key, keySizeInBits, schedule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - keySchedule
    - ','
    - in
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: DRBG_ENCRYPT
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DRBG_ENCRYPT(keySchedule, in, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - seed
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: pDRBG_KEY
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pDRBG_KEY(seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - seed
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: pDRBG_IV
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pDRBG_IV(seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - BIT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: IsTestStateSet
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsTestStateSet(BIT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - BIT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: SetTestStateBit
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetTestStateBit(BIT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - BIT
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: ClearTestStateBit
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ClearTestStateBit(BIT)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: IsSelfTest
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsSelfTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: SetSelfTest
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetSelfTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: ClearSelfTest
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ClearSelfTest()
  - 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: IsEntropyBad
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsEntropyBad()
  - 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: SetEntropyBad
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetEntropyBad()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: ClearEntropyBad
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ClearEntropyBad()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: IsDrbgTested
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsDrbgTested()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: SetDrbgTested
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SetDrbgTested()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: ClearDrbgTested
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ClearDrbgTested()
  - 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: PRIME_INDEX
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRIME_INDEX(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: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: INSTRUMENT_SET
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSTRUMENT_SET(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: 203
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 203
    functionName: INSTRUMENT_ADD
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSTRUMENT_ADD(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: 204
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 204
    functionName: INSTRUMENT_INC
    functionSourceFile: /src/libtpms/src/tpm2/crypto/CryptRand.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSTRUMENT_INC(a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DES_set_key_unchecked
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslDesSupport.c:81,1
    - Dst: DES_set_key_unchecked
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslDesSupport.c:82,1
    - Dst: DES_set_key_unchecked
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslDesSupport.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - key
    - keySizeInBits
    - keySchedule
    argTypes:
    - BYTE*
    - UINT16
    - tpmKeyScheduleTDES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: TDES_set_encrypt_key
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslDesSupport.c
    functionUses: 0
    functionsReached:
    - DES_set_key_unchecked
    linkageType: ''
    returnType: void
    signature: "void TDES_set_encrypt_key(\n\t\t     const BYTE                  *key,\n\t\t
      \    UINT16                       keySizeInBits,\n\t\t     tpmKeyScheduleTDES
      \         *keySchedule\n\t\t     )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DES_ecb3_encrypt
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslDesSupport.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - ks
    argTypes:
    - BYTE*
    - BYTE*
    - tpmKeyScheduleTDES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 103
    functionName: TDES_encrypt
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslDesSupport.c
    functionUses: 0
    functionsReached:
    - DES_ecb3_encrypt
    linkageType: ''
    returnType: void
    signature: "void TDES_encrypt(\n\t\t  const BYTE              *in,\n\t\t  BYTE
      \                   *out,\n\t\t  tpmKeyScheduleTDES      *ks\n\t\t  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DES_ecb3_encrypt
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslDesSupport.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - in
    - out
    - ks
    argTypes:
    - BYTE*
    - BYTE*
    - tpmKeyScheduleTDES*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: TDES_decrypt
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslDesSupport.c
    functionUses: 0
    functionsReached:
    - DES_ecb3_encrypt
    linkageType: ''
    returnType: void
    signature: "void TDES_decrypt(\n\t\t  const BYTE          *in,\n\t\t  BYTE                *out,\n\t\t
      \ tpmKeyScheduleTDES   *ks\n\t\t  )"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_CURVE_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:96,1
    - Dst: CRYPT_ECC_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:97,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:98,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:99,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:102,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:104,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:109,1
    - Dst: TpmEcc_SignEcdsa
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:113,1
    - Dst: TpmEcc_SignEcdaa
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:117,1
    - Dst: TpmEcc_SignEcSchnorr
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:130,1
    - Dst: TpmEcc_SignEcSm2
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:136,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:145,1
    - Dst: ExtMath_SizeInBits
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:146,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:146,1
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:146,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:148,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:151,1
    - Dst: CRYPT_CURVE_FREE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:155,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 5
    argNames:
    - signature
    - signKey
    - digest
    - scheme
    - rand
    argTypes:
    - TPMT_SIGNATURE*
    - OBJECT*
    - TPM2B_DIGEST*
    - TPMT_ECC_SCHEME*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 90
    functionDepth: 7
    functionLinenumber: 90
    functionLinenumberEnd: 157
    functionName: CryptEccSign
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c
    functionUses: 2
    functionsReached:
    - NOT_REFERENCED
    - ExtEcc_CurveGetOrder
    - CRYPT_ECC_INITIALIZED
    - TpmEcc_SignEcSchnorr
    - TpmEcc_SignEcSm2
    - TpmMath_IntTo2B
    - BITS_TO_BYTES
    - TPM_DO_SELF_TEST
    - TpmEcc_SignEcdaa
    - TpmEcc_SignEcdsa
    - ERROR_EXIT
    - CRYPT_ECC_NUM
    - ExtMath_SizeInBits
    - ExtEcc_CurveGetCurveId
    - CRYPT_CURVE_INITIALIZED
    - CRYPT_CURVE_FREE
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptEccSign(TPMT_SIGNATURE* signature,  // OUT: signature\n
      \                              OBJECT* signKey,  // IN: ECC key to sign the
      hash\n                               const TPM2B_DIGEST* digest,  // IN: digest
      to sign\n                               TPMT_ECC_SCHEME*    scheme,  // IN:
      signing scheme\n                               RAND_STATE*         rand)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_CURVE_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:172,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:173,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:174,1
    - Dst: CRYPT_POINT_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:175,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:180,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:182,1
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:182,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:196,1
    - Dst: TpmMath_IntFrom2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:202,1
    - Dst: TpmMath_IntFrom2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:203,1
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:206,1
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:206,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:207,1
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:208,1
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:209,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:210,1
    - Dst: TpmEcc_ValidateSignatureEcdsa
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:215,1
    - Dst: TpmEcc_ValidateSignatureEcSchnorr
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:220,1
    - Dst: TpmEcc_ValidateSignatureEcSm2
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:226,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:230,1
    - Dst: CRYPT_CURVE_FREE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:233,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - signature
    - signKey
    - digest
    argTypes:
    - TPMT_SIGNATURE*
    - OBJECT*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 166
    functionDepth: 7
    functionLinenumber: 166
    functionLinenumberEnd: 235
    functionName: CryptEccValidateSignature
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c
    functionUses: 2
    functionsReached:
    - TpmMath_IntFrom2B
    - ExtEcc_CurveGetOrder
    - CRYPT_POINT_INITIALIZED
    - TpmEcc_ValidateSignatureEcdsa
    - ExtMath_IsZero
    - ExtMath_UnsignedCmp
    - ERROR_EXIT
    - CRYPT_ECC_NUM
    - TpmEcc_ValidateSignatureEcSm2
    - ExtEcc_CurveGetCurveId
    - FAIL
    - TpmEcc_ValidateSignatureEcSchnorr
    - CRYPT_CURVE_INITIALIZED
    - CRYPT_CURVE_FREE
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptEccValidateSignature(\n    TPMT_SIGNATURE*     signature,
      \ // IN: signature to be verified\n    OBJECT*             signKey,    // IN:
      ECC key signed the hash\n    const TPM2B_DIGEST* digest      // IN: digest that
      was signed\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_CURVE_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:266,1
    - Dst: CRYPT_ECC_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:267,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:273,1
    - Dst: ClearPoint2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:276,1
    - Dst: ClearPoint2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:277,1
    - Dst: ClearPoint2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:278,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:281,1
    - Dst: CRYPT_ECC_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:286,1
    - Dst: CRYPT_POINT_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:287,1
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:288,1
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:289,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:291,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:293,1
    - Dst: ExtEcc_IsPointOnCurve
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:295,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:296,1
    - Dst: TpmEcc_PointMult
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:298,1
    - Dst: TpmEcc_PointTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:302,1
    - Dst: _plat__IsCanceled
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:304,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:305,1
    - Dst: TpmEcc_IsValidPrivateEcc
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:307,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:308,1
    - Dst: TpmEcc_PointMult
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:309,1
    - Dst: TpmEcc_PointTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:313,1
    - Dst: CRYPT_POINT_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:317,1
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:318,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:321,1
    - Dst: _plat__IsCanceled
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:324,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:325,1
    - Dst: TpmEcc_PointMult
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:330,1
    - Dst: TpmEcc_PointTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:334,1
    - Dst: CRYPT_CURVE_FREE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c:337,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 8
    argNames:
    - K
    - L
    - E
    - curveId
    - M
    - B
    - d
    - r
    argTypes:
    - TPMS_ECC_POINT*
    - TPMS_ECC_POINT*
    - TPMS_ECC_POINT*
    - TPM_ECC_CURVE
    - TPMS_ECC_POINT*
    - TPMS_ECC_POINT*
    - TPM2B_ECC_PARAMETER*
    - TPM2B_ECC_PARAMETER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 253
    functionDepth: 5
    functionLinenumber: 253
    functionLinenumberEnd: 339
    functionName: CryptEccCommitCompute
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c
    functionUses: 1
    functionsReached:
    - CRYPT_ECC_INITIALIZED
    - TpmEcc_PointTo2B
    - CRYPT_POINT_INITIALIZED
    - pAssert
    - _plat__IsCanceled
    - ClearPoint2B
    - TpmEcc_IsValidPrivateEcc
    - ExtEcc_IsPointOnCurve
    - ERROR_EXIT
    - TpmEcc_PointMult
    - CRYPT_CURVE_FREE
    - CRYPT_POINT_VAR
    - CRYPT_CURVE_INITIALIZED
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptEccCommitCompute(\n    TPMS_ECC_POINT*      K,        //
      OUT: [d]B or [r]Q\n    TPMS_ECC_POINT*      L,        // OUT: [r]B\n    TPMS_ECC_POINT*
      \     E,        // OUT: [r]M\n    TPM_ECC_CURVE        curveId,  // IN: the
      curve for the computations\n    TPMS_ECC_POINT*      M,        // IN: M (optional)\n
      \   TPMS_ECC_POINT*      B,        // IN: B (optional)\n    TPM2B_ECC_PARAMETER*
      d,        // IN: d (optional)\n    TPM2B_ECC_PARAMETER* r         // IN: the
      computed r value (required)\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:109,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:112,1
    - Dst: EVP_CipherInit_ex
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:114,1
    - Dst: EVP_des_ede3
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:114,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:115,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:117,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - sensitive
    argTypes:
    - TPMT_SENSITIVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 123
    functionName: OpenSSLCryptGenerateKeyDes
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_free
    - pAssert
    - EVP_CIPHER_CTX_ctrl
    - ERROR_EXIT
    - EVP_des_ede3
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC OpenSSLCryptGenerateKeyDes(\n                           TPMT_SENSITIVE
      *sensitive    // OUT: sensitive area\n                          )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:145,1
    - Dst: evpFunc
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - evpFunc
    - algIdx
    - mode
    - keySizeIdx
    argTypes:
    - evpfunc
    - size_t
    - TPM_ALG_ID
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 156
    functionName: GetCachedEVPCipher
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - pAssert
    - evpFunc
    linkageType: ''
    returnType: EVP_CIPHER
    signature: "EVP_CIPHER *\nGetCachedEVPCipher(\n                   evpfunc       evpFunc,
      \     // IN\n                   size_t        algIdx,       // IN algorithm
      Index for the cache\n                   TPM_ALG_ID    mode,         // IN mode\n
      \                  size_t        keySizeIdx    // IN\n                   )"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:181,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:182,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:228,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:228,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:230,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:231,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:341,1
    - Dst: GetCachedEVPCipher
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:346,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 101
    argCount: 6
    argNames:
    - algorithm
    - keySizeInBits
    - mode
    - key
    - keyToUse
    - keyToUseLen
    argTypes:
    - TPM_ALG_ID
    - UINT16
    - TPM_ALG_ID
    - BYTE*
    - BYTE*
    - UINT16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 347
    functionName: GetEVPCipher
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BITS_TO_BYTES
    - pAssert
    - MemorySet
    - GetCachedEVPCipher
    linkageType: ''
    returnType: EVP_CIPHER
    signature: "EVP_CIPHER *\nGetEVPCipher(TPM_ALG_ID    algorithm,       // IN\n
      \            UINT16        keySizeInBits,   // IN\n             TPM_ALG_ID    mode,
      \           // IN\n             const BYTE   *key,             // IN\n             BYTE
      \        *keyToUse,        // OUT same as key or stretched key\n             UINT16
      \      *keyToUseLen      // IN/OUT\n             )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_octet_string
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:357,1
    - Dst: EVP_CIPHER_CTX_get_params
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:360,1
    - Dst: EVP_CIPHER_CTX_iv
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:365,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ctx
    - iv
    - iv_len
    argTypes:
    - EVP_CIPHER_CTX*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 372
    functionName: DoEVPGetIV
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_octet_string
    - EVP_CIPHER_CTX_iv
    - memcpy
    - EVP_CIPHER_CTX_get_params
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC DoEVPGetIV(\n                  EVP_CIPHER_CTX    *ctx,    //
      IN: required context\n                  unsigned char     *iv,     // IN: pointer
      to buffer for IV\n                  size_t             iv_len  // IN: size of
      the buffer\n                  )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:386,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:387,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:392,1
    - Dst: EC_KEY_set_group
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:397,1
    - Dst: EC_KEY_generate_key
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:407,1
    - Dst: EC_KEY_get0_private_key
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:408,1
    - Dst: BN_num_bytes
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:413,1
    - Dst: OsslToTpmBn
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:421,1
    - Dst: EC_KEY_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:427,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - dOut
    - G
    - requestedBits
    argTypes:
    - bigNum
    - EC_GROUP*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 430
    functionName: OpenSSLEccGetPrivate
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - EC_KEY_get0_private_key
    - EC_KEY_set_group
    - BITS_TO_BYTES
    - pAssert
    - EC_KEY_new
    - EC_KEY_generate_key
    - BN_num_bytes
    - OsslToTpmBn
    - EC_KEY_free
    linkageType: ''
    returnType: BOOL
    signature: "BOOL OpenSSLEccGetPrivate(\n                     bigNum             dOut,
      \ // OUT: the qualified random value\n                     const EC_GROUP    *G,
      \    // IN:  the EC_GROUP to use\n                     const UINT32       requestedBits
      // IN: if not 0, then dOut must have that many bits\n                    )"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - hashAlg
    argTypes:
    - TPM_ALG_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 477
    functionName: GetDigestNameByHashAlg
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: 'LIB_EXPORT *

      GetDigestNameByHashAlg(const TPM_ALG_ID hashAlg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:493,1
    - Dst: BN_CTX_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:494,1
    - Dst: BN_sub
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:496,1
    - Dst: BN_sub
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:497,1
    - Dst: BN_add_word
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:498,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:500,1
    - Dst: BN_mod_inverse
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:501,1
    - Dst: BN_CTX_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:503,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:504,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - P
    - Q
    - E
    - N
    - D
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 507
    functionName: ComputePrivateExponentD_Euler
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - BN_CTX_new
    - BN_clear_free
    - BN_sub
    - BN_add_word
    - BN_set_flags
    - BN_dup
    - BN_mod_inverse
    linkageType: ''
    returnType: BOOL
    signature: "BOOL ComputePrivateExponentD_Euler(\n\t\t       const BIGNUM   *P,
      \     // IN: first prime (size is 1/2 of bnN)\n\t\t       const BIGNUM   *Q,
      \     // IN: second prime (size is 1/2 of bnN)\n\t\t       const BIGNUM   *E,
      \     // IN: the public exponent\n\t\t       const BIGNUM   *N,      // IN:
      the public modulus\n\t\t       BIGNUM        **D       // OUT:\n                       )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:521,1
    - Dst: BN_CTX_start
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:525,1
    - Dst: BN_CTX_get
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:526,1
    - Dst: BN_CTX_get
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:527,1
    - Dst: BN_CTX_get
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:528,1
    - Dst: BN_CTX_get
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:529,1
    - Dst: BN_CTX_get
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:530,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:532,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:533,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:534,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:535,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:536,1
    - Dst: BN_sub
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:539,1
    - Dst: BN_value_one
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:539,1
    - Dst: BN_sub
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:540,1
    - Dst: BN_value_one
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:540,1
    - Dst: BN_mul
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:541,1
    - Dst: BN_gcd
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:542,1
    - Dst: BN_div
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:543,1
    - Dst: BN_mod_inverse
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:544,1
    - Dst: BN_CTX_end
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:546,1
    - Dst: BN_CTX_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:547,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 4
    argNames:
    - P
    - Q
    - E
    - D
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 550
    functionName: ComputePrivateExponentD_Carmichael
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - BN_CTX_end
    - BN_CTX_new
    - BN_mul
    - BN_CTX_get
    - BN_sub
    - BN_CTX_start
    - BN_set_flags
    - BN_value_one
    - BN_div
    - BN_mod_inverse
    - BN_gcd
    linkageType: ''
    returnType: BOOL
    signature: "BOOL ComputePrivateExponentD_Carmichael(\n\t\t\t    const BIGNUM   *P,
      \     // IN: first prime (size is 1/2 of bnN)\n\t\t\t    const BIGNUM   *Q,
      \     // IN: second prime (size is 1/2 of bnN)\n\t\t\t    const BIGNUM   *E,
      \     // IN: the public exponent\n\t\t\t    BIGNUM        **D       // OUT:\n
      \                          )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bits
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:561,1
    - Dst: BN_num_bits
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:566,1
    - Dst: ComputePrivateExponentD_Carmichael
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:567,1
    - Dst: BN_num_bits
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:572,1
    - Dst: ComputePrivateExponentD_Euler
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:573,1
    - Dst: ComputePrivateExponentD_Euler
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:576,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - P
    - Q
    - E
    - N
    - D
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 578
    functionName: ComputePrivateExponentD
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - ComputePrivateExponentD_Carmichael
    - BN_num_bits
    - ComputePrivateExponentD_Euler
    linkageType: ''
    returnType: BOOL
    signature: "BOOL ComputePrivateExponentD(\n\t\t\tconst BIGNUM   *P,      // IN:
      first prime (size is 1/2 of bnN)\n\t\t\tconst BIGNUM   *Q,      // IN: second
      prime (size is 1/2 of bnN)\n\t\t\tconst BIGNUM   *E,      // IN: the public
      exponent\n\t\t\tconst BIGNUM   *N,      // IN: the public modulus\n\t\t\tBIGNUM
      \       **D       // OUT:\n                       )"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:605,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:606,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:609,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:611,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:613,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:616,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:617,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:618,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:619,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:620,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:623,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:624,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:625,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:631,1
    - Dst: OSSL_PARAM_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:632,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:633,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 34
    argCount: 9
    argNames:
    - ppkey
    - N
    - E
    - D
    - P
    - Q
    - DP
    - DQ
    - QInv
    argTypes:
    - EVP_PKEY**
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 636
    functionName: BuildRSAKey
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BLD_new
    - OSSL_PARAM_BLD_to_param
    - EVP_PKEY_fromdata_init
    - EVP_PKEY_fromdata
    - EVP_PKEY_CTX_free
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_free
    - OSSL_PARAM_BLD_free
    - EVP_PKEY_CTX_new_from_name
    linkageType: ''
    returnType: int
    signature: "int BuildRSAKey(EVP_PKEY **ppkey,\n            const BIGNUM *N, const
      BIGNUM *E, const BIGNUM *D,\n            const BIGNUM *P, const BIGNUM *Q,\n
      \           const BIGNUM *DP, const BIGNUM *DQ, const BIGNUM *QInv)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:650,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:651,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:652,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:659,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:660,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:661,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:662,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:663,1
    - Dst: RSA_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:670,1
    - Dst: RSA_set0_key
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:674,1
    - Dst: RSA_set0_factors
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:680,1
    - Dst: RSA_set0_crt_params
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:684,1
    - Dst: EVP_PKEY_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:689,1
    - Dst: EVP_PKEY_assign_RSA
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:691,1
    - Dst: EVP_PKEY_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:697,1
    - Dst: RSA_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:701,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:704,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:705,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:706,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:707,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:708,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:711,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:712,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:713,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 59
    argCount: 9
    argNames:
    - ppkey
    - N
    - E
    - D
    - P
    - Q
    - DP
    - DQ
    - QInv
    argTypes:
    - EVP_PKEY**
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 716
    functionName: BuildRSAKey
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - RSA_free
    - BN_free
    - RSA_set0_key
    - RSA_new
    - BN_clear_free
    - RSA_set0_factors
    - EVP_PKEY_assign_RSA
    - BN_dup
    - RSA_set0_crt_params
    - EVP_PKEY_free
    - EVP_PKEY_new
    linkageType: ''
    returnType: int
    signature: "int BuildRSAKey(EVP_PKEY **ppkey, // OUT\n            const BIGNUM
      *N, const BIGNUM *E, const BIGNUM *D,\n            const BIGNUM *P, const BIGNUM
      *Q,\n            const BIGNUM *DP, const BIGNUM *DQ, const BIGNUM *QInv)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:729,1
    - Dst: BN_set_word
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:738,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:739,1
    - Dst: BN_bin2bn
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:741,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:744,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:749,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - key
    - N
    - E
    argTypes:
    - OBJECT*
    - BIGNUM**
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 753
    functionName: ObjectGetPublicParameters
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_bin2bn
    - ERROR_EXIT
    - BN_new
    - BN_set_word
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC ObjectGetPublicParameters(OBJECT      *key,     // IN\n                          BIGNUM
      \    **N,       // OUT\n                          BIGNUM     **E        // OUT\n
      \                        )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ObjectGetPublicParameters
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:764,1
    - Dst: BuildRSAKey
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:768,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:769,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:772,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:773,1
    - Dst: EVP_PKEY_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:776,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - key
    - pkey
    argTypes:
    - OBJECT*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 755
    functionDepth: 2
    functionLinenumber: 755
    functionLinenumberEnd: 781
    functionName: InitOpenSSLRSAPublicKey
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - BN_free
    - ObjectGetPublicParameters
    - ERROR_EXIT
    - EVP_PKEY_free
    - BuildRSAKey
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT InitOpenSSLRSAPublicKey(OBJECT      *key,     // IN\n                        EVP_PKEY
      \  **pkey     // OUT\n                       )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:797,1
    - Dst: BuildRSAKey
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:801,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:804,1
    - Dst: EVP_PKEY_public_check
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:806,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:807,1
    - Dst: EVP_PKEY_private_check
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:811,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:812,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:816,1
    - Dst: EVP_PKEY_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:817,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:822,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 5
    argNames:
    - LIBTPMS_ATTR_UNUSED
    - LIBTPMS_ATTR_UNUSED
    - N
    - E
    - D
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 824
    functionName: DoRSACheckKey
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_free
    - EVP_PKEY_public_check
    - BuildRSAKey
    - EVP_PKEY_free
    - fprintf
    - EVP_PKEY_CTX_new_from_pkey
    - EVP_PKEY_private_check
    linkageType: ''
    returnType: void
    signature: "void DoRSACheckKey(const BIGNUM *P LIBTPMS_ATTR_UNUSED,\n                          const
      BIGNUM *Q LIBTPMS_ATTR_UNUSED,\n                          const BIGNUM *N, const
      BIGNUM *E, const BIGNUM *D)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:837,1
    - Dst: RSA_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:841,1
    - Dst: RSA_set0_factors
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:842,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:842,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:842,1
    - Dst: RSA_set0_key
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:843,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:843,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:843,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:843,1
    - Dst: RSA_check_key
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:844,1
    - Dst: fprintf
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:845,1
    - Dst: RSA_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:848,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - P
    - Q
    - N
    - E
    - D
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 849
    functionName: DoRSACheckKey
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - RSA_free
    - RSA_set0_key
    - RSA_new
    - RSA_set0_factors
    - BN_dup
    - RSA_check_key
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void DoRSACheckKey(const BIGNUM *P, const BIGNUM *Q, const BIGNUM
      *N,\n                          const BIGNUM *E, const BIGNUM *D)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:865,1
    - Dst: BN_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:866,1
    - Dst: BN_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:867,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:872,1
    - Dst: ObjectGetPublicParameters
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:874,1
    - Dst: CryptRsaLoadPrivateExponent
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:879,1
    - Dst: BN_bin2bn
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:882,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:885,1
    - Dst: ExpDCacheFind
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:887,1
    - Dst: BN_CTX_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:889,1
    - Dst: BN_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:890,1
    - Dst: BN_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:891,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:893,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:895,1
    - Dst: BN_div
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:896,1
    - Dst: BN_is_zero
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:896,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:897,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:898,1
    - Dst: ComputePrivateExponentD
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:900,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:901,1
    - Dst: ExpDCacheAdd
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:902,1
    - Dst: DoRSACheckKey
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:905,1
    - Dst: BigInitialized
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:908,1
    - Dst: BigInitialized
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:909,1
    - Dst: BigInitialized
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:910,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:912,1
    - Dst: BuildRSAKey
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:914,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:915,1
    - Dst: BN_CTX_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:920,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:921,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:922,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:923,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:924,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:925,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:926,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:927,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:928,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:929,1
    - Dst: EVP_PKEY_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:932,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 2
    argNames:
    - rsaKey
    - ppkey
    argTypes:
    - OBJECT*
    - EVP_PKEY**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 853
    functionDepth: 2
    functionLinenumber: 853
    functionLinenumberEnd: 937
    functionName: InitOpenSSLRSAPrivateKey
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - DoRSACheckKey
    - BigInitialized
    - BN_bin2bn
    - EVP_PKEY_free
    - BN_is_zero
    - BN_clear_free
    - ERROR_EXIT
    - BN_free
    - ComputePrivateExponentD
    - BN_CTX_new
    - BN_set_flags
    - BN_div
    - ObjectGetPublicParameters
    - CryptRsaLoadPrivateExponent
    - ExpDCacheAdd
    - BN_new
    - ExpDCacheFind
    - BuildRSAKey
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT InitOpenSSLRSAPrivateKey(OBJECT     *rsaKey,   // IN\n
      \                        EVP_PKEY  **ppkey     // OUT\n                        )"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:954,1
    - Dst: CRYPT_RSA_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:959,1
    - Dst: BN_set_word
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:963,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:964,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:966,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:967,1
    - Dst: OSSL_PARAM_BLD_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:968,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:969,1
    - Dst: OSSL_PARAM_BLD_push_uint
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:970,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:971,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:972,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:973,1
    - Dst: EVP_PKEY_generate
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:975,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:976,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:978,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:979,1
    - Dst: OsslToTpmBn
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:981,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:982,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:984,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:985,1
    - Dst: OsslToTpmBn
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:987,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:988,1
    - Dst: CryptRsaLoadPrivateExponent
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:992,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:996,1
    - Dst: OSSL_PARAM_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:997,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:998,1
    - Dst: EVP_PKEY_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:999,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1000,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1001,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1002,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - rsaKey
    - e
    - keySizeInBits
    argTypes:
    - OBJECT*
    - UINT32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 941
    functionDepth: 2
    functionLinenumber: 941
    functionLinenumberEnd: 1005
    functionName: OpenSSLCryptRsaGenerateKey
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - TpmMath_IntTo2B
    - EVP_PKEY_free
    - OSSL_PARAM_BLD_free
    - EVP_PKEY_CTX_new_from_name
    - OSSL_PARAM_BLD_new
    - BN_clear_free
    - EVP_PKEY_keygen_init
    - ERROR_EXIT
    - OSSL_PARAM_BLD_push_uint
    - EVP_PKEY_generate
    - OsslToTpmBn
    - EVP_PKEY_CTX_set_params
    - BN_free
    - OSSL_PARAM_BLD_to_param
    - OSSL_PARAM_BLD_push_BN
    - CRYPT_RSA_VAR
    - BN_set_word
    - CryptRsaLoadPrivateExponent
    - EVP_PKEY_CTX_free
    - BN_new
    - OSSL_PARAM_free
    - EVP_PKEY_get_bn_param
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT OpenSSLCryptRsaGenerateKey(\n\t\t    OBJECT              *rsaKey,
      \           // IN/OUT: The object structure in which\n\t\t    //          the
      key is created.\n\t\t    UINT32               e,\n\t\t    int                  keySizeInBits\n\t\t
      \   )"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1024,1
    - Dst: CRYPT_RSA_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1025,1
    - Dst: BN_set_word
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1029,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1030,1
    - Dst: RSA_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1032,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1034,1
    - Dst: RSA_generate_key_ex
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1036,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1038,1
    - Dst: RSA_get0_key
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1040,1
    - Dst: RSA_get0_factors
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1041,1
    - Dst: OsslToTpmBn
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1043,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1044,1
    - Dst: OsslToTpmBn
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1046,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1047,1
    - Dst: CryptRsaLoadPrivateExponent
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1051,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1055,1
    - Dst: RSA_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1056,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - rsaKey
    - e
    - keySizeInBits
    argTypes:
    - OBJECT*
    - UINT32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1009
    functionDepth: 2
    functionLinenumber: 1009
    functionLinenumberEnd: 1059
    functionName: OpenSSLCryptRsaGenerateKey
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - RSA_free
    - BN_free
    - CryptRsaLoadPrivateExponent
    - RSA_new
    - RSA_get0_key
    - TpmMath_IntTo2B
    - RSA_generate_key_ex
    - ERROR_EXIT
    - RSA_get0_factors
    - BN_new
    - CRYPT_RSA_VAR
    - BN_set_word
    - OsslToTpmBn
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT OpenSSLCryptRsaGenerateKey(\n\t\t    OBJECT              *rsaKey,
      \           // IN/OUT: The object structure in which\n\t\t    //          the
      key is created.\n\t\t    UINT32               e,\n\t\t    int                  keySizeInBits\n\t\t
      \   )"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1087,1
    - Dst: GetDigestNameByHashAlg
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1093,1
    - Dst: strlen
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1096,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1097,1
    - Dst: strcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1098,1
    - Dst: malloc
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1107,1
    - Dst: EVP_KDF_fetch
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1111,1
    - Dst: EVP_KDF_CTX_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1115,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1120,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1124,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1128,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1130,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1132,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1134,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1136,1
    - Dst: EVP_KDF_derive
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1137,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1147,1
    - Dst: EVP_KDF_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1148,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c:1149,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 7
    argNames:
    - hashAlg
    - Z
    - label
    - partyUInfo
    - partyVInfo
    - sizeInBits
    - keyStream
    argTypes:
    - TPM_ALG_ID
    - TPM2B*
    - TPM2B*
    - TPM2B*
    - TPM2B*
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1152
    functionName: OSSLCryptKDFe
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_CTX_free
    - OSSL_PARAM_construct_octet_string
    - memcpy
    - EVP_KDF_derive
    - pAssert
    - GetDigestNameByHashAlg
    - strlen
    - OSSL_PARAM_construct_end
    - malloc
    - EVP_KDF_CTX_new
    - strcpy
    - EVP_KDF_fetch
    - OSSL_PARAM_construct_utf8_string
    - EVP_KDF_free
    - FAIL
    - free
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 OSSLCryptKDFe(TPM_ALG_ID   hashAlg,  // IN: hash algorithm
      used in HMAC\n\t\t     TPM2B*       Z,        // IN: Z\n\t\t     const TPM2B*
      label,    // IN: a label value for the KDF\n\t\t     TPM2B*       partyUInfo,
      \ // IN: PartyUInfo\n\t\t     TPM2B*       partyVInfo,  // IN: PartyVInfo\n\t\t
      \    UINT32       sizeInBits,  // IN: size of generated key in bits\n\t\t     BYTE*
      \       keyStream    // OUT: key buffer\n\t\t    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: BnGetAllocated
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BnGetAllocated(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: BnGetSize
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BnGetSize(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: BnGetArray
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BnGetArray(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: BnGetWord
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BnGetWord(x, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: BnEqualZero
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BnEqualZero(bn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bn
    - ','
    - word
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: BnEqualWord
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BnEqualWord(bn, word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: BnIsEven
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BnIsEven(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: BN_INIT
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_INIT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: CRYPT_WORDS
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_WORDS(bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: MIN_ALLOC
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN_ALLOC(bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - bytes
    - ','
    - initializer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 158
    functionName: BN_CONST
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_CONST(name, bytes, initializer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: BN_STRUCT_ALLOCATION
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_STRUCT_ALLOCATION(bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - struct_type
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: BN_STRUCT
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_STRUCT(struct_type, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: BN_TYPE
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_TYPE(name, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - bits
    - ','
    - initializer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: BN_INITIALIZED
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_INITIALIZED(name, bits, initializer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: BN_VAR
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_VAR(name, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: BN_MAX
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_MAX(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - initializer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: BN_MAX_INITIALIZED
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_MAX_INITIALIZED(name, initializer)
  - 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: BN_WORD
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_WORD(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - initial
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: BN_WORD_INITIALIZED
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_WORD_INITIALIZED(name, initial)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - typename
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 234
    functionName: BN_POINT_BUF
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_POINT_BUF(typename, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - C
    argTypes:
    - TPMBN_ECC_CURVE_CONSTANTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: BnCurveGetPrime
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: TPM_INLINE
    signature: TPM_INLINE BnCurveGetPrime(const TPMBN_ECC_CURVE_CONSTANTS* C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - C
    argTypes:
    - TPMBN_ECC_CURVE_CONSTANTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 294
    functionName: BnCurveGetOrder
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TPM_INLINE
    signature: TPM_INLINE BnCurveGetOrder(const TPMBN_ECC_CURVE_CONSTANTS* C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - C
    argTypes:
    - TPMBN_ECC_CURVE_CONSTANTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: BnCurveGetCofactor
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TPM_INLINE
    signature: TPM_INLINE BnCurveGetCofactor(const TPMBN_ECC_CURVE_CONSTANTS* C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - C
    argTypes:
    - TPMBN_ECC_CURVE_CONSTANTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: BnCurveGet_a
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: TPM_INLINE
    signature: TPM_INLINE BnCurveGet_a(const TPMBN_ECC_CURVE_CONSTANTS* C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - C
    argTypes:
    - TPMBN_ECC_CURVE_CONSTANTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: BnCurveGet_b
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: TPM_INLINE
    signature: TPM_INLINE BnCurveGet_b(const TPMBN_ECC_CURVE_CONSTANTS* C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - C
    argTypes:
    - TPMBN_ECC_CURVE_CONSTANTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: BnCurveGetG
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TPM_INLINE
    signature: TPM_INLINE BnCurveGetG(const TPMBN_ECC_CURVE_CONSTANTS* C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - C
    argTypes:
    - TPMBN_ECC_CURVE_CONSTANTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: BnCurveGetGx
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TPM_INLINE
    signature: TPM_INLINE BnCurveGetGx(const TPMBN_ECC_CURVE_CONSTANTS* C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - C
    argTypes:
    - TPMBN_ECC_CURVE_CONSTANTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: BnCurveGetGy
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TPM_INLINE
    signature: TPM_INLINE BnCurveGetGy(const TPMBN_ECC_CURVE_CONSTANTS* C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - C
    argTypes:
    - TPMBN_ECC_CURVE_CONSTANTS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: TPM_ECC_CURVE::BnCurveGetCurveId
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TPM_INLINE
    signature: TPM_INLINE TPM_ECC_CURVE BnCurveGetCurveId(const TPMBN_ECC_CURVE_CONSTANTS*
      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: 328
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 328
    functionName: BIG_ENDIAN_BYTES_TO_UINT32
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIG_ENDIAN_BYTES_TO_UINT32(a, b, c, d)
  - 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: 333
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: BIG_ENDIAN_BYTES_TO_UINT64
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIG_ENDIAN_BYTES_TO_UINT64(a, b, c, d, e, f, g, h)
  - 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: 344
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 344
    functionName: JOINED
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JOINED(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: 345
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 345
    functionName: MJOIN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MJOIN(a, 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: 358
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 358
    functionName: B8_TO_BN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B8_TO_BN(a, b, c, d, e, f, g, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: B1_TO_BN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B1_TO_BN(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: 360
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 360
    functionName: B2_TO_BN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B2_TO_BN(a, b)
  - 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: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: B3_TO_BN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B3_TO_BN(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: 362
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 362
    functionName: B4_TO_BN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B4_TO_BN(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    functionName: B5_TO_BN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B5_TO_BN(a, b, c, d, e)
  - 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: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: B6_TO_BN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B6_TO_BN(a, b, c, d, e, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: B7_TO_BN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B7_TO_BN(a, b, c, d, e, f, g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 367
    functionName: B1_TO_BN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B1_TO_BN(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: 368
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 368
    functionName: B2_TO_BN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B2_TO_BN(a, b)
  - 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: 369
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 369
    functionName: B3_TO_BN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B3_TO_BN(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: 371
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 371
    functionName: B4_TO_BN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B4_TO_BN(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: B5_TO_BN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B5_TO_BN(a, b, c, d, e)
  - 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: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: B6_TO_BN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B6_TO_BN(a, b, c, d, e, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: B7_TO_BN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B7_TO_BN(a, b, c, d, e, f, g)
  - 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: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: B8_TO_BN
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: B8_TO_BN(a, b, c, d, e, f, g, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c:81,1
    - Dst: snprintf
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c:83,1
    - Dst: snprintf
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - result
    argTypes:
    - _CRYPTO_IMPL_DESCRIPTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 94
    functionName: OsslGetVersion
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void OsslGetVersion(_CRYPTO_IMPL_DESCRIPTION* result)
  - 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: BnSupportLibInit
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnSupportLibInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c:114,1
    - Dst: OsslPushContext
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: OsslContextEnter
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c
    functionUses: 0
    functionsReached:
    - BN_CTX_new
    - OsslPushContext
    linkageType: ''
    returnType: BN_CTX
    signature: BN_CTX * OsslContextEnter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OsslPopContext
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c:123,1
    - Dst: BN_CTX_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - CTX
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: OsslContextLeave
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    - OsslPopContext
    linkageType: ''
    returnType: void
    signature: void OsslContextLeave(BN_CTX* CTX)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c:134,1
    - Dst: BN_CTX_start
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - CTX
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: OsslPushContext
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c
    functionUses: 1
    functionsReached:
    - FAIL
    - BN_CTX_start
    linkageType: ''
    returnType: BN_CTX
    signature: BN_CTX * OsslPushContext(BN_CTX* CTX)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_end
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - CTX
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: OsslPopContext
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c
    functionUses: 1
    functionsReached:
    - BN_CTX_end
    linkageType: ''
    returnType: void
    signature: void OsslPopContext(BN_CTX* CTX)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OsslGetVersion
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - _CRYPTO_IMPL_DESCRIPTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: _crypto_GetSymImpl
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c
    functionUses: 0
    functionsReached:
    - OsslGetVersion
    linkageType: ''
    returnType: void
    signature: void _crypto_GetSymImpl(_CRYPTO_IMPL_DESCRIPTION* result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OsslGetVersion
      Src: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - _CRYPTO_IMPL_DESCRIPTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: _crypto_GetHashImpl
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c
    functionUses: 0
    functionsReached:
    - OsslGetVersion
    linkageType: ''
    returnType: void
    signature: void _crypto_GetHashImpl(_CRYPTO_IMPL_DESCRIPTION* result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ALG
    - ','
    - alg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: KEY_BLOCK_SIZES
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEY_BLOCK_SIZES(ALG, alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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: CryptSymInit
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL CryptSymInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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: CryptSymStartup
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL CryptSymStartup(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FOR_EACH_SYM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - symmetricAlg
    - keySizeInBits
    argTypes:
    - TPM_ALG_ID
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 148
    functionName: CryptGetSymmetricBlockSize
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c
    functionUses: 8
    functionsReached:
    - FOR_EACH_SYM
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptGetSymmetricBlockSize(\n    TPM_ALG_ID symmetricAlg,
      \ // IN: the symmetric algorithm\n    UINT16     keySizeInBits  // IN: the key
      size\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYM
    - ','
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: ALG_CASE
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALG_CASE(SYM, sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SYM
    - ','
    - sym
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: GET_KEY_BLOCK_POINTER
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_KEY_BLOCK_POINTER(SYM, sym)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:180,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:181,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:182,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:186,1
    - Dst: CryptGetSymmetricBlockSize
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:187,1
    - Dst: FOR_EACH_SYM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:205,1
    - Dst: ENCRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:217,1
    - Dst: ENCRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:236,1
    - Dst: ENCRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:258,1
    - Dst: ENCRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:271,1
    - Dst: ENCRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:294,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 77
    argCount: 8
    argNames:
    - dOut
    - algorithm
    - keySizeInBits
    - key
    - ivInOut
    - mode
    - dSize
    - dIn
    argTypes:
    - BYTE*
    - TPM_ALG_ID
    - UINT16
    - BYTE*
    - TPM2B_IV*
    - TPM_ALG_ID
    - INT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 304
    functionName: CryptSymmetricEncrypt
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c
    functionUses: 7
    functionsReached:
    - FOR_EACH_SYM
    - CryptGetSymmetricBlockSize
    - pAssert
    - TPM_DO_SELF_TEST
    - memset
    - ENCRYPT
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptSymmetricEncrypt(\n    BYTE*       dOut,           //
      OUT:\n    TPM_ALG_ID  algorithm,      // IN: the symmetric algorithm\n    UINT16
      \     keySizeInBits,  // IN: key size in bits\n    const BYTE* key,            //
      IN: key buffer. The size of this buffer\n                                //
      \    in bytes is (keySizeInBits + 7) / 8\n    TPM2B_IV*  ivInOut,         //
      IN/OUT: IV for decryption.\n    TPM_ALG_ID mode,            // IN: Mode to use\n
      \   INT32      dSize,           // IN: data size (may need to be a\n                                //
      \    multiple of the blockSize)\n    const BYTE* dIn             // IN: data
      buffer\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:336,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:337,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:345,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:349,1
    - Dst: CryptGetSymmetricBlockSize
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:350,1
    - Dst: FOR_EACH_SYM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:379,1
    - Dst: FOR_EACH_SYM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:389,1
    - Dst: DECRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:406,1
    - Dst: ENCRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:421,1
    - Dst: ENCRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:442,1
    - Dst: DECRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:459,1
    - Dst: ENCRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:471,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 92
    argCount: 8
    argNames:
    - dOut
    - algorithm
    - keySizeInBits
    - key
    - ivInOut
    - mode
    - dSize
    - dIn
    argTypes:
    - BYTE*
    - TPM_ALG_ID
    - UINT16
    - BYTE*
    - TPM2B_IV*
    - TPM_ALG_ID
    - INT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 484
    functionName: CryptSymmetricDecrypt
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c
    functionUses: 8
    functionsReached:
    - FOR_EACH_SYM
    - CryptGetSymmetricBlockSize
    - pAssert
    - TPM_DO_SELF_TEST
    - DECRYPT
    - memset
    - ENCRYPT
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptSymmetricDecrypt(\n    BYTE*       dOut,           //
      OUT: decrypted data\n    TPM_ALG_ID  algorithm,      // IN: the symmetric algorithm\n
      \   UINT16      keySizeInBits,  // IN: key size in bits\n    const BYTE* key,
      \           // IN: key buffer. The size of this buffer\n                                //
      \    in bytes is (keySizeInBits + 7) / 8\n    TPM2B_IV*  ivInOut,         //
      IN/OUT: IV for decryption.\n    TPM_ALG_ID mode,            // IN: Mode to use\n
      \   INT32      dSize,           // IN: data size (may need to be a\n                                //
      \    multiple of the blockSize)\n    const BYTE* dIn             // IN: data
      buffer\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TDES_set_encrypt_key
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:504,1
    - Dst: TDES_encrypt
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:510,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 7
    argNames:
    - key
    - keySizeInBits
    - dSize
    - dIn
    - iv
    - dOut
    - blockSize
    argTypes:
    - BYTE*
    - INT32
    - INT32
    - BYTE*
    - BYTE*
    - BYTE*
    - INT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 520
    functionName: TDES_CTR
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c
    functionUses: 0
    functionsReached:
    - TDES_encrypt
    - TDES_set_encrypt_key
    linkageType: ''
    returnType: void
    signature: "void TDES_CTR(const BYTE *key,            // IN\n                     INT32
      \      keySizeInBits,  // IN\n                     INT32       dSize,          //
      IN\n                     const BYTE *dIn,            // IN\n                     BYTE
      \      *iv,             // IN\n                     BYTE       *dOut,           //
      OUT\n                     INT16       blockSize       // IN\n                     )"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:557,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:560,1
    - Dst: CryptGetSymmetricBlockSize
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:561,1
    - Dst: GetEVPCipher
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:585,1
    - Dst: TPM2_ROUNDUP
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:592,1
    - Dst: malloc
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:593,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:595,1
    - Dst: TDES_CTR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:602,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:604,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:608,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:610,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:611,1
    - Dst: EVP_EncryptUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:612,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:613,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:615,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:617,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:618,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:621,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:623,1
    - Dst: DoEVPGetIV
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:626,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:627,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:631,1
    - Dst: clear_and_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:633,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:634,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 55
    argCount: 8
    argNames:
    - dOut
    - algorithm
    - keySizeInBits
    - key
    - ivInOut
    - mode
    - dSize
    - dIn
    argTypes:
    - BYTE*
    - TPM_ALG_ID
    - UINT16
    - BYTE*
    - TPM2B_IV*
    - TPM_ALG_ID
    - INT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 528
    functionDepth: 3
    functionLinenumber: 528
    functionLinenumberEnd: 637
    functionName: CryptSymmetricEncrypt
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c
    functionUses: 7
    functionsReached:
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - EVP_CIPHER_CTX_set_padding
    - EVP_EncryptFinal_ex
    - TPM2_ROUNDUP
    - memcpy
    - EVP_CIPHER_CTX_free
    - CryptGetSymmetricBlockSize
    - TDES_CTR
    - pAssert
    - TPM_DO_SELF_TEST
    - clear_and_free
    - DoEVPGetIV
    - GetEVPCipher
    - malloc
    - ERROR_EXIT
    - EVP_CIPHER_CTX_iv_length
    - EVP_EncryptUpdate
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptSymmetricEncrypt(\n\t\t      BYTE                *dOut,
      \         // OUT:\n\t\t      TPM_ALG_ID           algorithm,     // IN: the
      symmetric algorithm\n\t\t      UINT16               keySizeInBits, // IN: key
      size in bits\n\t\t      const BYTE          *key,           // IN: key buffer.
      The size of this buffer\n\t\t      //     in bytes is (keySizeInBits + 7) /
      8\n\t\t      TPM2B_IV            *ivInOut,       // IN/OUT: IV for decryption.\n\t\t
      \     TPM_ALG_ID           mode,          // IN: Mode to use\n\t\t      INT32
      \               dSize,         // IN: data size (may need to be a\n\t\t      //
      \    multiple of the blockSize)\n\t\t      const BYTE          *dIn            //
      IN: data buffer\n\t\t      )"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:676,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:679,1
    - Dst: CryptGetSymmetricBlockSize
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:680,1
    - Dst: GetEVPCipher
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:709,1
    - Dst: TPM2_ROUNDUP
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:715,1
    - Dst: malloc
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:716,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:718,1
    - Dst: TDES_CTR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:722,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:724,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:728,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:730,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:731,1
    - Dst: EVP_DecryptUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:732,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:733,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:735,1
    - Dst: EVP_DecryptFinal
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:738,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:739,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:741,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:744,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:746,1
    - Dst: DoEVPGetIV
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:749,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:750,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:755,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:756,1
    - Dst: clear_and_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:759,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:760,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 58
    argCount: 8
    argNames:
    - dOut
    - algorithm
    - keySizeInBits
    - key
    - ivInOut
    - mode
    - dSize
    - dIn
    argTypes:
    - BYTE*
    - TPM_ALG_ID
    - UINT16
    - BYTE*
    - TPM2B_IV*
    - TPM_ALG_ID
    - INT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 644
    functionDepth: 3
    functionLinenumber: 644
    functionLinenumberEnd: 763
    functionName: CryptSymmetricDecrypt
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c
    functionUses: 8
    functionsReached:
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_set_padding
    - TPM2_ROUNDUP
    - memcpy
    - EVP_CIPHER_CTX_free
    - CryptGetSymmetricBlockSize
    - TDES_CTR
    - pAssert
    - TPM_DO_SELF_TEST
    - EVP_DecryptFinal
    - clear_and_free
    - DoEVPGetIV
    - GetEVPCipher
    - malloc
    - ERROR_EXIT
    - EVP_DecryptUpdate
    - EVP_CIPHER_CTX_iv_length
    - EVP_DecryptInit_ex
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptSymmetricDecrypt(\n\t\t      BYTE                *dOut,
      \         // OUT: decrypted data\n\t\t      TPM_ALG_ID           algorithm,
      \    // IN: the symmetric algorithm\n\t\t      UINT16               keySizeInBits,
      // IN: key size in bits\n\t\t      const BYTE          *key,           // IN:
      key buffer. The size of this buffer\n\t\t      //     in bytes is (keySizeInBits
      + 7) / 8\n\t\t      TPM2B_IV            *ivInOut,       // IN/OUT: IV for decryption.\n\t\t
      \     TPM_ALG_ID           mode,          // IN: Mode to use\n\t\t      INT32
      \               dSize,         // IN: data size (may need to be a\n\t\t      //
      \    multiple of the blockSize)\n\t\t      const BYTE          *dIn            //
      IN: data buffer\n\t\t      )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:775,1
    - Dst: CryptDesValidateKey
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c:778,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - symDef
    - key
    argTypes:
    - TPMT_SYM_DEF_OBJECT*
    - TPM2B_SYM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 782
    functionName: CryptSymKeyValidate
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c
    functionUses: 2
    functionsReached:
    - BITS_TO_BYTES
    - CryptDesValidateKey
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC CryptSymKeyValidate(TPMT_SYM_DEF_OBJECT* symDef, TPM2B_SYM_KEY*
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buftypename
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: CRYPT_INT_BUF
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToTpmBigNumMath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_INT_BUF(buftypename, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buftypename
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: CRYPT_POINT_BUF
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToTpmBigNumMath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_POINT_BUF(buftypename, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buftypename
    - ','
    - max_size_in_bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: CRYPT_CURVE_BUF
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToTpmBigNumMath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRYPT_CURVE_BUF(buftypename, max_size_in_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: "TPMBN_ECC_CURVE_CONSTANTS* AccessCurveConstants(\n    const bigCurveData*
      E)"
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_INLINE
    signature: "TPM_INLINE TPMBN_ECC_CURVE_CONSTANTS* AccessCurveConstants(\n    const
      bigCurveData* E)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: OSSL_ENTER
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSSL_ENTER()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: OSSL_LEAVE
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSSL_LEAVE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: ECC_ENTER
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ECC_ENTER()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: ECC_LEAVE
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ECC_LEAVE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: BN_NEW
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BN_NEW()
  - 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: RADIX_MOD
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RADIX_MOD(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: RADIX_DIV
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RADIX_DIV(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: BITS_TO_CRYPT_WORDS
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS_TO_CRYPT_WORDS(bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: BYTES_TO_CRYPT_WORDS
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTES_TO_CRYPT_WORDS(bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - thing
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: SIZE_IN_CRYPT_WORDS
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIZE_IN_CRYPT_WORDS(thing)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: SWAP_CRYPT_WORD
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP_CRYPT_WORD(x)
  - 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: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: TO_CRYPT_WORD_32
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_CRYPT_WORD_32(a, b, c, d)
  - 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: SWAP_CRYPT_WORD
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP_CRYPT_WORD(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: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: TO_CRYPT_WORD_64
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TO_CRYPT_WORD_64(a, b, c, d, e, f, g, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _STRING_
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: LIB_QUOTE
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIB_QUOTE(_STRING_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _PREFIX_
    - ','
    - _LIB_
    - ','
    - _TYPE_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: LIB_INCLUDE2
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIB_INCLUDE2(_PREFIX_, _LIB_, _TYPE_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _PREFIX_
    - ','
    - _LIB_
    - ','
    - _TYPE_
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: LIB_INCLUDE
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIB_INCLUDE(_PREFIX_, _LIB_, _TYPE_)
  - 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: CryptRsaInit
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL CryptRsaInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: CryptRsaStartup
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL CryptRsaStartup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MUST_BE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:106,1
    - Dst: SIZEOF_MEMBER
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:106,1
    - Dst: ExtMath_Initialize_Int
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - Z
    argTypes:
    - privateExponent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 117
    functionName: RsaInitializeExponent
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - MUST_BE
    - ExtMath_Initialize_Int
    - SIZEOF_MEMBER
    linkageType: ''
    returnType: privateExponent
    signature: privateExponent * RsaInitializeExponent(privateExponent* Z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - Z
    argTypes:
    - privateExponent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: MakePgreaterThanQ
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - ExtMath_UnsignedCmp
    linkageType: ''
    returnType: void
    signature: void MakePgreaterThanQ(privateExponent* Z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:147,1
    - Dst: ExtMath_MostSigBitNum
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:147,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:150,1
    - Dst: ExtMath_IntToBytes
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - packed
    - Z
    argTypes:
    - TPM2B_PRIVATE_KEY_RSA*
    - privateExponent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 144
    functionDepth: 5
    functionLinenumber: 144
    functionLinenumberEnd: 159
    functionName: PackExponent
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - BITS_TO_BYTES
    - pAssert
    - ExtMath_MostSigBitNum
    - ExtMath_IntToBytes
    linkageType: ''
    returnType: BOOL
    signature: BOOL PackExponent(TPM2B_PRIVATE_KEY_RSA* packed, privateExponent* Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:173,1
    - Dst: RsaInitializeExponent
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:174,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:175,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:178,1
    - Dst: ExtMath_IntFromBytes
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:179,1
    - Dst: MakePgreaterThanQ
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - b
    - Z
    argTypes:
    - TPM2B_PRIVATE_KEY_RSA*
    - privateExponent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 185
    functionName: UnpackExponent
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - RsaInitializeExponent
    - GOTO_ERROR_UNLESS
    - MakePgreaterThanQ
    - ExtMath_IntFromBytes
    linkageType: ''
    returnType: BOOL
    signature: BOOL UnpackExponent(TPM2B_PRIVATE_KEY_RSA* b, privateExponent* Z)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_PRIME_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:201,1
    - Dst: MakePgreaterThanQ
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:204,1
    - Dst: ExtMath_SubtractWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:207,1
    - Dst: ExtMath_ModInverse
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:208,1
    - Dst: ExtMath_SubtractWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:210,1
    - Dst: ExtMath_ModInverse
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:211,1
    - Dst: ExtMath_ModInverse
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:214,1
    - Dst: ExtMath_SetWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:216,1
    - Dst: ExtMath_SetWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:218,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - pubExp
    - Z
    argTypes:
    - Crypt_Int*
    - privateExponent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 193
    functionDepth: 4
    functionLinenumber: 193
    functionLinenumberEnd: 220
    functionName: ComputePrivateExponent
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - MakePgreaterThanQ
    - ExtMath_ModInverse
    - ExtMath_SubtractWord
    - CRYPT_PRIME_VAR
    - ExtMath_SetWord
    linkageType: ''
    returnType: BOOL
    signature: "BOOL ComputePrivateExponent(\n    Crypt_Int*       pubExp,  // IN:
      the public exponent\n    privateExponent* Z        // IN/OUT: on input, has
      primes P and Q. On\n                              //         output, has P,
      Q, dP, dQ, and pInv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_RSA_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:232,1
    - Dst: CRYPT_RSA_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:233,1
    - Dst: CRYPT_RSA_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:234,1
    - Dst: CRYPT_RSA_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:235,1
    - Dst: MakePgreaterThanQ
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:237,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:239,1
    - Dst: ExtMath_ModExp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:239,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:241,1
    - Dst: ExtMath_ModExp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:241,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:244,1
    - Dst: ExtMath_Subtract
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:244,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:245,1
    - Dst: ExtMath_Add
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:245,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:246,1
    - Dst: ExtMath_ModMult
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:246,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:248,1
    - Dst: ExtMath_Multiply
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:248,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:249,1
    - Dst: ExtMath_Add
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - inOut
    - Z
    argTypes:
    - Crypt_Int*
    - privateExponent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 229
    functionDepth: 4
    functionLinenumber: 229
    functionLinenumberEnd: 253
    functionName: RsaPrivateKeyOp
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - ExtMath_Subtract
    - GOTO_ERROR_UNLESS
    - ExtMath_Add
    - MakePgreaterThanQ
    - ExtMath_Multiply
    - ExtMath_ModMult
    - CRYPT_RSA_VAR
    - ExtMath_ModExp
    linkageType: ''
    returnType: BOOL
    signature: "BOOL RsaPrivateKeyOp(Crypt_Int* inOut,  // IN/OUT: number to be exponentiated\n
      \                           privateExponent* Z)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_TYPE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:272,1
    - Dst: UINT32_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:278,1
    - Dst: ModExpB
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dInOut
    - key
    argTypes:
    - TPM2B*
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 288
    functionName: RSAEP
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - ModExpB
    - TPM2B_TYPE
    - UINT32_TO_BYTE_ARRAY
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC RSAEP(TPM2B* dInOut,  // IN: size of the encrypted block and
      the size of\n                                    //     the encrypted value.
      It must be the size of\n                                    //     the modulus.\n
      \                                   // OUT: the encrypted data. Will receive
      the\n                                    //      decrypted value\n                    OBJECT*
      key     // IN: the key to use\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_RSA_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:306,1
    - Dst: NEW_PRIVATE_EXPONENT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:307,1
    - Dst: UnsignedCompareB
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:308,1
    - Dst: CryptRsaLoadPrivateExponent
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:320,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:324,1
    - Dst: TpmMath_IntFrom2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:324,1
    - Dst: RsaSetExponentFromOld
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:325,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:327,1
    - Dst: RsaPrivateKeyOp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:327,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:328,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - inOut
    - key
    argTypes:
    - TPM2B*
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 302
    functionDepth: 5
    functionLinenumber: 302
    functionLinenumberEnd: 332
    functionName: RSADP
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - TpmMath_IntFrom2B
    - GOTO_ERROR_UNLESS
    - CryptRsaLoadPrivateExponent
    - RsaPrivateKeyOp
    - CRYPT_RSA_INITIALIZED
    - TpmMath_IntTo2B
    - NEW_PRIVATE_EXPONENT
    - RsaSetExponentFromOld
    - UnsignedCompareB
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC RSADP(TPM2B*  inOut,  // IN/OUT: the value to encrypt\n                    OBJECT*
      key     // IN: the key\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:354,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:360,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:370,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:374,1
    - Dst: CryptHashBlock
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:379,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:380,1
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:384,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:387,1
    - Dst: DRBG_Generate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:392,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:394,1
    - Dst: CryptMGF_KDF
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:396,1
    - Dst: CryptMGF_KDF
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:405,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:407,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 5
    argNames:
    - padded
    - hashAlg
    - label
    - message
    - rand
    argTypes:
    - TPM2B*
    - TPM_ALG_ID
    - TPM2B*
    - TPM2B*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 417
    functionName: OaepEncode
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - CryptMGF_KDF
    - memcpy
    - pAssert
    - DRBG_Generate
    - ERROR_EXIT
    - CryptHashBlock
    - MemorySet
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC OaepEncode(\n    TPM2B*       padded,   // OUT: the pad data\n
      \   TPM_ALG_ID   hashAlg,  // IN: algorithm to use for padding\n    const TPM2B*
      label,    // IN: null-terminated string (may be NULL)\n    TPM2B*       message,
      \ // IN: the message being padded\n    RAND_STATE*  rand      // IN: the random
      number generator to use\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:445,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:455,1
    - Dst: CryptMGF_KDF
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:458,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:466,1
    - Dst: CryptMGF_KDF
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:473,1
    - Dst: CryptHashBlock
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:483,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:485,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:486,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:487,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:498,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:506,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 4
    argNames:
    - dataOut
    - hashAlg
    - label
    - padded
    argTypes:
    - TPM2B*
    - TPM_ALG_ID
    - TPM2B*
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 512
    functionName: OaepDecode
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - CryptMGF_KDF
    - memcpy
    - pAssert
    - ERROR_EXIT
    - memcmp
    - CryptHashBlock
    - FAIL
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC OaepDecode(\n    TPM2B*       dataOut,  // OUT: the recovered
      data\n    TPM_ALG_ID   hashAlg,  // IN: algorithm to use for padding\n    const
      TPM2B* label,    // IN: null-terminated string (may be NULL)\n    TPM2B*       padded
      \   // IN: the padded data\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:529,1
    - Dst: DRBG_Generate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:537,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - padded
    - message
    - rand
    argTypes:
    - TPM2B*
    - TPM2B*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 554
    functionName: RSAES_PKCS1v1_5Encode
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - DRBG_Generate
    - memcpy
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC RSAES_PKCS1v1_5Encode(TPM2B* padded,   // OUT: the pad data\n
      \                                   TPM2B* message,  // IN: the message being
      padded\n                                    RAND_STATE* rand)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:587,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - message
    - coded
    argTypes:
    - TPM2B*
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 589
    functionName: RSAES_Decode
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC RSAES_Decode(TPM2B* message,  // OUT: the recovered message\n
      \                          TPM2B* coded     // IN: the encoded message\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - hashSize
    - outSize
    argTypes:
    - INT16
    - INT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 610
    functionName: CryptRsaPssSaltSize
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: INT16
    signature: INT16 CryptRsaPssSaltSize(INT16 hashSize, INT16 outSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:624,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:633,1
    - Dst: CryptRsaPssSaltSize
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:639,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:644,1
    - Dst: DRBG_Generate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:647,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:652,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:653,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:654,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:655,1
    - Dst: CryptHashEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:656,1
    - Dst: CryptMGF_KDF
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:659,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:660,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - out
    - hashAlg
    - digest
    - rand
    argTypes:
    - TPM2B*
    - TPM_ALG_ID
    - TPM2B*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 679
    functionName: PssEncode
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - CryptMGF_KDF
    - CryptDigestUpdate2B
    - FAIL
    - pAssert
    - memset
    - DRBG_Generate
    - CryptHashStart
    - CryptDigestUpdate
    - CryptHashEnd
    - CryptRsaPssSaltSize
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC PssEncode(TPM2B*      out,      // OUT: the encoded buffer\n
      \                       TPM_ALG_ID  hashAlg,  // IN: hash algorithm for the
      encoding\n                        TPM2B*      digest,   // IN: the digest\n
      \                       RAND_STATE* rand      // IN: random number source\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:703,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:715,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:720,1
    - Dst: CryptMGF_KDF
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:731,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:736,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:770,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:773,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:776,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:779,1
    - Dst: CryptHashEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:782,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - hashAlg
    - dIn
    - eIn
    argTypes:
    - TPM_ALG_ID
    - TPM2B*
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 794
    functionName: PssDecode
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - CryptMGF_KDF
    - pAssert
    - CryptHashStart
    - ERROR_EXIT
    - CryptDigestUpdate
    - CryptHashEnd
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC PssDecode(\n    TPM_ALG_ID hashAlg,  // IN: hash algorithm
      to use for the encoding\n    TPM2B*     dIn,      // In: the digest to compare\n
      \   TPM2B*     eIn       // IN: the encoded data\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetHashDef
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:810,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:813,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:816,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - hashAlg
    - sizeOfBuffer
    - buffer
    argTypes:
    - TPM_ALG_ID
    - INT16
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 834
    functionName: MakeDerTag
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - MemoryCopy
    - GOTO_ERROR_UNLESS
    - CryptGetHashDef
    linkageType: ''
    returnType: INT16
    signature: INT16 MakeDerTag(TPM_ALG_ID hashAlg, INT16 sizeOfBuffer, BYTE* buffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MakeDerTag
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:851,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:858,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:862,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:863,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:869,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - pOut
    - hashAlg
    - hIn
    argTypes:
    - TPM2B*
    - TPM_ALG_ID
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 843
    functionDepth: 2
    functionLinenumber: 843
    functionLinenumberEnd: 884
    functionName: RSASSA_Encode
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - ERROR_EXIT
    - MakeDerTag
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC RSASSA_Encode(TPM2B* pOut,  // IN:OUT on in, the size of the
      public key\n                                          //        on out, the
      encoded area\n                            TPM_ALG_ID hashAlg,  // IN: hash algorithm
      for PKCS1v1_5\n                            TPM2B*     hIn       // IN: digest
      value to encode\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MakeDerTag
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:902,1
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:904,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:910,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:916,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - hashAlg
    - hIn
    - eIn
    argTypes:
    - TPM_ALG_ID
    - TPM2B*
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 893
    functionDepth: 2
    functionLinenumber: 893
    functionLinenumberEnd: 940
    functionName: RSASSA_Decode
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - CryptHashGetDigestSize
    - pAssert
    - ERROR_EXIT
    - MakeDerTag
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC RSASSA_Decode(\n    TPM_ALG_ID hashAlg,  // IN: hash algorithm
      to use for the encoding\n    TPM2B*     hIn,      // In: the digest to compare\n
      \   TPM2B*     eIn       // IN: the encoded data\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HandleToObject
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:966,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - rsaHandle
    - scheme
    argTypes:
    - TPMI_DH_OBJECT
    - TPMT_RSA_DECRYPT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 994
    functionName: CryptRsaSelectScheme
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 2
    functionsReached:
    - HandleToObject
    linkageType: ''
    returnType: TPMT_RSA_DECRYPT
    signature: "TPMT_RSA_DECRYPT * CryptRsaSelectScheme(\n    TPMI_DH_OBJECT    rsaHandle,
      \ // IN: handle of an RSA key\n    TPMT_RSA_DECRYPT* scheme      // IN: a sign
      or decrypt scheme\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NEW_PRIVATE_EXPONENT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1011,1
    - Dst: CRYPT_RSA_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1012,1
    - Dst: CRYPT_RSA_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1013,1
    - Dst: CRYPT_INT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1014,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1016,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1018,1
    - Dst: ExtMath_SetWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1021,1
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1022,1
    - Dst: ExtMath_SetWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1023,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1025,1
    - Dst: TpmMath_IntFrom2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1026,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1031,1
    - Dst: ExtMath_Divide
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1031,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1032,1
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1032,1
    - Dst: RsaInitializeExponentOld
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1035,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1036,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1038,1
    - Dst: ComputePrivateExponent
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1038,1
    - Dst: RsaSetExponentOld
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1042,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1046,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - publicArea
    - sensitive
    - rsaKey
    argTypes:
    - TPMT_PUBLIC*
    - TPMT_SENSITIVE*
    - OBJECT*
    assertStmts:
    - condition: (FALSE)
      pos:
        line_end: 1045
        line_start: 1045
        source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    constantsTouched: []
    func_position:
      end: 1053
      start: 1000
    functionDepth: 5
    functionLinenumber: 1000
    functionLinenumberEnd: 1053
    functionName: CryptRsaLoadPrivateExponent
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 6
    functionsReached:
    - TpmMath_IntFrom2B
    - GOTO_ERROR_UNLESS
    - ExtMath_Copy
    - CRYPT_RSA_INITIALIZED
    - RsaInitializeExponentOld
    - ComputePrivateExponent
    - TPM_DO_SELF_TEST
    - NEW_PRIVATE_EXPONENT
    - ExtMath_IsZero
    - RsaSetExponentOld
    - assert
    - CRYPT_INT_VAR
    - CRYPT_RSA_VAR
    - ExtMath_Divide
    - ExtMath_SetWord
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CryptRsaLoadPrivateExponent(TPMT_PUBLIC* publicArea, TPMT_SENSITIVE*
      sensitive,\n                            OBJECT                  *rsaKey\t//
      libtpms added: Should only be NULL\n                            // in case this
      function is called for parameter 'testing', such as by\n                            //
      TPM2_Import() -> ObjectLoad().\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_TYPE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1064,1
    - Dst: DRBG_Generate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1083,1
    - Dst: CryptRsaEncrypt
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1084,1
    - Dst: CryptRsaDecrypt
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1091,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1095,1
    - Dst: DRBG_Generate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1099,1
    - Dst: CryptRsaSign
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1100,1
    - Dst: CryptRsaValidateSignature
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1103,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - key
    argTypes:
    - OBJECT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1104
    functionName: CryptRSAPairwiseConsistencyTest
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached:
    - CryptRsaDecrypt
    - DRBG_Generate
    - memcmp
    - CryptRsaSign
    - CryptRsaEncrypt
    - CryptRsaValidateSignature
    - TPM2B_TYPE
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC CryptRSAPairwiseConsistencyTest(OBJECT *key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1147,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1152,1
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1163,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1165,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1170,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1172,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1174,1
    - Dst: RSAES_PKCS1v1_5Encode
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1181,1
    - Dst: OaepEncode
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1185,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1188,1
    - Dst: RSAEP
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1195,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 6
    argNames:
    - cOut
    - dIn
    - key
    - scheme
    - label
    - rand
    argTypes:
    - TPM2B_PUBLIC_KEY_RSA*
    - TPM2B*
    - OBJECT*
    - TPMT_RSA_DECRYPT*
    - TPM2B*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1129
    functionDepth: 3
    functionLinenumber: 1129
    functionLinenumberEnd: 1198
    functionName: CryptRsaEncrypt
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 4
    functionsReached:
    - memcpy
    - OaepEncode
    - TPM_DO_SELF_TEST
    - memset
    - ERROR_EXIT
    - MemoryCopy2B
    - RSAES_PKCS1v1_5Encode
    - RSAEP
    - RuntimeProfileRequiresAttributeFlags
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptRsaEncrypt(\n    TPM2B_PUBLIC_KEY_RSA* cOut,    //
      OUT: the encrypted data\n    TPM2B*                dIn,     // IN: the data
      to encrypt\n    OBJECT*               key,     // IN: the key used for encryption\n
      \   TPMT_RSA_DECRYPT*     scheme,  // IN: the type of padding and hash\n                                   //
      \    if needed\n    const TPM2B* label,            // IN: in case it is needed\n
      \   RAND_STATE*  rand              // IN: random number generator\n                                   //
      \    state (mostly for testing)\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1223,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1227,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1229,1
    - Dst: RSADP
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1233,1
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1240,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1245,1
    - Dst: RSAES_Decode
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1248,1
    - Dst: OaepDecode
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1251,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 5
    argNames:
    - dOut
    - cIn
    - key
    - scheme
    - label
    argTypes:
    - TPM2B*
    - TPM2B*
    - OBJECT*
    - TPMT_RSA_DECRYPT*
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1212
    functionDepth: 6
    functionLinenumber: 1212
    functionLinenumberEnd: 1260
    functionName: CryptRsaDecrypt
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 4
    functionsReached:
    - pAssert
    - TPM_DO_SELF_TEST
    - RSAES_Decode
    - OaepDecode
    - ERROR_EXIT
    - MemoryCopy2B
    - RSADP
    - RuntimeProfileRequiresAttributeFlags
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptRsaDecrypt(\n    TPM2B*            dOut,    // OUT:
      the decrypted data\n    TPM2B*            cIn,     // IN: the data to decrypt\n
      \   OBJECT*           key,     // IN: the key to use for decryption\n    TPMT_RSA_DECRYPT*
      scheme,  // IN: the padding scheme\n    const TPM2B*      label    // IN: in
      case it is needed for the scheme\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1281,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1288,1
    - Dst: PssEncode
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1296,1
    - Dst: RSASSA_Encode
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1302,1
    - Dst: RSADP
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1312,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - sigOut
    - key
    - hIn
    - rand
    argTypes:
    - TPMT_SIGNATURE*
    - OBJECT*
    - TPM2B_DIGEST*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1270
    functionDepth: 6
    functionLinenumber: 1270
    functionLinenumberEnd: 1315
    functionName: CryptRsaSign
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 3
    functionsReached:
    - pAssert
    - TPM_DO_SELF_TEST
    - RSASSA_Encode
    - PssEncode
    - RSADP
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptRsaSign(TPMT_SIGNATURE* sigOut,\n                               OBJECT*
      \        key,  // IN: key to use\n                               TPM2B_DIGEST*
      \  hIn,  // IN: the digest to sign\n                               RAND_STATE*
      rand  // IN: the random number generator\n                                                 //
      \     to use (mostly for testing)\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1335,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1347,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1349,1
    - Dst: RSAEP
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1352,1
    - Dst: PssDecode
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1358,1
    - Dst: RSASSA_Decode
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1363,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - sig
    - key
    - digest
    argTypes:
    - TPMT_SIGNATURE*
    - OBJECT*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1326
    functionDepth: 3
    functionLinenumber: 1326
    functionLinenumberEnd: 1373
    functionName: CryptRsaValidateSignature
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 3
    functionsReached:
    - pAssert
    - TPM_DO_SELF_TEST
    - RSASSA_Decode
    - ERROR_EXIT
    - PssDecode
    - RSAEP
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptRsaValidateSignature(\n    TPMT_SIGNATURE* sig,    //
      IN: signature\n    OBJECT*         key,    // IN: public modulus\n    TPM2B_DIGEST*
      \  digest  // IN: The digest being validated\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - publicArea
    - ','
    - sensitive
    - ','
    - rand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1380
    functionDepth: 0
    functionLinenumber: 1380
    functionLinenumberEnd: 1382
    functionName: GET_CACHED_KEY
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_CACHED_KEY(publicArea, sensitive, rand)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_RSA_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1428,1
    - Dst: CRYPT_RSA_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1429,1
    - Dst: CRYPT_INT_WORD
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1430,1
    - Dst: NEW_PRIVATE_EXPONENT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1434,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1436,1
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1436,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1437,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1447,1
    - Dst: IsPrimeInt
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1449,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1450,1
    - Dst: ExtMath_SetWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1452,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1459,1
    - Dst: INSTRUMENT_SET
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1462,1
    - Dst: PRIME_INDEX
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1462,1
    - Dst: GET_CACHED_KEY
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1465,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1470,1
    - Dst: RsaInitializeExponentOld
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1472,1
    - Dst: OpenSSLCryptRsaGenerateKey
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1475,1
    - Dst: _plat__IsCanceled
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1490,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1491,1
    - Dst: TpmRsa_GeneratePrimeForRSA
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1493,1
    - Dst: INSTRUMENT_INC
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1500,1
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1504,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1507,1
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1512,1
    - Dst: ExtMath_Subtract
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1513,1
    - Dst: ExtMath_Subtract
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1515,1
    - Dst: ExtMath_MostSigBitNum
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1516,1
    - Dst: ExtMath_Multiply
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1520,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1521,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1522,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1526,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1527,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1530,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1531,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1532,1
    - Dst: ComputePrivateExponent
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1535,1
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1540,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1541,1
    - Dst: RsaSetExponentOld
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1544,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1551,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1555,1
    - Dst: CRYPT_RSA_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1557,1
    - Dst: CRYPT_RSA_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1558,1
    - Dst: TpmMath_GetRandomInRange
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1559,1
    - Dst: ExtMath_ModExp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1562,1
    - Dst: RsaPrivateKeyOp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1564,1
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1568,1
    - Dst: ExtMath_SetWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1570,1
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1583,1
    - Dst: CryptRSAPairwiseConsistencyTest
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1585,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 87
    argCount: 4
    argNames:
    - publicArea
    - sensitive
    - rsaKey
    - rand
    argTypes:
    - TPMT_PUBLIC*
    - TPMT_SENSITIVE*
    - OBJECT*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1419
    functionDepth: 5
    functionLinenumber: 1419
    functionLinenumberEnd: 1590
    functionName: CryptRsaGenerateKey
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 2
    functionsReached:
    - TpmMath_GetRandomInRange
    - TpmMath_IntTo2B
    - RsaInitializeExponentOld
    - pAssert
    - OpenSSLCryptRsaGenerateKey
    - _plat__IsCanceled
    - BITS_TO_BYTES
    - ExtMath_Copy
    - PRIME_INDEX
    - CRYPT_INT_WORD
    - TPM_DO_SELF_TEST
    - NEW_PRIVATE_EXPONENT
    - ExtMath_UnsignedCmp
    - ERROR_EXIT
    - GET_CACHED_KEY
    - ExtMath_ModExp
    - INSTRUMENT_SET
    - ExtMath_MostSigBitNum
    - ExtMath_SetWord
    - IS_ATTRIBUTE
    - ExtMath_Multiply
    - ComputePrivateExponent
    - INSTRUMENT_INC
    - ExtMath_IsZero
    - CryptRSAPairwiseConsistencyTest
    - CRYPT_RSA_VAR
    - IsPrimeInt
    - TpmRsa_GeneratePrimeForRSA
    - RuntimeProfileRequiresAttributeFlags
    - ExtMath_Subtract
    - RsaPrivateKeyOp
    - RsaSetExponentOld
    - FAIL
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptRsaGenerateKey(\n    TPMT_PUBLIC*    publicArea,\n
      \   TPMT_SENSITIVE* sensitive,\n    OBJECT*         rsaKey,      // libtpms
      added IN/OUT: The object structure in which the key is created.\n    RAND_STATE*
      \    rand  // IN: if not NULL, the deterministic\n                          //
      \    RNG state\n)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1619,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1623,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1625,1
    - Dst: InitOpenSSLRSAPublicKey
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1627,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1631,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1633,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1634,1
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1639,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1652,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1654,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1656,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1658,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1662,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1663,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1666,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1667,1
    - Dst: GetDigestNameByHashAlg
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1670,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1672,1
    - Dst: EVP_get_digestbyname
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1674,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1676,1
    - Dst: EVP_PKEY_CTX_set_rsa_oaep_md
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1677,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1678,1
    - Dst: malloc
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1681,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1683,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1684,1
    - Dst: EVP_PKEY_CTX_set0_rsa_oaep_label
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1685,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1686,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1691,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1697,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1699,1
    - Dst: EVP_PKEY_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1704,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1705,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1706,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 6
    argNames:
    - cOut
    - dIn
    - key
    - scheme
    - label
    - LIBTPMS_ATTR_UNUSED
    argTypes:
    - TPM2B_PUBLIC_KEY_RSA*
    - TPM2B*
    - OBJECT*
    - TPMT_RSA_DECRYPT*
    - TPM2B*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1593
    functionDepth: 3
    functionLinenumber: 1593
    functionLinenumberEnd: 1709
    functionName: CryptRsaEncrypt
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 4
    functionsReached:
    - EVP_PKEY_CTX_set0_rsa_oaep_label
    - pAssert
    - EVP_PKEY_free
    - EVP_PKEY_encrypt
    - EVP_PKEY_CTX_set_rsa_oaep_md
    - TPM_DO_SELF_TEST
    - GetDigestNameByHashAlg
    - memset
    - InitOpenSSLRSAPublicKey
    - MemoryCopy2B
    - EVP_PKEY_CTX_new
    - ERROR_EXIT
    - EVP_get_digestbyname
    - memcpy
    - EVP_PKEY_CTX_set_rsa_padding
    - EVP_PKEY_encrypt_init
    - RuntimeProfileRequiresAttributeFlags
    - EVP_PKEY_CTX_free
    - malloc
    - free
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptRsaEncrypt(\n\t\tTPM2B_PUBLIC_KEY_RSA        *cOut,
      \         // OUT: the encrypted data\n\t\tTPM2B                       *dIn,
      \          // IN: the data to encrypt\n\t\tOBJECT                      *key,
      \          // IN: the key used for encryption\n\t\tTPMT_RSA_DECRYPT            *scheme,
      \       // IN: the type of padding and hash\n\t\t//     if needed\n\t\tconst
      TPM2B                 *label,         // IN: in case it is needed\n\t\tRAND_STATE
      \                 *rand LIBTPMS_ATTR_UNUSED // IN: random number generator\n\t\t//
      \    state (mostly for testing)\n\t\t)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1730,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1733,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1734,1
    - Dst: InitOpenSSLRSAPrivateKey
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1736,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1740,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1742,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1743,1
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1748,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1750,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1751,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1752,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1755,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1756,1
    - Dst: GetDigestNameByHashAlg
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1759,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1761,1
    - Dst: EVP_get_digestbyname
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1763,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1765,1
    - Dst: EVP_PKEY_CTX_set_rsa_oaep_md
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1766,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1767,1
    - Dst: malloc
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1770,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1772,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1773,1
    - Dst: EVP_PKEY_CTX_set0_rsa_oaep_label
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1775,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1776,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1781,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1787,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1789,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1792,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1794,1
    - Dst: EVP_PKEY_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1800,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1801,1
    - Dst: free
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1802,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 57
    argCount: 5
    argNames:
    - dOut
    - cIn
    - key
    - scheme
    - label
    argTypes:
    - TPM2B*
    - TPM2B*
    - OBJECT*
    - TPMT_RSA_DECRYPT*
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1711
    functionDepth: 3
    functionLinenumber: 1711
    functionLinenumberEnd: 1805
    functionName: CryptRsaDecrypt
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 4
    functionsReached:
    - InitOpenSSLRSAPrivateKey
    - EVP_PKEY_CTX_set0_rsa_oaep_label
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set_rsa_oaep_md
    - memcpy
    - pAssert
    - TPM_DO_SELF_TEST
    - EVP_PKEY_CTX_set_rsa_padding
    - GetDigestNameByHashAlg
    - EVP_PKEY_decrypt_init
    - ERROR_EXIT
    - EVP_PKEY_CTX_new
    - EVP_get_digestbyname
    - malloc
    - EVP_PKEY_free
    - EVP_PKEY_decrypt
    - free
    - RuntimeProfileRequiresAttributeFlags
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptRsaDecrypt(\n\t\tTPM2B               *dOut,          //
      OUT: the decrypted data\n\t\tTPM2B               *cIn,           // IN: the
      data to decrypt\n\t\tOBJECT              *key,           // IN: the key to use
      for decryption\n\t\tTPMT_RSA_DECRYPT    *scheme,        // IN: the padding scheme\n\t\tconst
      TPM2B         *label          // IN: in case it is needed for the scheme\n\t\t)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1827,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1831,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1847,1
    - Dst: GetDigestNameByHashAlg
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1850,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1852,1
    - Dst: EVP_get_digestbyname
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1854,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1856,1
    - Dst: InitOpenSSLRSAPrivateKey
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1858,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1862,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1864,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1865,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1867,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1868,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1869,1
    - Dst: EVP_MD_size
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1877,1
    - Dst: EVP_PKEY_CTX_set_rsa_pss_saltlen
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1878,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1879,1
    - Dst: EVP_PKEY_sign
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1882,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1885,1
    - Dst: EVP_PKEY_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1890,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1891,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 4
    argNames:
    - sigOut
    - key
    - hIn
    - LIBTPMS_ATTR_UNUSED
    argTypes:
    - TPMT_SIGNATURE*
    - OBJECT*
    - TPM2B_DIGEST*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1807
    functionDepth: 3
    functionLinenumber: 1807
    functionLinenumberEnd: 1894
    functionName: CryptRsaSign
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 3
    functionsReached:
    - InitOpenSSLRSAPrivateKey
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set_signature_md
    - EVP_MD_size
    - pAssert
    - TPM_DO_SELF_TEST
    - GetDigestNameByHashAlg
    - EVP_PKEY_CTX_set_rsa_padding
    - EVP_PKEY_CTX_set_rsa_pss_saltlen
    - EVP_PKEY_sign
    - ERROR_EXIT
    - EVP_get_digestbyname
    - EVP_PKEY_CTX_new
    - EVP_PKEY_free
    - EVP_PKEY_sign_init
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptRsaSign(\n\t     TPMT_SIGNATURE      *sigOut,\n\t
      \    OBJECT              *key,           // IN: key to use\n\t     TPM2B_DIGEST
      \       *hIn,           // IN: the digest to sign\n\t     RAND_STATE          *rand
      LIBTPMS_ATTR_UNUSED // IN: the random number generator\n\t     //      to use
      (mostly for testing)\n\t     )"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1912,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1926,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1927,1
    - Dst: InitOpenSSLRSAPublicKey
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1929,1
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1934,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1936,1
    - Dst: GetDigestNameByHashAlg
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1938,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1940,1
    - Dst: EVP_get_digestbyname
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1942,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1943,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1945,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1946,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1948,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1949,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1950,1
    - Dst: EVP_PKEY_verify
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1952,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1955,1
    - Dst: EVP_PKEY_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1960,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c:1961,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 3
    argNames:
    - sig
    - key
    - digest
    argTypes:
    - TPMT_SIGNATURE*
    - OBJECT*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1896
    functionDepth: 3
    functionLinenumber: 1896
    functionLinenumberEnd: 1964
    functionName: CryptRsaValidateSignature
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
    functionUses: 3
    functionsReached:
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set_signature_md
    - pAssert
    - TPM_DO_SELF_TEST
    - GetDigestNameByHashAlg
    - EVP_PKEY_CTX_set_rsa_padding
    - EVP_PKEY_verify_init
    - ERROR_EXIT
    - InitOpenSSLRSAPublicKey
    - EVP_get_digestbyname
    - EVP_PKEY_CTX_new
    - EVP_PKEY_free
    - RuntimeProfileRequiresAttributeFlags
    - EVP_PKEY_verify
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptRsaValidateSignature(\n\t\t\t  TPMT_SIGNATURE  *sig,
      \          // IN: signature\n\t\t\t  OBJECT          *key,           // IN:
      public modulus\n\t\t\t  TPM2B_DIGEST    *digest         // IN: The digest being
      validated\n\t\t\t  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hashState
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: HASH_START
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_START(hashState)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - hashState
    - ','
    - dInSize
    - ','
    - dIn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: HASH_DATA
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_DATA(hashState, dInSize, dIn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hashState
    - ','
    - buffer
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: HASH_END
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_END(hashState, buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hashStateOut
    - ','
    - hashStateIn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: HASH_STATE_COPY
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_STATE_COPY(hashStateOut, hashStateIn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - to
    - ','
    - hashStateFrom
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 172
    functionName: HASH_STATE_EXPORT
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_STATE_EXPORT(to, hashStateFrom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hashStateTo
    - ','
    - from
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: HASH_STATE_IMPORT
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_STATE_IMPORT(hashStateTo, from)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:101,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:105,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 108
    functionName: Root2
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c
    functionUses: 0
    functionsReached:
    - FAIL
    - pAssert
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Root2(uint32_t n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Root2
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 134
    functionName: IsPrimeInt
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c
    functionUses: 1
    functionsReached:
    - Root2
    linkageType: ''
    returnType: BOOL
    signature: BOOL IsPrimeInt(uint32_t n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ExtMath_GetLeastSignificant32bits
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:146,1
    - Dst: ExtMath_SizeInBits
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:151,1
    - Dst: IsPrimeInt
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:152,1
    - Dst: MUST_BE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:163,1
    - Dst: CRYPT_INT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:167,1
    - Dst: ExtMath_GCD
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:168,1
    - Dst: ExtMath_IsEqualWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:169,1
    - Dst: MillerRabin
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - prime
    - rand
    argTypes:
    - Crypt_Int*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 173
    functionName: TpmMath_IsProbablyPrime
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c
    functionUses: 0
    functionsReached:
    - ExtMath_IsEqualWord
    - MillerRabin
    - ExtMath_SizeInBits
    - CRYPT_INT_VAR
    - IsPrimeInt
    - ExtMath_GCD
    - MUST_BE
    - ExtMath_GetLeastSignificant32bits
    linkageType: ''
    returnType: BOOL
    signature: "BOOL TpmMath_IsProbablyPrime(Crypt_Int*  prime,  // IN:\n                             RAND_STATE*
      rand    // IN: the random state just\n                             //     in
      case Miller-Rabin is required\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bits
    argTypes:
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: MillerRabinRounds
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UINT32
    signature: 'UINT32 MillerRabinRounds(UINT32 bits  // IN: Number of bits in the
      RSA prime

      )'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_INT_MAX
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:200,1
    - Dst: CRYPT_PRIME_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:201,1
    - Dst: CRYPT_PRIME_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:202,1
    - Dst: CRYPT_PRIME_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:203,1
    - Dst: MillerRabinRounds
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:209,1
    - Dst: ExtMath_SizeInBits
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:209,1
    - Dst: INSTRUMENT_INC
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:211,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:213,1
    - Dst: ExtMath_SubtractWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:215,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:216,1
    - Dst: ExtMath_TestBit
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:223,1
    - Dst: ExtMath_ShiftRight
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:228,1
    - Dst: ExtMath_SizeInBits
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:230,1
    - Dst: TpmMath_GetRandomInteger
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:237,1
    - Dst: ExtMath_UnsignedCmpWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:238,1
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:239,1
    - Dst: ExtMath_ModExp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:247,1
    - Dst: ExtMath_UnsignedCmpWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:250,1
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:251,1
    - Dst: ExtMath_ModMult
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:257,1
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:259,1
    - Dst: ExtMath_IsEqualWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:262,1
    - Dst: INSTRUMENT_INC
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:267,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 2
    argNames:
    - bnW
    - rand
    argTypes:
    - Crypt_Int*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 198
    functionDepth: 4
    functionLinenumber: 198
    functionLinenumberEnd: 277
    functionName: MillerRabin
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c
    functionUses: 1
    functionsReached:
    - CRYPT_INT_MAX
    - ExtMath_TestBit
    - pAssert
    - ExtMath_UnsignedCmpWord
    - INSTRUMENT_INC
    - ExtMath_IsEqualWord
    - ExtMath_UnsignedCmp
    - ExtMath_SizeInBits
    - MillerRabinRounds
    - ExtMath_SubtractWord
    - ExtMath_ModMult
    - ExtMath_ModExp
    - ExtMath_ShiftRight
    - TpmMath_GetRandomInteger
    - CRYPT_PRIME_VAR
    linkageType: ''
    returnType: BOOL
    signature: BOOL MillerRabin(Crypt_Int* bnW, RAND_STATE* rand)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ExtMath_ModWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:298,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:300,1
    - Dst: ExtMath_AddWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:304,1
    - Dst: ExtMath_SubtractWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:310,1
    - Dst: TpmMath_IsProbablyPrime
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:312,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:313,1
    - Dst: PrimeSelectWithSieve
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - prime
    - exponent
    - rand
    argTypes:
    - Crypt_Int*
    - UINT32
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 293
    functionDepth: 5
    functionLinenumber: 293
    functionLinenumberEnd: 319
    functionName: RsaCheckPrime
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c
    functionUses: 0
    functionsReached:
    - NOT_REFERENCED
    - ExtMath_AddWord
    - TpmMath_IsProbablyPrime
    - ExtMath_ModWord
    - PrimeSelectWithSieve
    - ERROR_EXIT
    - ExtMath_SubtractWord
    linkageType: ''
    returnType: TPM_RC
    signature: TPM_RC RsaCheckPrime(Crypt_Int* prime, UINT32 exponent, RAND_STATE*
      rand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - prime
    argTypes:
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 339
    functionName: RsaAdjustPrimeCandidate_PreRev155
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RsaAdjustPrimeCandidate_PreRev155(\n                            Crypt_Int*
      prime\n                           )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - prime
    argTypes:
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 362
    functionName: RsaAdjustPrimeCandidate_New
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void RsaAdjustPrimeCandidate_New(\n\t\t\t    Crypt_Int* prime\n\t\t\t
      \  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - bigNumberBuffer
    - bufSize
    argTypes:
    - BYTE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 414
    functionName: RsaAdjustPrimeCandidate_Rev169
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RsaAdjustPrimeCandidate_Rev169(BYTE* bigNumberBuffer, size_t bufSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:430,1
    - Dst: TPM2B_TYPE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:433,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:436,1
    - Dst: TpmMath_GetRandomBits
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:441,1
    - Dst: RsaAdjustPrimeCandidate_Rev169
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:443,1
    - Dst: ExtMath_IntFromBytes
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:446,1
    - Dst: RsaCheckPrime
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:447,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:452,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - prime
    - bits
    - exponent
    - rand
    argTypes:
    - Crypt_Int*
    - UINT32
    - UINT32
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 420
    functionDepth: 6
    functionLinenumber: 420
    functionLinenumberEnd: 456
    functionName: TpmRsa_GeneratePrimeForRSA_Rev169
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c
    functionUses: 0
    functionsReached:
    - RsaCheckPrime
    - ExtMath_IntFromBytes
    - BITS_TO_BYTES
    - pAssert
    - TpmMath_GetRandomBits
    - RsaAdjustPrimeCandidate_Rev169
    - FAIL
    - TPM2B_TYPE
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TpmRsa_GeneratePrimeForRSA_Rev169(\t\t\t// libtpms: renamed\n
      \   Crypt_Int* prime,      // IN/OUT: points to the BN that will get the\n                           //
      \ random value\n    UINT32      bits,      // IN: number of bits to get\n    UINT32
      \     exponent,  // IN: the exponent\n    RAND_STATE* rand       // IN: the
      random state\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:473,1
    - Dst: BITS_TO_CRYPT_WORDS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:473,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:475,1
    - Dst: BITS_TO_CRYPT_WORDS
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:477,1
    - Dst: DRBG_GetSeedCompatLevel
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:486,1
    - Dst: DRBG_Generate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:488,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:488,1
    - Dst: RsaAdjustPrimeCandidate_PreRev155
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:491,1
    - Dst: TpmMath_GetRandomInteger
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:495,1
    - Dst: RsaAdjustPrimeCandidate_New
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:497,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:500,1
    - Dst: RsaCheckPrime
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c:503,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - prime
    - bits
    - exponent
    - rand
    argTypes:
    - Crypt_Int*
    - UINT32
    - UINT32
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 462
    functionDepth: 6
    functionLinenumber: 462
    functionLinenumberEnd: 506
    functionName: TpmRsa_GeneratePrimeForRSA
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c
    functionUses: 1
    functionsReached:
    - DRBG_GetSeedCompatLevel
    - RsaAdjustPrimeCandidate_New
    - BITS_TO_BYTES
    - pAssert
    - DRBG_Generate
    - BITS_TO_CRYPT_WORDS
    - RsaAdjustPrimeCandidate_PreRev155
    - RsaCheckPrime
    - FAIL
    - TpmMath_GetRandomInteger
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TpmRsa_GeneratePrimeForRSA(\n\t\t\t\t  Crypt_Int* prime,      //
      IN/OUT: points to the BN that will get the\n\t\t\t\t  //  random value\n\t\t\t\t
      \ UINT32      bits,      // IN: number of bits to get\n\t\t\t\t  UINT32      exponent,
      \ // IN: the exponent\n\t\t\t\t  RAND_STATE* rand       // IN: the random state\n\t\t\t\t
      \ )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - k
    argTypes:
    - UINT64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 106
    functionName: CryptSetOddByteParity
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UINT64
    signature: "UINT64 CryptSetOddByteParity(\n\t\t      UINT64          k\n\t\t      )"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - k
    argTypes:
    - UINT64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: CryptDesIsWeakKey
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: "BOOL CryptDesIsWeakKey(\n\t\t  UINT64            k\n\t\t  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptSetOddByteParity
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c:145,1
    - Dst: BYTE_ARRAY_TO_UINT64
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c:145,1
    - Dst: CryptDesIsWeakKey
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c:146,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - desKey
    argTypes:
    - TPM2B_SYM_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 152
    functionName: CryptDesValidateKey
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c
    functionUses: 1
    functionsReached:
    - CryptSetOddByteParity
    - CryptDesIsWeakKey
    - BYTE_ARRAY_TO_UINT64
    linkageType: ''
    returnType: BOOL
    signature: "BOOL CryptDesValidateKey(\n\t\t    TPM2B_SYM_KEY       *desKey     //
      IN: key to validate\n\t\t    )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c:167,1
    - Dst: OpenSSLCryptGenerateKeyDes
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c:176,1
    - Dst: DRBG_Generate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c:183,1
    - Dst: BYTE_ARRAY_TO_UINT64
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c:187,1
    - Dst: CryptSetOddByteParity
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c:188,1
    - Dst: UINT64_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c:189,1
    - Dst: CryptDesValidateKey
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - publicArea
    - sensitive
    - rand
    argTypes:
    - TPMT_PUBLIC*
    - TPMT_SENSITIVE*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 193
    functionName: CryptGenerateKeyDes
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c
    functionUses: 2
    functionsReached:
    - CryptSetOddByteParity
    - BITS_TO_BYTES
    - UINT64_TO_BYTE_ARRAY
    - BYTE_ARRAY_TO_UINT64
    - DRBG_Generate
    - OpenSSLCryptGenerateKeyDes
    - CryptDesValidateKey
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC CryptGenerateKeyDes(\n\t\t    TPMT_PUBLIC             *publicArea,
      \       // IN/OUT: The public area template\n\t\t    //     for the new key.\n\t\t
      \   TPMT_SENSITIVE          *sensitive,         // OUT: sensitive area\n\t\t
      \   RAND_STATE              *rand               // IN: the \"entropy\" source
      for\n\t\t    )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:101,1
    - Dst: BN_num_bytes
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:112,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:113,1
    - Dst: BN_bn2bin
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:114,1
    - Dst: BnFromBytes
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:115,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:119,1
    - Dst: BnGetAllocated
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:119,1
    - Dst: BnSetTop
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - bn
    - osslBn
    argTypes:
    - bigNum
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 128
    functionName: OsslToTpmBn
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 4
    functionsReached:
    - GOTO_ERROR_UNLESS
    - BnGetAllocated
    - BN_bn2bin
    - BnSetTop
    - BN_num_bytes
    - BnFromBytes
    linkageType: ''
    returnType: BOOL
    signature: BOOL OsslToTpmBn(bigNum bn, const BIGNUM* osslBn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:143,1
    - Dst: BnToBytes
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:147,1
    - Dst: BN_bin2bn
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:148,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:149,1
    - Dst: BN_copy
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:150,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - toInit
    - initializer
    argTypes:
    - BIGNUM*
    - bigConst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 160
    functionName: BigInitialized
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 3
    functionsReached:
    - BN_clear_free
    - BnToBytes
    - BN_set_flags
    - BN_bin2bn
    - BN_copy
    - FAIL
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM * BigInitialized(BIGNUM* toInit, bigConst initializer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: DEBUG_PRINT
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEBUG_PRINT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - label
    - ','
    - bn
    - ','
    - eol
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: BIGNUM_PRINT
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BIGNUM_PRINT(label, bn, eol)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:177,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:180,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:184,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:194,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:197,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:201,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - label
    - a
    - eol
    argTypes:
    - char*
    - BIGNUM*
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 203
    functionName: BIGNUM_print
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void BIGNUM_print(const char* label, const BIGNUM* a, BOOL eol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_get::BN_CTX_get
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:215,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - CTX
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 218
    functionName: BnNewVariable
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 0
    functionsReached:
    - FAIL
    - BN_CTX_get::BN_CTX_get
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM * BnNewVariable(BN_CTX* CTX)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENTER
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:225,1
    - Dst: BnNewVariable
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:226,1
    - Dst: BN_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:233,1
    - Dst: BnFromBytes
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:236,1
    - Dst: BN_bin2bn
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:238,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:241,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:243,1
    - Dst: OSSL_LEAVE
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 251
    functionName: BnMathLibraryCompatibilityCheck
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 1
    functionsReached:
    - OSSL_LEAVE
    - GOTO_ERROR_UNLESS
    - BnNewVariable
    - BN_bin2bn
    - OSSL_ENTER
    - BN_VAR
    - BnFromBytes
    linkageType: ''
    returnType: BOOL
    signature: BOOL BnMathLibraryCompatibilityCheck(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENTER
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:262,1
    - Dst: BN_NEW
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:264,1
    - Dst: BN_NEW
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:265,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:266,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:267,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:268,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:270,1
    - Dst: BN_mul
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:270,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:271,1
    - Dst: BN_div
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:271,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:272,1
    - Dst: OsslToTpmBn
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:272,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:277,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:278,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:279,1
    - Dst: OSSL_LEAVE
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - result
    - op1
    - op2
    - modulus
    argTypes:
    - bigNum
    - bigConst
    - bigConst
    - bigConst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 260
    functionDepth: 4
    functionLinenumber: 260
    functionLinenumberEnd: 282
    functionName: BnModMult
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 1
    functionsReached:
    - OSSL_LEAVE
    - GOTO_ERROR_UNLESS
    - BN_mul
    - BN_NEW
    - BN_clear_free
    - BN_div
    - OSSL_ENTER
    - OsslToTpmBn
    - BIG_INITIALIZED
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnModMult(bigNum result, bigConst op1, bigConst op2, bigConst
      modulus)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENTER
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:291,1
    - Dst: BN_NEW
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:292,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:294,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:295,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:297,1
    - Dst: BN_mul
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:297,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:298,1
    - Dst: OsslToTpmBn
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:298,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:303,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:304,1
    - Dst: OSSL_LEAVE
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - result
    - multiplicand
    - multiplier
    argTypes:
    - bigNum
    - bigConst
    - bigConst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 289
    functionDepth: 4
    functionLinenumber: 289
    functionLinenumberEnd: 307
    functionName: BnMult
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 2
    functionsReached:
    - OSSL_LEAVE
    - GOTO_ERROR_UNLESS
    - BN_mul
    - BN_NEW
    - BN_clear_free
    - OSSL_ENTER
    - OsslToTpmBn
    - BIG_INITIALIZED
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnMult(bigNum result, bigConst multiplicand, bigConst multiplier)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENTER
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:318,1
    - Dst: BN_NEW
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:319,1
    - Dst: BN_NEW
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:320,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:322,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:323,1
    - Dst: BnEqualZero
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:325,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:326,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:327,1
    - Dst: BN_div
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:327,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:328,1
    - Dst: OsslToTpmBn
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:328,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:329,1
    - Dst: OsslToTpmBn
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:329,1
    - Dst: DEBUG_PRINT
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:330,1
    - Dst: BIGNUM_PRINT
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:331,1
    - Dst: BIGNUM_PRINT
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:332,1
    - Dst: BIGNUM_PRINT
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:333,1
    - Dst: BIGNUM_PRINT
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:334,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:339,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:340,1
    - Dst: OSSL_LEAVE
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 4
    argNames:
    - quotient
    - remainder
    - dividend
    - divisor
    argTypes:
    - bigNum
    - bigNum
    - bigConst
    - bigConst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 315
    functionDepth: 4
    functionLinenumber: 315
    functionLinenumberEnd: 343
    functionName: BnDiv
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 2
    functionsReached:
    - OSSL_LEAVE
    - GOTO_ERROR_UNLESS
    - BIGNUM_PRINT
    - BN_NEW
    - DEBUG_PRINT
    - BN_clear_free
    - BN_div
    - BnEqualZero
    - OSSL_ENTER
    - FAIL
    - OsslToTpmBn
    - BIG_INITIALIZED
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT BnDiv(\n    bigNum quotient, bigNum remainder, bigConst
      dividend, bigConst divisor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENTER
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:357,1
    - Dst: BN_NEW
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:358,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:360,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:361,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:363,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:364,1
    - Dst: BN_gcd
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:364,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:365,1
    - Dst: OsslToTpmBn
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:365,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:370,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:371,1
    - Dst: OSSL_LEAVE
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - gcd
    - number1
    - number2
    argTypes:
    - bigNum
    - bigConst
    - bigConst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 352
    functionDepth: 4
    functionLinenumber: 352
    functionLinenumberEnd: 374
    functionName: BnGcd
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 1
    functionsReached:
    - OSSL_LEAVE
    - GOTO_ERROR_UNLESS
    - BN_NEW
    - BN_clear_free
    - BN_set_flags
    - OSSL_ENTER
    - OsslToTpmBn
    - BIG_INITIALIZED
    - BN_gcd
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT BnGcd(bigNum   gcd,      // OUT: the common divisor\n                      bigConst
      number1,  // IN:\n                      bigConst number2   // IN:\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENTER
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:389,1
    - Dst: BN_NEW
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:390,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:392,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:393,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:394,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:396,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:397,1
    - Dst: BN_mod_exp
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:397,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:398,1
    - Dst: OsslToTpmBn
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:398,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:403,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:404,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:405,1
    - Dst: OSSL_LEAVE
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - result
    - number
    - exponent
    - modulus
    argTypes:
    - bigNum
    - bigConst
    - bigConst
    - bigConst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 383
    functionDepth: 4
    functionLinenumber: 383
    functionLinenumberEnd: 408
    functionName: BnModExp
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 1
    functionsReached:
    - OSSL_LEAVE
    - GOTO_ERROR_UNLESS
    - BN_NEW
    - BN_mod_exp
    - BN_clear_free
    - BN_set_flags
    - OSSL_ENTER
    - OsslToTpmBn
    - BIG_INITIALIZED
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT BnModExp(bigNum   result,    // OUT: the result\n                         bigConst
      number,    // IN: number to exponentiate\n                         bigConst
      exponent,  // IN:\n                         bigConst modulus    // IN:\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_ENTER
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:418,1
    - Dst: BN_NEW
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:419,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:421,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:422,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:424,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:425,1
    - Dst: BN_mod_inverse
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:425,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:426,1
    - Dst: OsslToTpmBn
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:426,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:431,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:432,1
    - Dst: OSSL_LEAVE
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - result
    - number
    - modulus
    argTypes:
    - bigNum
    - bigConst
    - bigConst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 416
    functionDepth: 4
    functionLinenumber: 416
    functionLinenumberEnd: 435
    functionName: BnModInverse
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 1
    functionsReached:
    - OSSL_LEAVE
    - GOTO_ERROR_UNLESS
    - BN_mod_inverse
    - BN_NEW
    - BN_clear_free
    - BN_set_flags
    - OSSL_ENTER
    - OsslToTpmBn
    - BIG_INITIALIZED
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnModInverse(bigNum result, bigConst number, bigConst modulus)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_start
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:452,1
    - Dst: BN_CTX_get
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:454,1
    - Dst: BN_CTX_get
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:455,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:458,1
    - Dst: EC_POINT_get_affine_coordinates_GFp
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:460,1
    - Dst: OsslToTpmBn
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:463,1
    - Dst: OsslToTpmBn
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:464,1
    - Dst: BnSetWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:465,1
    - Dst: BnSetWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:468,1
    - Dst: BN_CTX_end
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - pOut
    - pIn
    - E
    argTypes:
    - bigPoint
    - EC_POINT*
    - bigCurveData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 444
    functionDepth: 4
    functionLinenumber: 444
    functionLinenumberEnd: 471
    functionName: PointFromOssl
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 0
    functionsReached:
    - BN_CTX_end
    - EC_POINT_get_affine_coordinates_GFp
    - BN_CTX_get
    - BnSetWord
    - BN_CTX_start
    - FAIL
    - OsslToTpmBn
    linkageType: ''
    returnType: BOOL
    signature: "BOOL PointFromOssl(bigPoint            pOut,  // OUT: resulting point\n
      \                         EC_POINT*           pIn,   // IN: the point to return\n
      \                         const bigCurveData* E      // IN: the curve\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:481,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:482,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:484,1
    - Dst: EC_POINT_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:485,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:487,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:489,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - initializer
    - E
    argTypes:
    - pointConst
    - bigCurveData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 493
    functionName: EcPointInitialized
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 1
    functionsReached:
    - BN_clear_free
    - FAIL
    - EC_POINT_set_affine_coordinates_GFp
    - BIG_INITIALIZED
    - EC_POINT_new
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT * EcPointInitialized(pointConst initializer, const bigCurveData*
      E)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BnGetCurveData
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:508,1
    - Dst: OSSL_ENTER
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:515,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:517,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:518,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:519,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:520,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:521,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:522,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:523,1
    - Dst: EC_GROUP_new_curve_GFp
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:531,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:532,1
    - Dst: EC_POINT_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:536,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:537,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:540,1
    - Dst: EC_POINT_set_affine_coordinates_GFp
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:541,1
    - Dst: GOTO_ERROR_UNLESS
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:543,1
    - Dst: EC_GROUP_set_generator
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:543,1
    - Dst: EC_POINT_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:545,1
    - Dst: EC_POINT_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:548,1
    - Dst: BnCurveFree
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:549,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:553,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:554,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:555,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:556,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:557,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:558,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:559,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 563
    functionName: "bigCurveData* BnCurveInitialize(\n    bigCurveData* E,       //
      IN: curve structure to initialize\n    TPM_ECC_CURVE curveId  // IN: curve identifier\n)"
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 0
    functionsReached:
    - GOTO_ERROR_UNLESS
    - BN_clear_free
    - EC_GROUP_new_curve_GFp
    - EC_POINT_free
    - BnCurveFree
    - BnGetCurveData
    - EC_GROUP_set_generator
    - OSSL_ENTER
    - EC_POINT_set_affine_coordinates_GFp
    - BIG_INITIALIZED
    - EC_POINT_new
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT bigCurveData* BnCurveInitialize(\n    bigCurveData* E,
      \      // IN: curve structure to initialize\n    TPM_ECC_CURVE curveId  // IN:
      curve identifier\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_GROUP_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:572,1
    - Dst: OsslContextLeave
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - E
    argTypes:
    - bigCurveData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 575
    functionName: BnCurveFree
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 2
    functionsReached:
    - OsslContextLeave
    - EC_GROUP_free
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT BnCurveFree(bigCurveData* E)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:587,1
    - Dst: EcPointInitialized
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:588,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:589,1
    - Dst: EC_POINT_mul
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:592,1
    - Dst: EC_POINT_mul
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:594,1
    - Dst: PointFromOssl
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:595,1
    - Dst: EC_POINT_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:596,1
    - Dst: EC_POINT_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:597,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:598,1
    - Dst: BnEqualZero
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - R
    - S
    - d
    - E
    argTypes:
    - bigPoint
    - pointConst
    - bigConst
    - bigCurveData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 582
    functionDepth: 5
    functionLinenumber: 582
    functionLinenumberEnd: 600
    functionName: BnEccModMult
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 1
    functionsReached:
    - EC_POINT_clear_free
    - BN_clear_free
    - PointFromOssl
    - EcPointInitialized
    - BnEqualZero
    - EC_POINT_mul
    - BIG_INITIALIZED
    - EC_POINT_new
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT BnEccModMult(bigPoint   R,  // OUT: computed point\n                             pointConst
      S,  // IN: point to multiply by 'd' (optional)\n                             bigConst
      \  d,  // IN: scalar for [d]S\n                             const bigCurveData*
      E)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:615,1
    - Dst: EcPointInitialized
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:616,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:617,1
    - Dst: EcPointInitialized
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:618,1
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:619,1
    - Dst: AccessCurveConstants
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:621,1
    - Dst: EC_POINT_mul
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:622,1
    - Dst: EC_POINT_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:626,1
    - Dst: EC_POINT_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:627,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:630,1
    - Dst: EC_POINT_mul
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:631,1
    - Dst: EC_POINT_mul
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:632,1
    - Dst: EC_POINT_add
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:633,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:634,1
    - Dst: EC_POINT_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:636,1
    - Dst: EC_POINT_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:637,1
    - Dst: EC_POINTs_mul
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:645,1
    - Dst: PointFromOssl
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:648,1
    - Dst: EC_POINT_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:649,1
    - Dst: EC_POINT_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:650,1
    - Dst: EC_POINT_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:651,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:652,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:653,1
    - Dst: BnEqualZero
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:654,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 6
    argNames:
    - R
    - S
    - d
    - Q
    - u
    - E
    argTypes:
    - bigPoint
    - pointConst
    - bigConst
    - pointConst
    - bigConst
    - bigCurveData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 607
    functionDepth: 5
    functionLinenumber: 607
    functionLinenumberEnd: 655
    functionName: BnEccModMult2
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 1
    functionsReached:
    - EC_POINT_clear_free
    - AccessCurveConstants
    - BN_clear_free
    - pAssert
    - PointFromOssl
    - EcPointInitialized
    - EC_POINTs_mul
    - EC_POINT_add
    - BnEqualZero
    - EC_POINT_mul
    - BIG_INITIALIZED
    - EC_POINT_new
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT BnEccModMult2(bigPoint            R,  // OUT: computed
      point\n                              pointConst          S,  // IN: optional
      point\n                              bigConst            d,  // IN: scalar for
      [d]S or [d]G\n                              pointConst          Q,  // IN: second
      point\n                              bigConst            u,  // IN: second scalar\n
      \                             const bigCurveData* E   // IN: curve\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_new
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:668,1
    - Dst: EcPointInitialized
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:669,1
    - Dst: EcPointInitialized
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:670,1
    - Dst: EC_POINT_add
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:672,1
    - Dst: PointFromOssl
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:674,1
    - Dst: EC_POINT_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:675,1
    - Dst: EC_POINT_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:676,1
    - Dst: EC_POINT_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:677,1
    - Dst: BnEqualZero
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - R
    - S
    - Q
    - E
    argTypes:
    - bigPoint
    - pointConst
    - pointConst
    - bigCurveData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 662
    functionDepth: 5
    functionLinenumber: 662
    functionLinenumberEnd: 679
    functionName: BnEccAdd
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 1
    functionsReached:
    - EC_POINT_clear_free
    - PointFromOssl
    - EcPointInitialized
    - EC_POINT_add
    - BnEqualZero
    - EC_POINT_new
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT BnEccAdd(bigPoint            R,  // OUT: computed point\n
      \                        pointConst          S,  // IN: first point to add\n
      \                        pointConst          Q,  // IN: second point\n                         const
      bigCurveData* E   // IN: curve\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OsslGetVersion
      Src: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - result
    argTypes:
    - _CRYPTO_IMPL_DESCRIPTION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 690
    functionName: BnGetImplementation
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
    functionUses: 0
    functionsReached:
    - OsslGetVersion
    linkageType: ''
    returnType: void
    signature: void BnGetImplementation(_CRYPTO_IMPL_DESCRIPTION* result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: rdtsc
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/ConsttimeUtils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long long
    signature: unsigned long long rdtsc()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BN_bn2bin
      Src: /src/libtpms/src/tpm2/crypto/openssl/ConsttimeUtils.h:89,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/crypto/openssl/ConsttimeUtils.h:96,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/crypto/openssl/ConsttimeUtils.h:99,1
    - Dst: assert
      Src: /src/libtpms/src/tpm2/crypto/openssl/ConsttimeUtils.h:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - a
    - num_bytes
    - verbose
    - caller
    argTypes:
    - BIGNUM*
    - unsigned int
    - int
    - char*
    assertStmts:
    - condition: (num_bytes == (unsigned int)len)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/libtpms/src/tpm2/crypto/openssl/ConsttimeUtils.h
    constantsTouched: []
    func_position:
      end: 102
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 102
    functionName: assert_ossl_num_bytes
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/ConsttimeUtils.h
    functionUses: 0
    functionsReached:
    - assert
    - BN_bn2bin
    - printf
    linkageType: ''
    returnType: void
    signature: "void assert_ossl_num_bytes(const BIGNUM *a,\n                                         unsigned
      int num_bytes,\n                                         int verbose,\n                                         const
      char *caller)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BIG_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/ConsttimeUtils.h:110,1
    - Dst: assert_ossl_num_bytes
      Src: /src/libtpms/src/tpm2/crypto/openssl/ConsttimeUtils.h:112,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/ConsttimeUtils.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - tpmb
    - num_bytes
    - verbose
    - caller
    argTypes:
    - bigNum
    - unsigned int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: assert_bn_ossl_num_bytes
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/ConsttimeUtils.h
    functionUses: 0
    functionsReached:
    - BN_free
    - assert_ossl_num_bytes
    - BIG_INITIALIZED
    linkageType: ''
    returnType: void
    signature: "void assert_bn_ossl_num_bytes(bigNum tpmb,\n                                            unsigned
      int num_bytes,\n                                            int verbose,\n                                            const
      char *caller)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExtMath_SizeInBits
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:90,1
    - Dst: ExtMath_MaskBits
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:92,1
    - Dst: ExtMath_SetBit
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:94,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bnX
    - bnN
    argTypes:
    - Crypt_Int*
    - Crypt_Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: avf1
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c
    functionUses: 0
    functionsReached:
    - FAIL
    - ExtMath_SetBit
    - ExtMath_MaskBits
    - ExtMath_SizeInBits
    linkageType: ''
    returnType: BOOL
    signature: "BOOL avf1(Crypt_Int* bnX,  // IN/OUT: the reduced value\n                 Crypt_Int*
      bnN   // IN: the order of the curve\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_CURVE_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:121,1
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:122,1
    - Dst: CRYPT_POINT_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:123,1
    - Dst: CRYPT_POINT_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:124,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:125,1
    - Dst: CRYPT_ECC_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:126,1
    - Dst: CRYPT_ECC_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:127,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:128,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:129,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:134,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:135,1
    - Dst: TpmEcc_PointMult
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:145,1
    - Dst: ExtEcc_CurveGetG
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:145,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:153,1
    - Dst: ExtEcc_PointX
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:153,1
    - Dst: avf1
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:154,1
    - Dst: ExtMath_ModMult
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:156,1
    - Dst: ExtMath_Add
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:158,1
    - Dst: ExtMath_Mod
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:159,1
    - Dst: ExtMath_IsEqualWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:164,1
    - Dst: ExtEcc_CurveGetCofactor
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:164,1
    - Dst: ExtMath_ModMult
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:166,1
    - Dst: ExtEcc_CurveGetCofactor
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:168,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:169,1
    - Dst: avf1
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:175,1
    - Dst: TpmEcc_PointMult
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:178,1
    - Dst: ExtEcc_PointAdd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:179,1
    - Dst: TpmEcc_PointMult
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:183,1
    - Dst: ExtEcc_IsInfinityPoint
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:184,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:185,1
    - Dst: TpmEcc_PointTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:187,1
    - Dst: CRYPT_CURVE_FREE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:190,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 6
    argNames:
    - outZ
    - curveId
    - dsA
    - deA
    - QsB
    - QeB
    argTypes:
    - TPMS_ECC_POINT*
    - TPM_ECC_CURVE
    - TPM2B_ECC_PARAMETER*
    - TPM2B_ECC_PARAMETER*
    - TPMS_ECC_POINT*
    - TPMS_ECC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 113
    functionDepth: 5
    functionLinenumber: 113
    functionLinenumberEnd: 192
    functionName: C_2_2_MQV
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c
    functionUses: 0
    functionsReached:
    - ExtMath_Add
    - CRYPT_POINT_INITIALIZED
    - pAssert
    - CRYPT_ECC_NUM
    - ExtEcc_CurveGetG
    - CRYPT_POINT_VAR
    - CRYPT_CURVE_INITIALIZED
    - ExtEcc_IsInfinityPoint
    - ExtMath_Copy
    - ExtEcc_CurveGetOrder
    - ExtEcc_PointAdd
    - ERROR_EXIT
    - ExtEcc_PointX
    - ExtMath_Mod
    - CRYPT_CURVE_FREE
    - TpmEcc_PointTo2B
    - ExtMath_IsEqualWord
    - ExtMath_ModMult
    - ExtEcc_CurveGetCofactor
    - CRYPT_ECC_INITIALIZED
    - TpmEcc_PointMult
    - avf1
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC C_2_2_MQV(TPMS_ECC_POINT* outZ,   // OUT: the computed point\n
      \                       TPM_ECC_CURVE curveId,  // IN: the curve for the computations\n
      \                       TPM2B_ECC_PARAMETER* dsA,  // IN: static private TPM
      key\n                        TPM2B_ECC_PARAMETER* deA,  // IN: ephemeral private
      TPM key\n                        TPMS_ECC_POINT*      QsB,  // IN: static public
      party B key\n                        TPMS_ECC_POINT*      QeB   // IN: ephemeral
      public party B key\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_CURVE_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:209,1
    - Dst: CRYPT_ECC_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:210,1
    - Dst: CRYPT_ECC_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:211,1
    - Dst: CRYPT_POINT_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:212,1
    - Dst: CRYPT_POINT_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:213,1
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:214,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:219,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:220,1
    - Dst: TpmEcc_PointMult
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:224,1
    - Dst: TpmEcc_PointTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:228,1
    - Dst: TpmEcc_PointMult
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:230,1
    - Dst: TpmEcc_PointTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:232,1
    - Dst: CRYPT_CURVE_FREE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:235,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 7
    argNames:
    - outZs
    - outZe
    - curveId
    - dsA
    - deA
    - QsB
    - QeB
    argTypes:
    - TPMS_ECC_POINT*
    - TPMS_ECC_POINT*
    - TPM_ECC_CURVE
    - TPM2B_ECC_PARAMETER*
    - TPM2B_ECC_PARAMETER*
    - TPMS_ECC_POINT*
    - TPMS_ECC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 237
    functionName: C_2_2_ECDH
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c
    functionUses: 0
    functionsReached:
    - CRYPT_ECC_INITIALIZED
    - TpmEcc_PointTo2B
    - CRYPT_POINT_INITIALIZED
    - pAssert
    - ERROR_EXIT
    - TpmEcc_PointMult
    - CRYPT_CURVE_FREE
    - CRYPT_POINT_VAR
    - CRYPT_CURVE_INITIALIZED
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC C_2_2_ECDH(TPMS_ECC_POINT* outZs,  // OUT: Zs\n                         TPMS_ECC_POINT*
      outZe,  // OUT: Ze\n                         TPM_ECC_CURVE curveId,  // IN:
      the curve for the computations\n                         TPM2B_ECC_PARAMETER*
      dsA,  // IN: static private TPM key\n                         TPM2B_ECC_PARAMETER*
      deA,  // IN: ephemeral private TPM key\n                         TPMS_ECC_POINT*
      \     QsB,  // IN: static public party B key\n                         TPMS_ECC_POINT*
      \     QeB  // IN: ephemeral public party B key\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:255,1
    - Dst: C_2_2_ECDH
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:270,1
    - Dst: C_2_2_MQV
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:274,1
    - Dst: SM2KeyExchange
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:279,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 8
    argNames:
    - outZ1
    - outZ2
    - curveId
    - scheme
    - dsA
    - deA
    - QsB
    - QeB
    argTypes:
    - TPMS_ECC_POINT*
    - TPMS_ECC_POINT*
    - TPM_ECC_CURVE
    - TPM_ALG_ID
    - TPM2B_ECC_PARAMETER*
    - TPM2B_ECC_PARAMETER*
    - TPMS_ECC_POINT*
    - TPMS_ECC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 244
    functionDepth: 6
    functionLinenumber: 244
    functionLinenumberEnd: 285
    functionName: CryptEcc2PhaseKeyExchange
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c
    functionUses: 1
    functionsReached:
    - pAssert
    - C_2_2_ECDH
    - C_2_2_MQV
    - SM2KeyExchange
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptEcc2PhaseKeyExchange(\n    TPMS_ECC_POINT*      outZ1,
      \   // OUT: a computed point\n    TPMS_ECC_POINT*      outZ2,    // OUT: and
      optional second point\n    TPM_ECC_CURVE        curveId,  // IN: the curve for
      the computations\n    TPM_ALG_ID           scheme,   // IN: the key exchange
      scheme\n    TPM2B_ECC_PARAMETER* dsA,      // IN: static private TPM key\n    TPM2B_ECC_PARAMETER*
      deA,      // IN: ephemeral private TPM key\n    TPMS_ECC_POINT*      QsB,      //
      IN: static public party B key\n    TPMS_ECC_POINT*      QeB       // IN: ephemeral
      public party B key\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExtMath_MostSigBitNum
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:294,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curveId
    argTypes:
    - TPM_ECC_CURVE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: ComputeWForSM2
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c
    functionUses: 0
    functionsReached:
    - ExtEcc_CurveGetOrder
    - ExtMath_MostSigBitNum
    linkageType: ''
    returnType: UINT32
    signature: UINT32 ComputeWForSM2(TPM_ECC_CURVE curveId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExtMath_MaskBits
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:312,1
    - Dst: ExtMath_SetBit
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:315,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - bn
    - w
    argTypes:
    - Crypt_Int*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 320
    functionName: avfSm2
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c
    functionUses: 0
    functionsReached:
    - FAIL
    - ExtMath_SetBit
    - ExtMath_MaskBits
    linkageType: ''
    returnType: Crypt_Int
    signature: "Crypt_Int * avfSm2(Crypt_Int* bn,  // IN/OUT: the reduced value\n
      \                        UINT32     w    // IN: the value of w\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_CURVE_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:344,1
    - Dst: CRYPT_ECC_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:345,1
    - Dst: CRYPT_ECC_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:346,1
    - Dst: CRYPT_POINT_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:347,1
    - Dst: CRYPT_POINT_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:348,1
    - Dst: CRYPT_INT_WORD_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:349,1
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:350,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:351,1
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:352,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:353,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:354,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:360,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:361,1
    - Dst: ComputeWForSM2
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:364,1
    - Dst: ExtEcc_PointMultiply
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:367,1
    - Dst: ExtEcc_CurveGetG
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:367,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:374,1
    - Dst: ExtEcc_PointX
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:374,1
    - Dst: ExtMath_Multiply
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:375,1
    - Dst: avfSm2
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:375,1
    - Dst: ExtMath_Add
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:377,1
    - Dst: ExtMath_Mod
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:378,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:378,1
    - Dst: ExtMath_IsEqualWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:383,1
    - Dst: ExtEcc_CurveGetCofactor
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:383,1
    - Dst: ExtMath_ModMult
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:385,1
    - Dst: ExtEcc_CurveGetCofactor
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:386,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:386,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:389,1
    - Dst: ExtEcc_PointX
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:389,1
    - Dst: ExtEcc_PointMultiplyAndAdd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:390,1
    - Dst: avfSm2
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:390,1
    - Dst: ExtEcc_PointMultiply
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:393,1
    - Dst: TpmEcc_PointTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:396,1
    - Dst: CRYPT_CURVE_FREE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c:399,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 6
    argNames:
    - outZ
    - curveId
    - dsAIn
    - deAIn
    - QsBIn
    - QeBIn
    argTypes:
    - TPMS_ECC_POINT*
    - TPM_ECC_CURVE
    - TPM2B_ECC_PARAMETER*
    - TPM2B_ECC_PARAMETER*
    - TPMS_ECC_POINT*
    - TPMS_ECC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 335
    functionDepth: 4
    functionLinenumber: 335
    functionLinenumberEnd: 401
    functionName: SM2KeyExchange
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c
    functionUses: 1
    functionsReached:
    - CRYPT_INT_WORD_INITIALIZED
    - ExtMath_Add
    - ExtEcc_PointMultiply
    - CRYPT_POINT_INITIALIZED
    - pAssert
    - avfSm2
    - CRYPT_ECC_NUM
    - ExtEcc_CurveGetG
    - CRYPT_POINT_VAR
    - CRYPT_CURVE_INITIALIZED
    - ExtMath_Copy
    - ExtEcc_CurveGetOrder
    - ComputeWForSM2
    - ERROR_EXIT
    - ExtEcc_PointX
    - ExtMath_Mod
    - CRYPT_CURVE_FREE
    - ExtMath_Multiply
    - TpmEcc_PointTo2B
    - ExtMath_IsEqualWord
    - ExtMath_ModMult
    - ExtEcc_CurveGetCofactor
    - CRYPT_ECC_INITIALIZED
    - ExtEcc_PointMultiplyAndAdd
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT SM2KeyExchange(\n    TPMS_ECC_POINT*      outZ,     //
      OUT: the computed point\n    TPM_ECC_CURVE        curveId,  // IN: the curve
      for the computations\n    TPM2B_ECC_PARAMETER* dsAIn,    // IN: static private
      TPM key\n    TPM2B_ECC_PARAMETER* deAIn,    // IN: ephemeral private TPM key\n
      \   TPMS_ECC_POINT*      QsBIn,    // IN: static public party B key\n    TPMS_ECC_POINT*
      \     QeBIn     // IN: ephemeral public party B key\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - key
    - scheme
    argTypes:
    - OBJECT*
    - TPMT_KDF_SCHEME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: CryptEccSelectScheme
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: "BOOL CryptEccSelectScheme(OBJECT*          key,    //IN: key containing
      default scheme\n                          TPMT_KDF_SCHEME* scheme  // IN: a
      decrypt scheme\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_CURVE_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:113,1
    - Dst: CRYPT_POINT_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:114,1
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:115,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:117,1
    - Dst: TPM2B_TYPE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:118,1
    - Dst: RND_DEBUG_Instantiate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:131,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:138,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:140,1
    - Dst: TpmEcc_GenerateKeyPair
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:142,1
    - Dst: TpmEcc_PointTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:144,1
    - Dst: TpmEcc_PointMult
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:146,1
    - Dst: TpmEcc_PointTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:147,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:148,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:151,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:152,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:153,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:154,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:155,1
    - Dst: CryptHashEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:156,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:158,1
    - Dst: MemoryConcat2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:159,1
    - Dst: CryptMGF_KDF
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:161,1
    - Dst: CRYPT_CURVE_FREE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:171,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 6
    argNames:
    - key
    - scheme
    - plainText
    - c1
    - c2
    - c3
    argTypes:
    - OBJECT*
    - TPMT_KDF_SCHEME*
    - TPM2B_MAX_BUFFER*
    - TPMS_ECC_POINT*
    - TPM2B_MAX_BUFFER*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 173
    functionName: CryptEccEncrypt
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c
    functionUses: 1
    functionsReached:
    - CryptMGF_KDF
    - TpmEcc_PointTo2B
    - CryptDigestUpdate2B
    - CRYPT_POINT_INITIALIZED
    - MemoryConcat2B
    - TpmEcc_GenerateKeyPair
    - CryptHashStart
    - ERROR_EXIT
    - CRYPT_ECC_NUM
    - MemoryCopy2B
    - RND_DEBUG_Instantiate
    - TpmEcc_PointMult
    - CRYPT_CURVE_FREE
    - CryptHashEnd
    - CRYPT_POINT_VAR
    - CRYPT_CURVE_INITIALIZED
    - TPM2B_TYPE
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptEccEncrypt(\n    OBJECT*           key,        //
      IN: public key of recipient\n    TPMT_KDF_SCHEME*  scheme,     // IN: scheme
      to use.\n    TPM2B_MAX_BUFFER* plainText,  // IN: the text to obfuscate\n    TPMS_ECC_POINT*
      \  c1,         // OUT: public ephemeral key\n    TPM2B_MAX_BUFFER* c2,         //
      OUT: obfuscated text\n    TPM2B_DIGEST*     c3          // OUT: digest of ephemeral
      key\n                                  //      and plainText\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_CURVE_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:193,1
    - Dst: CRYPT_ECC_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:194,1
    - Dst: CRYPT_POINT_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:195,1
    - Dst: TPM2B_TYPE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:197,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:205,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:207,1
    - Dst: TpmEcc_PointMult
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:209,1
    - Dst: TpmEcc_PointTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:210,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:213,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:214,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:215,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:217,1
    - Dst: MemoryConcat2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:218,1
    - Dst: CryptMGF_KDF
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:221,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:232,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:233,1
    - Dst: CryptHashEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:234,1
    - Dst: MemoryEqual2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:235,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:236,1
    - Dst: CRYPT_CURVE_FREE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c:238,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 6
    argNames:
    - key
    - scheme
    - plainText
    - c1
    - c2
    - c3
    argTypes:
    - OBJECT*
    - TPMT_KDF_SCHEME*
    - TPM2B_MAX_BUFFER*
    - TPMS_ECC_POINT*
    - TPM2B_MAX_BUFFER*
    - TPM2B_DIGEST*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 240
    functionName: CryptEccDecrypt
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c
    functionUses: 1
    functionsReached:
    - CryptMGF_KDF
    - CRYPT_ECC_INITIALIZED
    - TpmEcc_PointTo2B
    - CryptDigestUpdate2B
    - MemoryEqual2B
    - CRYPT_POINT_INITIALIZED
    - MemoryConcat2B
    - CryptHashStart
    - ERROR_EXIT
    - MemoryCopy2B
    - TpmEcc_PointMult
    - CRYPT_CURVE_FREE
    - CryptHashEnd
    - CRYPT_CURVE_INITIALIZED
    - TPM2B_TYPE
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptEccDecrypt(\n    OBJECT*           key,        //
      IN: key used for data recovery\n    TPMT_KDF_SCHEME*  scheme,     // IN: scheme
      to use.\n    TPM2B_MAX_BUFFER* plainText,  // OUT: the recovered text\n    TPMS_ECC_POINT*
      \  c1,         // IN: public ephemeral key\n    TPM2B_MAX_BUFFER* c2,         //
      IN: obfuscated text\n    TPM2B_DIGEST*     c3          // IN: digest of ephemeral
      key\n                                  //      and plainText\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - maxage
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: ExpDCacheIncrementAge
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void ExpDCacheIncrementAge(unsigned maxage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:103,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:104,1
    - Dst: BN_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:105,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:106,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:107,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - dce
    argTypes:
    - struct ExpDCacheEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 109
    functionName: ExpDCacheEntryFree
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c
    functionUses: 0
    functionsReached:
    - BN_free
    - BN_clear_free
    - memset
    linkageType: ''
    returnType: void
    signature: void ExpDCacheEntryFree(struct ExpDCacheEntry *dce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:115,1
    - Dst: ExpDCacheEntryFree
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: ExpDCacheFree
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - ExpDCacheEntryFree
    linkageType: ''
    returnType: void
    signature: void ExpDCacheFree(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:128,1
    - Dst: ExpDCacheEntryFree
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 145
    functionName: ExpDCacheEntryGet
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - ExpDCacheEntryFree
    linkageType: ''
    returnType: struct ExpDCacheEntry
    signature: struct ExpDCacheEntry *ExpDCacheEntryGet(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExpDCacheEntryGet
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:151,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:154,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:155,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:156,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:157,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:158,1
    - Dst: ExpDCacheEntryFree
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:161,1
    - Dst: ExpDCacheIncrementAge
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 5
    argNames:
    - P
    - N
    - E
    - Q
    - D
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 164
    functionName: ExpDCacheAdd
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c
    functionUses: 1
    functionsReached:
    - BN_dup
    - ExpDCacheIncrementAge
    - ExpDCacheEntryFree
    - ExpDCacheEntryGet
    linkageType: ''
    returnType: void
    signature: "void ExpDCacheAdd(const BIGNUM *P, const BIGNUM *N, const BIGNUM *E,\n
      \                 const BIGNUM *Q, const BIGNUM *D)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:172,1
    - Dst: BN_cmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:173,1
    - Dst: BN_cmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:173,1
    - Dst: BN_cmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:174,1
    - Dst: ExpDCacheIncrementAge
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:182,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:184,1
    - Dst: BN_dup
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:187,1
    - Dst: BN_clear_free
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:189,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:193,1
    - Dst: BN_set_flags
      Src: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - P
    - N
    - E
    - Q
    argTypes:
    - BIGNUM*
    - BIGNUM*
    - BIGNUM*
    - BIGNUM**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 200
    functionName: ExpDCacheFind
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c
    functionUses: 1
    functionsReached:
    - BN_cmp
    - ExpDCacheIncrementAge
    - BN_clear_free
    - BN_set_flags
    - ARRAY_SIZE
    - BN_dup
    linkageType: ''
    returnType: BIGNUM
    signature: BIGNUM *ExpDCacheFind(const BIGNUM *P, const BIGNUM *N, const BIGNUM
      *E, BIGNUM **Q)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:90,1
    - Dst: CryptGetSymmetricBlockSize
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:94,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:95,1
    - Dst: MemoryCopy2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - state
    - keyParms
    - macAlg
    - key
    argTypes:
    - SMAC_STATE*
    - TPMU_PUBLIC_PARMS*
    - TPM_ALG_ID
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 102
    functionName: CryptCmacStart
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c
    functionUses: 0
    functionsReached:
    - CryptGetSymmetricBlockSize
    - MemorySet
    - pAssert
    - MemoryCopy2B
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 CryptCmacStart(\n    SMAC_STATE* state, TPMU_PUBLIC_PARMS*
      keyParms, TPM_ALG_ID macAlg, TPM2B* key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:121,1
    - Dst: FOR_EACH_SYM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:125,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:127,1
    - Dst: ENCRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:133,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - state
    - size
    - buffer
    argTypes:
    - SMAC_STATES*
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 142
    functionName: CryptCmacData
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c
    functionUses: 0
    functionsReached:
    - FAIL
    - ENCRYPT
    - FOR_EACH_SYM
    - memset
    linkageType: ''
    returnType: void
    signature: void CryptCmacData(SMAC_STATES* state, UINT32 size, const BYTE* buffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:162,1
    - Dst: FOR_EACH_SYM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:168,1
    - Dst: ENCRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:172,1
    - Dst: ShiftLeft
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:176,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:180,1
    - Dst: ShiftLeft
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:190,1
    - Dst: MUST_BE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:191,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:192,1
    - Dst: ENCRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:199,1
    - Dst: MIN
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:200,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - state
    - outSize
    - outBuffer
    argTypes:
    - SMAC_STATES*
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 204
    functionName: CryptCmacEnd
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c
    functionUses: 0
    functionsReached:
    - MemoryCopy
    - FOR_EACH_SYM
    - pAssert
    - memset
    - MIN
    - ShiftLeft
    - MUST_BE
    - ENCRYPT
    linkageType: ''
    returnType: UINT16
    signature: UINT16 CryptCmacEnd(SMAC_STATES* state, UINT32 outSize, BYTE* outBuffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DRBG_GetSeedCompatLevel
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - requestedPrimes
    - rand
    argTypes:
    - uint32_t
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: RsaAdjustPrimeLimit
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
    functionUses: 0
    functionsReached:
    - DRBG_GetSeedCompatLevel
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT RsaAdjustPrimeLimit(uint32_t requestedPrimes,\t\t// libtpms
      changed\n                                    RAND_STATE* rand)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - lastPrime
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: RsaNextPrime
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT RsaNextPrime(uint32_t lastPrime)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: BitsInByte
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BitsInByte(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: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: BitsInByte
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BitsInByte(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BitsInByte
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - aSize
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 204
    functionName: BitsInArray
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
    functionUses: 0
    functionsReached:
    - BitsInByte
    linkageType: ''
    returnType: int
    signature: "int BitsInArray(const unsigned char* a,  // IN: A pointer to an array
      of bytes\n                       unsigned int         aSize  // IN: the number
      of bytes to sum\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BitsInByte
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:229,1
    - Dst: BitsInByte
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:236,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - aSize
    - a
    - n
    argTypes:
    - UINT16
    - BYTE*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 241
    functionName: FindNthSetBit
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
    functionUses: 0
    functionsReached:
    - BitsInByte
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT FindNthSetBit(\n    const UINT16 aSize,  // IN: the size
      of the array to check\n    const BYTE*  a,      // IN: the array to check\n
      \   const UINT32 n       // IN, the number of the SET bit\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:293,1
    - Dst: ExtMath_ModWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:298,1
    - Dst: ExtMath_SubtractWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:304,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:310,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:313,1
    - Dst: NEXT_PRIME
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:321,1
    - Dst: NEXT_PRIME
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:328,1
    - Dst: ExtMath_ModWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:335,1
    - Dst: ClearBit
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:381,1
    - Dst: FAIL_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:389,1
    - Dst: BitsInArray
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:396,1
    - Dst: INSTRUMENT_INC
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:399,1
    - Dst: INSTRUMENT_ADD
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:400,1
    - Dst: INSTRUMENT_ADD
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:401,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 3
    argNames:
    - bnN
    - fieldSize
    - field
    argTypes:
    - Crypt_Int*
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 403
    functionName: PrimeSieve
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
    functionUses: 0
    functionsReached:
    - ClearBit
    - memcpy
    - pAssert
    - INSTRUMENT_ADD
    - BitsInArray
    - ExtMath_ModWord
    - INSTRUMENT_INC
    - ExtMath_SubtractWord
    - FAIL_EXIT
    - NEXT_PRIME
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT PrimeSieve(Crypt_Int* bnN,    // IN/OUT: number to sieve\n
      \                            UINT32 fieldSize,  // IN: size of the field area
      in bytes\n                             BYTE*  field       // IN: field\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - iter
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: NEXT_PRIME
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT_PRIME(iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - newFieldSize
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 417
    functionName: SetFieldSize
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT SetFieldSize(uint32_t newFieldSize)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_PRIME_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:443,1
    - Dst: ExtMath_SizeInBits
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:456,1
    - Dst: RsaAdjustPrimeLimit
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:460,1
    - Dst: RsaAdjustPrimeLimit
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:464,1
    - Dst: RsaAdjustPrimeLimit
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:468,1
    - Dst: ExtMath_GetLeastSignificant32bits
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:473,1
    - Dst: PrimeSieve
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:477,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:482,1
    - Dst: FindNthSetBit
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:486,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:489,1
    - Dst: ExtMath_AddWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:492,1
    - Dst: ExtMath_ModWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:497,1
    - Dst: MillerRabin
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:498,1
    - Dst: ExtMath_Copy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:500,1
    - Dst: ClearBit
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:504,1
    - Dst: INSTRUMENT_INC
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:507,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - candidate
    - e
    - rand
    argTypes:
    - Crypt_Int*
    - UINT32
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 434
    functionDepth: 5
    functionLinenumber: 434
    functionLinenumberEnd: 510
    functionName: PrimeSelectWithSieve
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
    functionUses: 1
    functionsReached:
    - ExtMath_Copy
    - ClearBit
    - RsaAdjustPrimeLimit
    - ExtMath_AddWord
    - PrimeSieve
    - pAssert
    - ExtMath_ModWord
    - FindNthSetBit
    - INSTRUMENT_INC
    - MillerRabin
    - ExtMath_SizeInBits
    - FAIL
    - CRYPT_PRIME_VAR
    - ExtMath_GetLeastSignificant32bits
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT PrimeSelectWithSieve(\n    Crypt_Int*  candidate,  // IN/OUT:
      The candidate to filter\n    UINT32      e,          // IN: the exponent\n    RAND_STATE*
      rand        // IN: the random number generator state\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - UINT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 520
    functionName: PrintTuple
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
    functionUses: 0
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: char
    signature: char * PrintTuple(UINT32* i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 523
    functionName: CLEAR_VALUE
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_VALUE(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:532,1
    - Dst: PrintTuple
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:532,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:533,1
    - Dst: PrintTuple
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:533,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:534,1
    - Dst: PrintTuple
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:534,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:535,1
    - Dst: PrintTuple
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:536,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:541,1
    - Dst: PrintTuple
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:541,1
    - Dst: printf
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:545,1
    - Dst: CLEAR_VALUE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:547,1
    - Dst: CLEAR_VALUE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:548,1
    - Dst: CLEAR_VALUE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:549,1
    - Dst: CLEAR_VALUE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:550,1
    - Dst: CLEAR_VALUE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:551,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 552
    functionName: RsaSimulationEnd
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
    functionUses: 1
    functionsReached:
    - CLEAR_VALUE
    - printf
    - PrintTuple
    linkageType: ''
    returnType: void
    signature: void RsaSimulationEnd(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_VALUE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:569,1
    - Dst: CLEAR_VALUE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:570,1
    - Dst: CLEAR_VALUE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:571,1
    - Dst: CLEAR_VALUE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:572,1
    - Dst: CLEAR_VALUE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - trials
    - emptyFields
    - averageBits
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 574
    functionName: GetSieveStats
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
    functionUses: 0
    functionsReached:
    - CLEAR_VALUE
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT GetSieveStats(\n    uint32_t* trials, uint32_t* emptyFields,
      uint32_t* averageBits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 587
    functionName: RsaSimulationEnd
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RsaSimulationEnd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HASH
    - ','
    - Hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: HASH_DEF_ENTRY
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_DEF_ENTRY(HASH, Hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LibHashInit
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: CryptHashInit
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 1
    functionsReached:
    - LibHashInit
    linkageType: ''
    returnType: BOOL
    signature: BOOL CryptHashInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: CryptHashStartup
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL CryptHashStartup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FOR_EACH_HASH
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hashAlg
    argTypes:
    - TPM_ALG_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 132
    functionName: CryptGetHashDef
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 4
    functionsReached:
    - FOR_EACH_HASH
    linkageType: ''
    returnType: PHASH_DEF
    signature: PHASH_DEF CryptGetHashDef(TPM_ALG_ID hashAlg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - HASH
    - ','
    - Hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: GET_DEF
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_DEF(HASH, Hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetHashDef
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - hashAlg
    - isAlgNullValid
    argTypes:
    - TPM_ALG_ID
    - BOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: CryptHashIsValidAlg
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 3
    functionsReached:
    - CryptGetHashDef
    linkageType: ''
    returnType: BOOL
    signature: "BOOL CryptHashIsValidAlg(TPM_ALG_ID hashAlg,  // IN: the algorithm
      to check\n                         BOOL       isAlgNullValid  // IN: TRUE if
      TPM_ALG_NULL is to be treated\n                                          //
      \    as a valid hash\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 169
    functionName: CryptHashGetAlgByIndex
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: 'LIB_EXPORT CryptHashGetAlgByIndex(UINT32 index  // IN: the index

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetHashDef
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hashAlg
    argTypes:
    - TPM_ALG_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: CryptHashGetDigestSize
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 67
    functionsReached:
    - CryptGetHashDef
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptHashGetDigestSize(\n    TPM_ALG_ID hashAlg  // IN:
      hash algorithm to look up\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetHashDef
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hashAlg
    argTypes:
    - TPM_ALG_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: CryptHashGetBlockSize
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 3
    functionsReached:
    - CryptGetHashDef
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptHashGetBlockSize(\n    TPM_ALG_ID hashAlg  // IN:
      hash algorithm to look up\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetHashDef
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hashAlg
    argTypes:
    - TPM_ALG_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: CryptHashGetOid
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 0
    functionsReached:
    - CryptGetHashDef
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT * CryptHashGetOid(TPM_ALG_ID hashAlg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - PHASH_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: CryptHashGetContextAlg
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TPM_ALG_ID
    signature: 'TPM_ALG_ID CryptHashGetContextAlg(PHASH_STATE state  // IN: the context
      to check

      )'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:229,1
    - Dst: HASH_STATE_COPY
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - HASH_STATE*
    - HASH_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 243
    functionName: CryptHashCopyState
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 0
    functionsReached:
    - pAssert
    - HASH_STATE_COPY
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptHashCopyState(HASH_STATE* out,  // OUT: destination
      of the state\n                                   const HASH_STATE* in  // IN:
      source of the state\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MUST_BE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:258,1
    - Dst: CopyToOffset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:266,1
    - Dst: CopyToOffset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:267,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:271,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:278,1
    - Dst: HASH_STATE_EXPORT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - internalFmt
    - externalFmt
    argTypes:
    - PCHASH_STATE
    - PEXPORT_HASH_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 284
    functionName: CryptHashExportState
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 1
    functionsReached:
    - MUST_BE
    - CopyToOffset
    - memcpy
    - HASH_STATE_EXPORT
    linkageType: ''
    returnType: void
    signature: "void CryptHashExportState(\n    PCHASH_STATE internalFmt,       //
      IN: the hash state formatted for use by\n                                    //
      \    library\n    PEXPORT_HASH_STATE externalFmt  // OUT: the exported hash
      state\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: CopyToOffset
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CopyToOffset(value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CopyFromOffset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:305,1
    - Dst: CopyFromOffset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:306,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:312,1
    - Dst: CryptGetHashDef
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:316,1
    - Dst: HASH_STATE_IMPORT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:317,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - internalFmt
    - externalFmt
    argTypes:
    - PHASH_STATE
    - PCEXPORT_HASH_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 326
    functionName: CryptHashImportState
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 1
    functionsReached:
    - CopyFromOffset
    - CryptGetHashDef
    - HASH_STATE_IMPORT
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void CryptHashImportState(\n    PHASH_STATE internalFmt,         //
      OUT: the hash state formatted for use by\n                                     //
      \    the library\n    PCEXPORT_HASH_STATE externalFmt  // IN: the exported hash
      state\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 302
    functionName: CopyFromOffset
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CopyFromOffset(value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetHashDef
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:345,1
    - Dst: MIN
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:347,1
    - Dst: HASH_END
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:349,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - hashState
    - dOutSize
    - dOut
    argTypes:
    - PHASH_STATE
    - UINT32
    - PBYTE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 357
    functionName: HashEnd
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 14
    functionsReached:
    - memcpy
    - MIN
    - CryptGetHashDef
    - HASH_END
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 HashEnd(PHASH_STATE hashState,  // IN: the hash state\n                      UINT32
      \     dOutSize,   // IN: the size of receive buffer\n                      PBYTE
      \      dOut        // OUT: the receive buffer\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:381,1
    - Dst: CryptGetHashDef
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:390,1
    - Dst: HASH_START
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - hashState
    - hashAlg
    argTypes:
    - PHASH_STATE
    - TPM_ALG_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 397
    functionName: CryptHashStart
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 47
    functionsReached:
    - HASH_START
    - TPM_DO_SELF_TEST
    - CryptGetHashDef
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptHashStart(\n    PHASH_STATE hashState,  // OUT: the
      running hash state\n    TPM_ALG_ID  hashAlg     // IN: hash algorithm\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HASH_DATA
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - hashState
    - dataSize
    - data
    argTypes:
    - PHASH_STATE
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 421
    functionName: CryptDigestUpdate
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 21
    functionsReached:
    - HASH_DATA
    linkageType: ''
    returnType: void
    signature: "void CryptDigestUpdate(PHASH_STATE hashState,  // IN: the hash context
      information\n                       UINT32      dataSize,   // IN: the size
      of data to be added\n                       const BYTE* data        // IN: data
      to be hashed\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:436,1
    - Dst: HashEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hashState
    - dOutSize
    - dOut
    argTypes:
    - PHASH_STATE
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 438
    functionName: CryptHashEnd
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 13
    functionsReached:
    - pAssert
    - HashEnd
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptHashEnd(PHASH_STATE hashState,  // IN: the state of
      hash stack\n                               UINT32      dOutSize,   // IN: size
      of digest buffer\n                               BYTE*       dOut        //
      OUT: hash digest\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:456,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:457,1
    - Dst: HashEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hashAlg
    - dataSize
    - data
    - dOutSize
    - dOut
    argTypes:
    - TPM_ALG_ID
    - UINT32
    - BYTE*
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 459
    functionName: CryptHashBlock
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 8
    functionsReached:
    - HashEnd
    - CryptDigestUpdate
    - CryptHashStart
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptHashBlock(TPM_ALG_ID  hashAlg,   // IN: The hash algorithm\n
      \                                UINT32      dataSize,  // IN: size of buffer
      to hash\n                                 const BYTE* data,      // IN: the
      buffer to hash\n                                 UINT32 dOutSize,  // IN: size
      of the digest buffer\n                                 BYTE*  dOut       //
      OUT: digest buffer\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:474,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - state
    - bIn
    argTypes:
    - PHASH_STATE
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 477
    functionName: CryptDigestUpdate2B
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 48
    functionsReached:
    - pAssert
    - CryptDigestUpdate
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptDigestUpdate2B(PHASH_STATE  state,  // IN: the digest
      state\n                                    const TPM2B* bIn     // IN: 2B containing
      the data\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - state
    - digest
    argTypes:
    - PHASH_STATE
    - P2B
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 486
    functionDepth: 4
    functionLinenumber: 486
    functionLinenumberEnd: 493
    functionName: CryptHashEnd2B
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 36
    functionsReached:
    - CryptHashEnd
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptHashEnd2B(\n    PHASH_STATE state,  // IN: the hash
      state\n    P2B         digest  // IN: the size of the buffer Out: requested\n
      \                       //     number of bytes\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: REVERSE_ENDIAN_64
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:505,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - intSize
    - intValue
    argTypes:
    - void*
    - UINT32
    - UINT64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 508
    functionName: CryptDigestUpdateInt
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 27
    functionsReached:
    - CryptDigestUpdate
    - REVERSE_ENDIAN_64
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptDigestUpdateInt(\n    void*  state,    // IN: the
      state of hash stack\n    UINT32 intSize,  // IN: the size of 'intValue' in bytes\n
      \   UINT64 intValue  // IN: integer value to be hashed\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetHashDef
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:532,1
    - Dst: CryptHashBlock
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:540,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:545,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:562,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:563,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - state
    - hashAlg
    - keySize
    - key
    argTypes:
    - PHMAC_STATE
    - TPM_ALG_ID
    - UINT16
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 522
    functionDepth: 4
    functionLinenumber: 522
    functionLinenumberEnd: 575
    functionName: CryptHmacStart
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 2
    functionsReached:
    - memcpy
    - CryptGetHashDef
    - CryptHashStart
    - CryptDigestUpdate
    - CryptHashBlock
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptHmacStart(PHMAC_STATE state,    // IN/OUT: the state
      buffer\n                                 TPM_ALG_ID  hashAlg,  // IN: the algorithm
      to use\n                                 UINT16      keySize,  // IN: the size
      of the HMAC key\n                                 const BYTE* key       // IN:
      the HMAC key\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:597,1
    - Dst: CryptGetHashDef
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:598,1
    - Dst: HashEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:606,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:608,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:609,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:610,1
    - Dst: HashEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - state
    - dOutSize
    - dOut
    argTypes:
    - PHMAC_STATE
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 584
    functionDepth: 3
    functionLinenumber: 584
    functionLinenumberEnd: 613
    functionName: CryptHmacEnd
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 3
    functionsReached:
    - HashEnd
    - pAssert
    - CryptGetHashDef
    - CryptHashStart
    - CryptDigestUpdate
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptHmacEnd(PHMAC_STATE state,     // IN: the hash state
      buffer\n                               UINT32      dOutSize,  // IN: size of
      digest buffer\n                               BYTE*       dOut       // OUT:
      hash digest\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHmacStart
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hmacState
    - hashAlg
    - key
    argTypes:
    - PHMAC_STATE
    - TPMI_ALG_HASH
    - P2B
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 629
    functionDepth: 5
    functionLinenumber: 629
    functionLinenumberEnd: 637
    functionName: CryptHmacStart2B
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 11
    functionsReached:
    - CryptHmacStart
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptHmacStart2B(\n    PHMAC_STATE hmacState,  // OUT:
      the state of HMAC stack. It will be used\n                            //     in
      HMAC update and completion\n    TPMI_ALG_HASH hashAlg,  // IN: hash algorithm\n
      \   P2B           key       // IN: HMAC key\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHmacEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hmacState
    - digest
    argTypes:
    - PHMAC_STATE
    - P2B
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 644
    functionDepth: 4
    functionLinenumber: 644
    functionLinenumberEnd: 650
    functionName: CryptHmacEnd2B
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 11
    functionsReached:
    - CryptHmacEnd
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptHmacEnd2B(\n    PHMAC_STATE hmacState,  // IN: the
      state of HMAC stack\n    P2B         digest      // OUT: HMAC\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetHashDef
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:674,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:687,1
    - Dst: CryptDigestUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:688,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:689,1
    - Dst: CryptHashEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:691,1
    - Dst: MIN
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:691,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - mSize
    - mask
    - hashAlg
    - seedSize
    - seed
    - counter
    argTypes:
    - UINT32
    - BYTE*
    - TPM_ALG_ID
    - UINT32
    - BYTE*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 665
    functionDepth: 4
    functionLinenumber: 665
    functionLinenumberEnd: 695
    functionName: CryptMGF_KDF
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 6
    functionsReached:
    - CryptGetHashDef
    - CryptDigestUpdateInt
    - CryptHashStart
    - CryptDigestUpdate
    - MIN
    - CryptHashEnd
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptMGF_KDF(UINT32 mSize,  // IN: length of the mask to
      be produced\n                               BYTE*  mask,   // OUT: buffer to
      receive the mask\n                               TPM_ALG_ID hashAlg,   // IN:
      hash to use\n                               UINT32     seedSize,  // IN: size
      of the seed\n                               BYTE*      seed,      // IN: seed
      size\n                               UINT32     counter    // IN: counter initial
      value\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:740,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:742,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:744,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:754,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:760,1
    - Dst: CryptHmacStart
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:768,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:771,1
    - Dst: HASH_DATA
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:775,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:783,1
    - Dst: HASH_DATA
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:786,1
    - Dst: HASH_DATA
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:789,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:791,1
    - Dst: CryptHmacEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:794,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 9
    argNames:
    - hashAlg
    - key
    - label
    - contextU
    - contextV
    - sizeInBits
    - keyStream
    - counterInOut
    - blocks
    argTypes:
    - TPM_ALG_ID
    - TPM2B*
    - TPM2B*
    - TPM2B*
    - TPM2B*
    - UINT32
    - BYTE*
    - UINT32*
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 719
    functionDepth: 5
    functionLinenumber: 719
    functionLinenumberEnd: 803
    functionName: CryptKDFa
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 10
    functionsReached:
    - CryptHashGetDigestSize
    - HASH_DATA
    - BITS_TO_BYTES
    - pAssert
    - TPM_DO_SELF_TEST
    - CryptDigestUpdateInt
    - CryptHmacEnd
    - CryptHmacStart
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptKDFa(\n    TPM_ALG_ID   hashAlg,       // IN: hash
      algorithm used in HMAC\n    const TPM2B* key,           // IN: HMAC key\n    const
      TPM2B* label,         // IN: a label for the KDF\n    const TPM2B* contextU,
      \     // IN: context U\n    const TPM2B* contextV,      // IN: context V\n    UINT32
      \      sizeInBits,    // IN: size of generated key in bits\n    BYTE*        keyStream,
      \    // OUT: key buffer\n    UINT32*      counterInOut,  // IN/OUT: caller may
      provide the iteration\n                                //     counter for incremental
      operations to\n                                //     avoid large intermediate
      buffers.\n    UINT16 blocks               // IN: If non-zero, this is the maximum
      number\n                                //     of blocks to be returned, regardless\n
      \                               //     of sizeInBits\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CryptGetHashDef
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:829,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:836,1
    - Dst: CryptHashStart
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:862,1
    - Dst: CryptDigestUpdateInt
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:864,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:868,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:871,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:881,1
    - Dst: CryptDigestUpdate2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:885,1
    - Dst: CryptHashEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:889,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 7
    argNames:
    - hashAlg
    - Z
    - label
    - partyUInfo
    - partyVInfo
    - sizeInBits
    - keyStream
    argTypes:
    - TPM_ALG_ID
    - TPM2B*
    - TPM2B*
    - TPM2B*
    - TPM2B*
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 819
    functionDepth: 4
    functionLinenumber: 819
    functionLinenumberEnd: 897
    functionName: CryptKDFe
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 2
    functionsReached:
    - CryptDigestUpdate2B
    - pAssert
    - CryptGetHashDef
    - CryptDigestUpdateInt
    - CryptHashStart
    - CryptHashEnd
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptKDFe(TPM_ALG_ID   hashAlg,  // IN: hash algorithm
      used in HMAC\n                            TPM2B*       Z,        // IN: Z\n
      \                           const TPM2B* label,    // IN: a label value for
      the KDF\n                            TPM2B*       partyUInfo,  // IN: PartyUInfo\n
      \                           TPM2B*       partyVInfo,  // IN: PartyVInfo\n                            UINT32
      sizeInBits,  // IN: size of generated key in bits\n                            BYTE*
      \ keyStream    // OUT: key buffer\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSLCryptKDFe
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c:909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - hashAlg
    - Z
    - label
    - partyUInfo
    - partyVInfo
    - sizeInBits
    - keyStream
    argTypes:
    - TPM_ALG_ID
    - TPM2B*
    - TPM2B*
    - TPM2B*
    - TPM2B*
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 900
    functionDepth: 2
    functionLinenumber: 900
    functionLinenumberEnd: 911
    functionName: CryptKDFe
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
    functionUses: 3
    functionsReached:
    - OSSLCryptKDFe
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptKDFe(TPM_ALG_ID   hashAlg,  // IN: hash algorithm
      used in HMAC\n\t\t\t    TPM2B*       Z,        // IN: Z\n\t\t\t    const TPM2B*
      label,    // IN: a label value for the KDF\n\t\t\t    TPM2B*       partyUInfo,
      \ // IN: PartyUInfo\n\t\t\t    TPM2B*       partyVInfo,  // IN: PartyVInfo\n\t\t\t
      \   UINT32       sizeInBits,  // IN: size of generated key in bits\n\t\t\t    BYTE*
      \       keyStream    // OUT: key buffer\n\t\t\t    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - keySchedule
    - ','
    - in
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: SWIZZLE
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWIZZLE(keySchedule, in, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - key
    - ','
    - keySizeInBits
    - ','
    - schedule
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: TpmCryptSetEncryptKeyAES
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TpmCryptSetEncryptKeyAES(key, keySizeInBits, schedule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - key
    - ','
    - keySizeInBits
    - ','
    - schedule
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: TpmCryptSetDecryptKeyAES
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TpmCryptSetDecryptKeyAES(key, keySizeInBits, schedule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - key
    - ','
    - keySizeInBits
    - ','
    - schedule
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: TpmCryptSetEncryptKeyTDES
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TpmCryptSetEncryptKeyTDES(key, keySizeInBits, schedule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - key
    - ','
    - keySizeInBits
    - ','
    - schedule
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: TpmCryptSetDecryptKeyTDES
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TpmCryptSetDecryptKeyTDES(key, keySizeInBits, schedule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - key
    - ','
    - keySizeInBits
    - ','
    - schedule
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: TpmCryptSetEncryptKeySM4
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TpmCryptSetEncryptKeySM4(key, keySizeInBits, schedule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - key
    - ','
    - keySizeInBits
    - ','
    - schedule
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: TpmCryptSetDecryptKeySM4
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TpmCryptSetDecryptKeySM4(key, keySizeInBits, schedule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - key
    - ','
    - keySizeInBits
    - ','
    - schedule
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: TpmCryptSetEncryptKeyCAMELLIA
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TpmCryptSetEncryptKeyCAMELLIA(key, keySizeInBits, schedule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - key
    - ','
    - keySizeInBits
    - ','
    - schedule
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: TpmCryptSetDecryptKeyCAMELLIA
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TpmCryptSetDecryptKeyCAMELLIA(key, keySizeInBits, schedule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DRBG_ENCRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - dfState
    argTypes:
    - PDF_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 161
    functionName: DfCompute
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 0
    functionsReached:
    - DRBG_ENCRYPT
    linkageType: ''
    returnType: void
    signature: void DfCompute(PDF_STATE dfState)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:209,1
    - Dst: DRBG_ENCRYPT_SETUP
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:210,1
    - Dst: DfCompute
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:214,1
    - Dst: UINT32_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:217,1
    - Dst: UINT32_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:218,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dfState
    - inputLength
    argTypes:
    - PDF_STATE
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 221
    functionName: DfStart
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 0
    functionsReached:
    - UINT32_TO_BYTE_ARRAY
    - memcpy
    - memset
    - DfCompute
    - DRBG_ENCRYPT_SETUP
    linkageType: ''
    returnType: void
    signature: void DfStart(PDF_STATE dfState, uint32_t inputLength)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:234,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:241,1
    - Dst: DfCompute
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - dfState
    - size
    - data
    argTypes:
    - PDF_STATE
    - int
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 246
    functionName: DfUpdate
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 0
    functionsReached:
    - pAssert
    - DfCompute
    - memcpy
    linkageType: ''
    returnType: void
    signature: void DfUpdate(PDF_STATE dfState, int size, const BYTE* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DfCompute
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dfState
    argTypes:
    - PDF_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 264
    functionName: DfEnd
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 0
    functionsReached:
    - DfCompute
    linkageType: ''
    returnType: DRBG_SEED
    signature: DRBG_SEED * DfEnd(PDF_STATE dfState)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DfStart
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:278,1
    - Dst: DfUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:279,1
    - Dst: DfEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:280,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - output
    - size
    - buf
    argTypes:
    - DRBG_SEED*
    - int
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 283
    functionName: DfBuffer
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 0
    functionsReached:
    - DfStart
    - DfUpdate
    - memcpy
    - DfEnd
    linkageType: ''
    returnType: DRBG_SEED
    signature: "DRBG_SEED * DfBuffer(DRBG_SEED* output,  // OUT: receives the result\n
      \                          int        size,    // IN: size of the buffer to
      add\n                           BYTE*      buf      // IN: address of the buffer\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IsSelfTest
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:306,1
    - Dst: IsEntropyBad
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:311,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:315,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:316,1
    - Dst: IsEntropyBad
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:322,1
    - Dst: IsEntropyBad
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:328,1
    - Dst: _plat__GetEntropy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:331,1
    - Dst: SetEntropyBad
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:334,1
    - Dst: IsEntropyBad
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:338,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - requiredEntropy
    - entropy
    argTypes:
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 339
    functionName: DRBG_GetEntropy
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SetEntropyBad
    - pAssert
    - _plat__GetEntropy
    - IsSelfTest
    - IsEntropyBad
    linkageType: ''
    returnType: BOOL
    signature: "BOOL DRBG_GetEntropy(UINT32 requiredEntropy,  // IN: requested number
      of bytes of full\n                                              //     entropy\n
      \                    BYTE* entropy  // OUT: buffer to return collected entropy\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - iv
    argTypes:
    - DRBG_IV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 348
    functionName: IncrementIv
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IncrementIv(DRBG_IV* iv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:363,1
    - Dst: IncrementIv
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:378,1
    - Dst: DRBG_ENCRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:379,1
    - Dst: FAIL_BOOL
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:387,1
    - Dst: MIN
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:393,1
    - Dst: NOT_REFERENCED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:400,1
    - Dst: IncrementIv
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:405,1
    - Dst: DRBG_ENCRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:406,1
    - Dst: IncrementIv
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:414,1
    - Dst: DRBG_ENCRYPT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:415,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 5
    argNames:
    - dOut
    - dOutBytes
    - keySchedule
    - iv
    - lastValue
    argTypes:
    - BYTE*
    - UINT32
    - DRBG_KEY_SCHEDULE*
    - DRBG_IV*
    - UINT32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 421
    functionName: EncryptDRBG
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 0
    functionsReached:
    - NOT_REFERENCED
    - memcpy
    - FAIL_BOOL
    - DRBG_ENCRYPT
    - MIN
    - IncrementIv
    - RuntimeProfileRequiresAttributeFlags
    linkageType: ''
    returnType: BOOL
    signature: "BOOL EncryptDRBG(BYTE*              dOut,\n                        UINT32
      \            dOutBytes,\n                        DRBG_KEY_SCHEDULE* keySchedule,\n
      \                       DRBG_IV*           iv,\n                        UINT32*
      lastValue  // Points to the last output value\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pDRBG_KEY
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:444,1
    - Dst: pDRBG_IV
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:445,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:448,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:450,1
    - Dst: DRBG_ENCRYPT_SETUP
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:455,1
    - Dst: FAIL_BOOL
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:457,1
    - Dst: EncryptDRBG
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:463,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - drbgState
    - keySchedule
    - providedData
    argTypes:
    - DRBG_STATE*
    - DRBG_KEY_SCHEDULE*
    - DRBG_SEED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 436
    functionDepth: 3
    functionLinenumber: 436
    functionLinenumberEnd: 473
    functionName: DRBG_Update
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 0
    functionsReached:
    - pAssert
    - FAIL_BOOL
    - memset
    - EncryptDRBG
    - pDRBG_IV
    - DRBG_ENCRYPT_SETUP
    - pDRBG_KEY
    linkageType: ''
    returnType: BOOL
    signature: "BOOL DRBG_Update(\n    DRBG_STATE*        drbgState,    // IN:OUT
      state to update\n    DRBG_KEY_SCHEDULE* keySchedule,  // IN: the key schedule
      (optional)\n    DRBG_SEED*         providedData  // IN: additional data\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:490,1
    - Dst: DRBG_GetEntropy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:495,1
    - Dst: DRBG_Update
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - drbgState
    - providedEntropy
    - additionalData
    argTypes:
    - DRBG_STATE*
    - DRBG_SEED*
    - DRBG_SEED*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 483
    functionDepth: 4
    functionLinenumber: 483
    functionLinenumberEnd: 511
    functionName: DRBG_Reseed
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 0
    functionsReached:
    - DRBG_Update
    - pAssert
    - DRBG_GetEntropy
    linkageType: ''
    returnType: BOOL
    signature: "BOOL DRBG_Reseed(DRBG_STATE* drbgState,        // IN: the state to
      update\n                 DRBG_SEED*  providedEntropy,  // IN: entropy\n                 DRBG_SEED*
      \ additionalData    // IN:\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:527,1
    - Dst: IsSelfTest
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:527,1
    - Dst: SetSelfTest
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:529,1
    - Dst: SetDrbgTested
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:530,1
    - Dst: DRBG_Instantiate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:532,1
    - Dst: dbgDumpMemBlock
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:535,1
    - Dst: pDRBG_KEY
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:536,1
    - Dst: dbgDumpMemBlock
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:537,1
    - Dst: pDRBG_IV
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:538,1
    - Dst: DRBG_Generate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:540,1
    - Dst: dbgDumpMemBlock
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:543,1
    - Dst: pDRBG_KEY
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:544,1
    - Dst: dbgDumpMemBlock
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:545,1
    - Dst: pDRBG_IV
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:546,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:548,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:550,1
    - Dst: DRBG_Reseed
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:551,1
    - Dst: dbgDumpMemBlock
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:553,1
    - Dst: pDRBG_KEY
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:553,1
    - Dst: dbgDumpMemBlock
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:556,1
    - Dst: pDRBG_IV
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:556,1
    - Dst: dbgDumpMemBlock
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:559,1
    - Dst: DRBG_Generate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:561,1
    - Dst: memcmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:563,1
    - Dst: ClearSelfTest
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:565,1
    - Dst: DRBG_Uninstantiate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:567,1
    - Dst: SetEntropyBad
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:575,1
    - Dst: DRBG_Instantiate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:576,1
    - Dst: ClearEntropyBad
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:578,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 519
    functionDepth: 5
    functionLinenumber: 519
    functionLinenumberEnd: 581
    functionName: DRBG_SelfTest
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 0
    functionsReached:
    - SetSelfTest
    - dbgDumpMemBlock
    - memcpy
    - SetDrbgTested
    - SetEntropyBad
    - pAssert
    - DRBG_Reseed
    - DRBG_Instantiate
    - DRBG_Generate
    - memcmp
    - DRBG_Uninstantiate
    - pDRBG_IV
    - ClearSelfTest
    - IsSelfTest
    - pDRBG_KEY
    - ClearEntropyBad
    linkageType: ''
    returnType: BOOL
    signature: BOOL DRBG_SelfTest(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DRBG_GetEntropy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:601,1
    - Dst: DRBG_Reseed
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:604,1
    - Dst: DfBuffer
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:606,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:623,1
    - Dst: memcpy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:624,1
    - Dst: MIN
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:626,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - additionalDataSize
    - additionalData
    argTypes:
    - UINT16
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 594
    functionDepth: 5
    functionLinenumber: 594
    functionLinenumberEnd: 632
    functionName: CryptRandomStir
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 1
    functionsReached:
    - memcpy
    - DfBuffer
    - memset
    - MIN
    - DRBG_GetEntropy
    - DRBG_Reseed
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT CryptRandomStir(UINT16 additionalDataSize, BYTE* additionalData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DRBG_Generate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - randomSize
    - buffer
    argTypes:
    - UINT16
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 639
    functionName: CryptRandomGenerate
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 13
    functionsReached:
    - DRBG_Generate
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT CryptRandomGenerate(UINT16 randomSize, BYTE* buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptHashGetDigestSize
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 7
    argNames:
    - state
    - hashAlg
    - kdf
    - seed
    - label
    - context
    - limit
    argTypes:
    - KDF_STATE*
    - TPM_ALG_ID
    - TPM_ALG_ID
    - TPM2B*
    - TPM2B*
    - TPM2B*
    - UINT32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 644
    functionDepth: 3
    functionLinenumber: 644
    functionLinenumberEnd: 665
    functionName: DRBG_InstantiateSeededKdf
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 1
    functionsReached:
    - CryptHashGetDigestSize
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT DRBG_InstantiateSeededKdf(\n    KDF_STATE*   state,    //
      OUT: buffer to hold the state\n    TPM_ALG_ID   hashAlg,  // IN: hash algorithm\n
      \   TPM_ALG_ID   kdf,      // IN: the KDF to use\n    TPM2B*       seed,     //
      IN: the seed to use\n    const TPM2B* label,    // IN: a label for the generation
      process.\n    TPM2B*       context,  // IN: the context value\n    UINT32       limit
      \    // IN: Maximum number of bits from the KDF\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DfBuffer
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:678,1
    - Dst: DRBG_Reseed
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - drbgState
    - additionalData
    argTypes:
    - DRBG_STATE*
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 671
    functionDepth: 5
    functionLinenumber: 671
    functionLinenumberEnd: 681
    functionName: DRBG_AdditionalData
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 1
    functionsReached:
    - DfBuffer
    - DRBG_Reseed
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT DRBG_AdditionalData(DRBG_STATE* drbgState,  // IN:OUT state
      to update\n                                    TPM2B* additionalData  // IN:
      value to incorporate\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IsDrbgTested
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:702,1
    - Dst: DRBG_SelfTest
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:702,1
    - Dst: FAIL_RC
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:704,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:707,1
    - Dst: DfStart
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:718,1
    - Dst: DfUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:722,1
    - Dst: DfUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:724,1
    - Dst: DfUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:726,1
    - Dst: DfUpdate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:728,1
    - Dst: DRBG_Reseed
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:732,1
    - Dst: DfEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:732,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - drbgState
    - seed
    - purpose
    - name
    - additional
    - seedCompatLevel
    argTypes:
    - DRBG_STATE*
    - TPM2B*
    - TPM2B*
    - TPM2B*
    - TPM2B*
    - SEED_COMPAT_LEVEL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 690
    functionDepth: 6
    functionLinenumber: 690
    functionLinenumberEnd: 735
    functionName: DRBG_InstantiateSeeded
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 2
    functionsReached:
    - DfEnd
    - memset
    - FAIL_RC
    - IsDrbgTested
    - DfUpdate
    - DfStart
    - DRBG_SelfTest
    - DRBG_Reseed
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT DRBG_InstantiateSeeded(\n    DRBG_STATE*  drbgState,  //
      IN/OUT: buffer to hold the state\n    const TPM2B* seed,       // IN: the seed
      to use\n    const TPM2B* purpose,    // IN: a label for the generation process.\n
      \   const TPM2B* name,       // IN: name of the object\n    const TPM2B* additional,
      // IN: additional data\n    SEED_COMPAT_LEVEL seedCompatLevel // IN: compatibility
      level; libtpms added\t\t\t\t\t )\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DRBG_Instantiate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:744,1
    - Dst: DRBG_Reseed
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:749,1
    - Dst: DRBG_Instantiate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:751,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 740
    functionDepth: 5
    functionLinenumber: 740
    functionLinenumberEnd: 753
    functionName: CryptRandStartup
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 1
    functionsReached:
    - DRBG_Reseed
    - DRBG_Instantiate
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT CryptRandStartup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _plat__GetEntropy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:764,1
    - Dst: DRBG_SelfTest
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 761
    functionDepth: 6
    functionLinenumber: 761
    functionLinenumberEnd: 767
    functionName: CryptRandInit
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 1
    functionsReached:
    - DRBG_SelfTest
    - _plat__GetEntropy
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT CryptRandInit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 788
    functionName: SEED_COMPAT_LEVEL::DRBG_GetSeedCompatLevel
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT SEED_COMPAT_LEVEL\nDRBG_GetSeedCompatLevel(\n               RAND_STATE
      \    *state\n\t      )"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:833,1
    - Dst: MemoryCopy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:837,1
    - Dst: CryptKDFa
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:860,1
    - Dst: CryptKDFa
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:878,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:899,1
    - Dst: DRBG_Reseed
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:904,1
    - Dst: IsEntropyBad
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:905,1
    - Dst: IsSelfTest
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:905,1
    - Dst: FAIL_IMMEDIATE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:912,1
    - Dst: DRBG_ENCRYPT_SETUP
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:922,1
    - Dst: pDRBG_KEY
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:923,1
    - Dst: FAIL_IMMEDIATE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:926,1
    - Dst: EncryptDRBG
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:929,1
    - Dst: pDRBG_IV
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:930,1
    - Dst: DRBG_Update
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:932,1
    - Dst: FAIL_IMMEDIATE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:940,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 3
    argNames:
    - state
    - random
    - randomSize
    argTypes:
    - RAND_STATE*
    - BYTE*
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 799
    functionDepth: 6
    functionLinenumber: 799
    functionLinenumberEnd: 943
    functionName: DRBG_Generate
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 13
    functionsReached:
    - MemoryCopy
    - FAIL_IMMEDIATE
    - DRBG_Update
    - pDRBG_KEY
    - memset
    - EncryptDRBG
    - MIN
    - DRBG_ENCRYPT_SETUP
    - pDRBG_IV
    - CryptKDFa
    - IsSelfTest
    - DRBG_Reseed
    - IsEntropyBad
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT DRBG_Generate(\n    RAND_STATE* state,\n    BYTE*       random,
      \    // OUT: buffer to receive the random values\n    UINT16      randomSize
      \ // IN: the number of bytes to generate\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:963,1
    - Dst: IsDrbgTested
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:967,1
    - Dst: IsSelfTest
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:967,1
    - Dst: DRBG_SelfTest
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:967,1
    - Dst: DRBG_GetEntropy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:971,1
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:974,1
    - Dst: DRBG_Reseed
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:980,1
    - Dst: DfBuffer
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:980,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - drbgState
    - pSize
    - personalization
    argTypes:
    - DRBG_STATE*
    - UINT16
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 954
    functionDepth: 6
    functionLinenumber: 954
    functionLinenumberEnd: 983
    functionName: DRBG_Instantiate
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 2
    functionsReached:
    - DfBuffer
    - pAssert
    - IsSelfTest
    - memset
    - IsDrbgTested
    - DRBG_GetEntropy
    - DRBG_SelfTest
    - DRBG_Reseed
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT DRBG_Instantiate(\n    DRBG_STATE* drbgState,       //
      OUT: the instantiated value\n    UINT16      pSize,           // IN: Size of
      personalization string\n    BYTE*       personalization  // IN: The personalization
      string\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c:996,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - drbgState
    argTypes:
    - DRBG_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 998
    functionName: DRBG_Uninstantiate
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT DRBG_Uninstantiate(\n    DRBG_STATE* drbgState  // IN/OUT:
      working state to erase\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: EccSimulationEnd
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EccSimulationEnd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: CryptEccInit
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL CryptEccInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: CryptEccStartup
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BOOL
    signature: BOOL CryptEccStartup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - TPMS_ECC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: ClearPoint2B
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void ClearPoint2B(TPMS_ECC_POINT* p  // IN: the point

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: "TPM_ECC_CURVE_METADATA* CryptEccGetParametersByCurveId(\n    TPM_ECC_CURVE
      curveId  // IN: the curveID\n)"
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT TPM_ECC_CURVE_METADATA* CryptEccGetParametersByCurveId(\n
      \   TPM_ECC_CURVE curveId  // IN: the curveID\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptEccGetParametersByCurveId
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - curveId
    argTypes:
    - TPM_ECC_CURVE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: CryptEccGetKeySizeForCurve
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 3
    functionsReached:
    - CryptEccGetParametersByCurveId
    linkageType: ''
    returnType: LIB_EXPORT
    signature: 'LIB_EXPORT CryptEccGetKeySizeForCurve(TPM_ECC_CURVE curveId  // IN:
      the curve

      )'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptEccGetParametersByCurveId
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - curveId
    argTypes:
    - TPM_ECC_CURVE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: CryptEccGetOID
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 1
    functionsReached:
    - CryptEccGetParametersByCurveId
    linkageType: ''
    returnType: BYTE
    signature: BYTE * CryptEccGetOID(TPM_ECC_CURVE curveId)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: TPM_ECC_CURVE::CryptEccGetCurveByIndex
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LIB_EXPORT
    signature: LIB_EXPORT TPM_ECC_CURVE CryptEccGetCurveByIndex(UINT16 i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CryptEccGetCurveByIndex
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:182,1
    - Dst: CryptEccIsCurveRuntimeUsable
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:186,1
    - Dst: RuntimeAlgorithmKeySizeCheckEnabled
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:188,1
    - Dst: CryptEccGetKeySizeForCurve
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:190,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - curveID
    - maxCount
    - curveList
    argTypes:
    - TPM_ECC_CURVE
    - UINT32
    - TPML_ECC_CURVE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 210
    functionName: CryptCapGetECCCurve
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 1
    functionsReached:
    - RuntimeAlgorithmKeySizeCheckEnabled
    - CryptEccGetCurveByIndex
    - CryptEccGetKeySizeForCurve
    - CryptEccIsCurveRuntimeUsable
    linkageType: ''
    returnType: TPMI_YES_NO
    signature: "TPMI_YES_NO CryptCapGetECCCurve(TPM_ECC_CURVE   curveID,   // IN:
      the starting ECC curve\n                    UINT32          maxCount,  // IN:
      count of returned curves\n                    TPML_ECC_CURVE* curveList  //
      OUT: ECC curve list\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptEccIsCurveRuntimeUsable
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:219,1
    - Dst: RuntimeAlgorithmKeySizeCheckEnabled
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:220,1
    - Dst: CryptEccGetKeySizeForCurve
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:222,1
    - Dst: CryptEccGetCurveByIndex
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - curveID
    argTypes:
    - TPM_ECC_CURVE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 236
    functionName: CryptCapGetOneECCCurve
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 1
    functionsReached:
    - RuntimeAlgorithmKeySizeCheckEnabled
    - CryptEccGetCurveByIndex
    - CryptEccGetKeySizeForCurve
    - CryptEccIsCurveRuntimeUsable
    linkageType: ''
    returnType: BOOL
    signature: 'BOOL CryptCapGetOneECCCurve(TPM_ECC_CURVE curveID  // IN: the  ECC
      curve

      )'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CryptEccGetParametersByCurveId
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - curveId
    argTypes:
    - TPM_ECC_CURVE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 250
    functionName: CryptGetCurveSignScheme
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 1
    functionsReached:
    - CryptEccGetParametersByCurveId
    linkageType: ''
    returnType: TPMT_ECC_SCHEME
    signature: "TPMT_ECC_SCHEME * CryptGetCurveSignScheme(\n    TPM_ECC_CURVE curveId
      \ // IN: The curve selector\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TPM2B_TYPE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:271,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:278,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:278,1
    - Dst: TEST_BIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:285,1
    - Dst: UINT64_TO_BYTE_ARRAY
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:312,1
    - Dst: CryptKDFa
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:323,1
    - Dst: UnsignedCompareB
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:334,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - r
    - c
    - curveID
    - name
    argTypes:
    - TPM2B_ECC_PARAMETER*
    - UINT16*
    - TPMI_ECC_CURVE
    - TPM2B_NAME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 263
    functionDepth: 6
    functionLinenumber: 263
    functionLinenumberEnd: 344
    functionName: CryptGenerateR
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 4
    functionsReached:
    - ExtEcc_CurveGetOrder
    - TpmMath_IntTo2B
    - UINT64_TO_BYTE_ARRAY
    - CryptKDFa
    - UnsignedCompareB
    - TPM2B_TYPE
    - TEST_BIT
    linkageType: ''
    returnType: BOOL
    signature: "BOOL CryptGenerateR(TPM2B_ECC_PARAMETER* r,        // OUT: the generated
      random value\n                    UINT16*              c,        // IN/OUT:
      count value.\n                    TPMI_ECC_CURVE       curveID,  // IN: the
      curve for the value\n                    TPM2B_NAME*          name      // IN:
      optional name of a key to\n                                                   //
      \    associate with 'r'\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SET_BIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 357
    functionName: CryptCommit
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 2
    functionsReached:
    - SET_BIT
    linkageType: ''
    returnType: UINT16
    signature: UINT16 CryptCommit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ClearBit
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - UINT16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 367
    functionName: CryptEndCommit
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 2
    functionsReached:
    - ClearBit
    linkageType: ''
    returnType: void
    signature: 'void CryptEndCommit(UINT16 c  // IN: the counter value of the commitment

      )'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptEccGetParametersByCurveId
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:379,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:390,1
    - Dst: ExtEcc_CurveGetPrime
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:390,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:394,1
    - Dst: ExtEcc_CurveGet_a
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:394,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:397,1
    - Dst: ExtEcc_CurveGet_b
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:397,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:400,1
    - Dst: ExtEcc_CurveGetGx
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:400,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:404,1
    - Dst: ExtEcc_CurveGetGy
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:404,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:411,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:411,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:414,1
    - Dst: ExtEcc_CurveGetCofactor
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:414,1
    - Dst: FAIL
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:419,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - curveId
    - parameters
    argTypes:
    - TPM_ECC_CURVE
    - TPMS_ALGORITHM_DETAIL_ECC*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 423
    functionName: CryptEccGetParameters
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 1
    functionsReached:
    - CryptEccGetParametersByCurveId
    - ExtEcc_CurveGetOrder
    - TpmMath_IntTo2B
    - ExtEcc_CurveGetCofactor
    - FAIL
    - ExtEcc_CurveGetGy
    - ExtEcc_CurveGet_b
    - ExtEcc_CurveGetPrime
    - ExtEcc_CurveGet_a
    - ExtEcc_CurveGetGx
    linkageType: ''
    returnType: BOOL
    signature: "BOOL CryptEccGetParameters(\n    TPM_ECC_CURVE              curveId,
      \   // IN: ECC curve ID\n    TPMS_ALGORITHM_DETAIL_ECC* parameters  // OUT:
      ECC parameters\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:433,1
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:434,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:434,1
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - x
    - E
    argTypes:
    - Crypt_Int*
    - Crypt_EccCurve*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 437
    functionName: TpmEcc_IsValidPrivateEcc
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 1
    functionsReached:
    - ExtMath_IsZero
    - ExtMath_UnsignedCmp
    - ExtEcc_CurveGetOrder
    - ExtEcc_CurveGetCurveId
    linkageType: ''
    returnType: BOOL
    signature: "BOOL TpmEcc_IsValidPrivateEcc(const Crypt_Int*      x,  // IN: private
      key to check\n                              const Crypt_EccCurve* E   // IN:
      the curve to check\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_INT_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:442,1
    - Dst: ExtMath_IsZero
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:443,1
    - Dst: ExtMath_UnsignedCmp
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:444,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - d
    - curveId
    argTypes:
    - TPM2B_ECC_PARAMETER*
    - TPM_ECC_CURVE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 445
    functionName: CryptEccIsValidPrivateKey
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 1
    functionsReached:
    - ExtMath_IsZero
    - ExtMath_UnsignedCmp
    - ExtEcc_CurveGetOrder
    - CRYPT_INT_INITIALIZED
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptEccIsValidPrivateKey(TPM2B_ECC_PARAMETER* d,\n                                          TPM_ECC_CURVE
      \       curveId)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:470,1
    - Dst: ExtEcc_IsPointOnCurve
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:487,1
    - Dst: ExtEcc_IsPointOnCurve
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:488,1
    - Dst: ExtEcc_CurveGetG
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:493,1
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:493,1
    - Dst: ExtEcc_PointMultiply
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:498,1
    - Dst: ExtEcc_PointMultiply
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:500,1
    - Dst: ExtEcc_PointMultiplyAndAdd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:504,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 22
    argCount: 6
    argNames:
    - R
    - S
    - d
    - Q
    - u
    - E
    argTypes:
    - Crypt_Point*
    - Crypt_Point*
    - Crypt_Int*
    - Crypt_Point*
    - Crypt_Int*
    - Crypt_EccCurve*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 459
    functionDepth: 5
    functionLinenumber: 459
    functionLinenumberEnd: 507
    functionName: TpmEcc_PointMult
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 7
    functionsReached:
    - ExtEcc_PointMultiply
    - ExtEcc_PointMultiplyAndAdd
    - TPM_DO_SELF_TEST
    - ExtEcc_IsPointOnCurve
    - ExtEcc_CurveGetG
    - ExtEcc_CurveGetCurveId
    linkageType: ''
    returnType: TPM_RC
    signature: "TPM_RC TpmEcc_PointMult(Crypt_Point*          R,  // OUT: computed
      point\n                 const Crypt_Point*    S,  // IN: optional point to multiply
      by 'd'\n                 const Crypt_Int*      d,  // IN: scalar for [d]S or
      [d]G\n                 const Crypt_Point*    Q,  // IN: optional second point\n
      \                const Crypt_Int*      u,  // IN: optional second scalar\n                 const
      Crypt_EccCurve* E   // IN: curve parameters\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:525,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:526,1
    - Dst: ExtMath_SizeInBits
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:528,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:529,1
    - Dst: CRYPT_INT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:530,1
    - Dst: CRYPT_INT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:531,1
    - Dst: TpmMath_GetRandomInteger
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:533,1
    - Dst: ExtMath_SubtractWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:534,1
    - Dst: ExtMath_Mod
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:535,1
    - Dst: ExtMath_AddWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:536,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - dOut
    - E
    - rand
    argTypes:
    - Crypt_Int*
    - Crypt_EccCurve*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 518
    functionDepth: 4
    functionLinenumber: 518
    functionLinenumberEnd: 538
    functionName: TpmEcc_GenPrivateScalar
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 1
    functionsReached:
    - ExtEcc_CurveGetOrder
    - ExtMath_AddWord
    - BITS_TO_BYTES
    - ExtMath_SizeInBits
    - CRYPT_INT_VAR
    - ExtMath_SubtractWord
    - ExtEcc_CurveGetCurveId
    - ExtMath_Mod
    - TpmMath_GetRandomInteger
    linkageType: ''
    returnType: BOOL
    signature: "BOOL TpmEcc_GenPrivateScalar(\n    Crypt_Int*            dOut,  //
      OUT: the qualified random value\n    const Crypt_EccCurve* E,     // IN: curve
      for which the private key\n                                 //     needs to
      be appropriate\n    RAND_STATE* rand             // IN: state for DRBG\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:550,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:551,1
    - Dst: ExtMath_SizeInBits
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:553,1
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:554,1
    - Dst: CRYPT_INT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:556,1
    - Dst: CRYPT_INT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:557,1
    - Dst: OpenSSLEccGetPrivate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:563,1
    - Dst: TpmMath_GetRandomInteger
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:567,1
    - Dst: ExtMath_SubtractWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:568,1
    - Dst: ExtMath_Mod
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:569,1
    - Dst: ExtMath_AddWord
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:570,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - dOut
    - E
    - G
    - noLeadingZeros
    - rand
    argTypes:
    - Crypt_Int*
    - Crypt_EccCurve*
    - EC_GROUP*
    - BOOL
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 540
    functionDepth: 4
    functionLinenumber: 540
    functionLinenumberEnd: 572
    functionName: TpmEcc_GenPrivateScalar
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 1
    functionsReached:
    - OpenSSLEccGetPrivate
    - ExtEcc_CurveGetOrder
    - ExtMath_AddWord
    - BITS_TO_BYTES
    - ExtMath_SizeInBits
    - CRYPT_INT_VAR
    - ExtMath_SubtractWord
    - ExtEcc_CurveGetCurveId
    - ExtMath_Mod
    - TpmMath_GetRandomInteger
    linkageType: ''
    returnType: BOOL
    signature: "BOOL TpmEcc_GenPrivateScalar(\n\t\t\t     Crypt_Int*             dOut,
      \     // OUT: the qualified random value\n\t\t\t     const Crypt_EccCurve*  E,
      \        // IN: curve for which the private key\n\t\t\t     //     needs to
      be appropriate\n\t\t\t     const EC_GROUP*        G,         // IN: the EC_GROUP
      to use; must be != NULL for rand == NULL\n\t\t\t     BOOL                   noLeadingZeros,
      // IN: require that all bytes in the private key be set\n\t\t\t\t\t\t\t\t    //
      \    result may not have leading zero bytes\n\t\t\t     RAND_STATE*            rand
      \      // IN: state for DRBG\n\t\t\t     )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TpmEcc_GenPrivateScalar
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:587,1
    - Dst: ExtEcc_PointMultiply
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - bnD
    - ecQ
    - E
    - rand
    argTypes:
    - Crypt_Int*
    - Crypt_Point*
    - Crypt_EccCurve*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 579
    functionDepth: 5
    functionLinenumber: 579
    functionLinenumberEnd: 592
    functionName: TpmEcc_GenerateKeyPair
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 3
    functionsReached:
    - TpmEcc_GenPrivateScalar
    - ExtEcc_PointMultiply
    linkageType: ''
    returnType: BOOL
    signature: "BOOL TpmEcc_GenerateKeyPair(Crypt_Int*            bnD,  // OUT: private
      scalar\n                            Crypt_Point*          ecQ,  // OUT: public
      point\n                            const Crypt_EccCurve* E,    // IN: curve
      for the point\n                            RAND_STATE*           rand  // IN:
      DRBG state to use\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExtEcc_CurveGetCurveId
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:611,1
    - Dst: ExtEcc_CurveGetOrder
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:612,1
    - Dst: ExtMath_SizeInBits
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:613,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:616,1
    - Dst: TpmEcc_GenPrivateScalar
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:620,1
    - Dst: ExtMath_Add
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:625,1
    - Dst: ExtEcc_PointMultiply
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:626,1
    - Dst: ExtEcc_PointMultiply
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:628,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - bnD
    - ecQ
    - E
    - rand
    argTypes:
    - Crypt_Int*
    - Crypt_Point*
    - Crypt_EccCurve*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 604
    functionDepth: 5
    functionLinenumber: 604
    functionLinenumberEnd: 631
    functionName: TpmEcc_GenerateKeyPair
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 3
    functionsReached:
    - TpmEcc_GenPrivateScalar
    - ExtMath_Add
    - ExtEcc_CurveGetOrder
    - ExtEcc_PointMultiply
    - CRYPT_ECC_NUM
    - ExtMath_SizeInBits
    - ExtEcc_CurveGetCurveId
    linkageType: ''
    returnType: BOOL
    signature: "BOOL TpmEcc_GenerateKeyPair(Crypt_Int*            bnD,  // OUT: private
      scalar\n\t\t\t    Crypt_Point*          ecQ,  // OUT: public point\n\t\t\t    const
      Crypt_EccCurve* E,    // IN: curve for the point\n\t\t\t    RAND_STATE*           rand
      \ // IN: DRBG state to use\n\t\t     )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_CURVE_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:644,1
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:645,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:646,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:652,1
    - Dst: TpmEcc_GenerateKeyPair
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:653,1
    - Dst: TpmEcc_PointTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:656,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:657,1
    - Dst: CRYPT_CURVE_FREE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:663,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - Qout
    - dOut
    - curveId
    argTypes:
    - TPMS_ECC_POINT*
    - TPM2B_ECC_PARAMETER*
    - TPM_ECC_CURVE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 638
    functionDepth: 6
    functionLinenumber: 638
    functionLinenumberEnd: 665
    functionName: CryptEccNewKeyPair
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 2
    functionsReached:
    - TpmEcc_PointTo2B
    - TpmMath_IntTo2B
    - TPM_DO_SELF_TEST
    - TpmEcc_GenerateKeyPair
    - CRYPT_ECC_NUM
    - CRYPT_CURVE_FREE
    - CRYPT_POINT_VAR
    - CRYPT_CURVE_INITIALIZED
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptEccNewKeyPair(\n    TPMS_ECC_POINT*      Qout,    //
      OUT: the public point\n    TPM2B_ECC_PARAMETER* dOut,    // OUT: the private
      scalar\n    TPM_ECC_CURVE        curveId  // IN: the curve for the key\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_CURVE_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:704,1
    - Dst: CRYPT_POINT_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:705,1
    - Dst: CRYPT_ECC_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:706,1
    - Dst: CRYPT_ECC_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:707,1
    - Dst: CRYPT_POINT_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:708,1
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:709,1
    - Dst: TpmEcc_PointMult
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:712,1
    - Dst: TpmEcc_PointTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:715,1
    - Dst: ClearPoint2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:717,1
    - Dst: CRYPT_CURVE_FREE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 6
    argNames:
    - Rout
    - curveId
    - Pin
    - dIn
    - Qin
    - uIn
    argTypes:
    - TPMS_ECC_POINT*
    - TPM_ECC_CURVE
    - TPMS_ECC_POINT*
    - TPM2B_ECC_PARAMETER*
    - TPMS_ECC_POINT*
    - TPM2B_ECC_PARAMETER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 693
    functionDepth: 6
    functionLinenumber: 693
    functionLinenumberEnd: 720
    functionName: CryptEccPointMultiply
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 7
    functionsReached:
    - CRYPT_ECC_INITIALIZED
    - TpmEcc_PointTo2B
    - CRYPT_POINT_INITIALIZED
    - ClearPoint2B
    - TpmEcc_PointMult
    - CRYPT_CURVE_FREE
    - CRYPT_POINT_VAR
    - CRYPT_CURVE_INITIALIZED
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptEccPointMultiply(\n    TPMS_ECC_POINT*      Rout,
      \    // OUT: the product point R\n    TPM_ECC_CURVE        curveId,  // IN:
      the curve to use\n    TPMS_ECC_POINT*      Pin,      // IN: first point (can
      be null)\n    TPM2B_ECC_PARAMETER* dIn,      // IN: scalar value for [dIn]Qin\n
      \                                  //     the Pin\n    TPMS_ECC_POINT*      Qin,
      \     // IN: point Q\n    TPM2B_ECC_PARAMETER* uIn       // IN: scalar value
      for the multiplier\n                                   //     of Q\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_CURVE_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:735,1
    - Dst: CRYPT_POINT_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:736,1
    - Dst: pAssert
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:739,1
    - Dst: ExtEcc_IsPointOnCurve
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:740,1
    - Dst: CRYPT_CURVE_FREE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - curveId
    - Qin
    argTypes:
    - TPM_ECC_CURVE
    - TPMS_ECC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 730
    functionDepth: 5
    functionLinenumber: 730
    functionLinenumberEnd: 743
    functionName: CryptEccIsPointOnCurve
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 4
    functionsReached:
    - CRYPT_POINT_INITIALIZED
    - pAssert
    - ExtEcc_IsPointOnCurve
    - CRYPT_CURVE_FREE
    - CRYPT_CURVE_INITIALIZED
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptEccIsPointOnCurve(\n    TPM_ECC_CURVE   curveId,  //
      IN: the curve selector\n    TPMS_ECC_POINT* Qin       // IN: the point.\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_CURVE_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:772,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:773,1
    - Dst: CRYPT_POINT_VAR
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:774,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:778,1
    - Dst: ERROR_EXIT
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:782,1
    - Dst: TpmEcc_GenerateKeyPair
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:788,1
    - Dst: TpmEcc_PointTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:791,1
    - Dst: TpmMath_IntTo2B
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:792,1
    - Dst: IS_ATTRIBUTE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:797,1
    - Dst: RuntimeProfileRequiresAttributeFlags
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:798,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:801,1
    - Dst: CRYPT_ECC_NUM
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:802,1
    - Dst: TPM_DO_SELF_TEST
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:805,1
    - Dst: MIN
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:806,1
    - Dst: DRBG_Generate
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:808,1
    - Dst: TpmEcc_SignEcdsa
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:811,1
    - Dst: TpmEcc_ValidateSignatureEcdsa
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:813,1
    - Dst: CRYPT_CURVE_FREE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:819,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - publicArea
    - sensitive
    - rand
    argTypes:
    - TPMT_PUBLIC*
    - TPMT_SENSITIVE*
    - RAND_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 759
    functionDepth: 7
    functionLinenumber: 759
    functionLinenumberEnd: 821
    functionName: CryptEccGenerateKey
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 1
    functionsReached:
    - IS_ATTRIBUTE
    - TpmEcc_PointTo2B
    - TpmMath_IntTo2B
    - TPM_DO_SELF_TEST
    - TpmEcc_ValidateSignatureEcdsa
    - TpmEcc_SignEcdsa
    - TpmEcc_GenerateKeyPair
    - DRBG_Generate
    - ERROR_EXIT
    - CRYPT_ECC_NUM
    - MIN
    - CRYPT_CURVE_FREE
    - CRYPT_POINT_VAR
    - CRYPT_CURVE_INITIALIZED
    - RuntimeProfileRequiresAttributeFlags
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptEccGenerateKey(\n    TPMT_PUBLIC* publicArea,    //
      IN/OUT: The public area template for\n                                //      the
      new key. The public key\n                                //      area will be
      replaced computed\n                                //      ECC public key\n
      \   TPMT_SENSITIVE* sensitive,  // OUT: the sensitive area will be\n                                //
      \     updated to contain the private\n                                //      ECC
      key and the symmetric\n                                //      encryption key\n
      \   RAND_STATE* rand            // IN: if not NULL, the deterministic\n                                //
      \    RNG state\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYPT_CURVE_INITIALIZED
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:831,1
    - Dst: CRYPT_CURVE_FREE
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c:834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - curveId
    argTypes:
    - TPMI_ECC_CURVE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 836
    functionName: CryptEccIsCurveRuntimeUsable
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
    functionUses: 3
    functionsReached:
    - CRYPT_CURVE_INITIALIZED
    - CRYPT_CURVE_FREE
    linkageType: ''
    returnType: LIB_EXPORT
    signature: "LIB_EXPORT CryptEccIsCurveRuntimeUsable(\n\t\t\t     TPMI_ECC_CURVE
      curveId\n\t\t\t    )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_BYTES
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSmac.c:86,1
    - Dst: CryptCmacStart
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSmac.c:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - state
    - keyParameters
    - macAlg
    - key
    argTypes:
    - HASH_STATE*
    - TPMU_PUBLIC_PARMS*
    - TPM_ALG_ID
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 102
    functionName: CryptSmacStart
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptSmac.c
    functionUses: 0
    functionsReached:
    - CryptCmacStart
    - BITS_TO_BYTES
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 CryptSmacStart(HASH_STATE*        state,\n               TPMU_PUBLIC_PARMS*
      keyParameters,\n               TPM_ALG_ID         macAlg,  // IN: the type of
      MAC\n               TPM2B*             key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MemorySet
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSmac.c:113,1
    - Dst: CryptHashIsValidAlg
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSmac.c:114,1
    - Dst: CryptHmacStart
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSmac.c:116,1
    - Dst: CryptSmacIsValidAlg
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSmac.c:118,1
    - Dst: CryptSmacStart
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSmac.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - state
    - keyParameters
    - macAlg
    - key
    argTypes:
    - HMAC_STATE*
    - TPMU_PUBLIC_PARMS*
    - TPM_ALG_ID
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 107
    functionDepth: 5
    functionLinenumber: 107
    functionLinenumberEnd: 124
    functionName: CryptMacStart
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptSmac.c
    functionUses: 2
    functionsReached:
    - CryptHashIsValidAlg
    - CryptSmacIsValidAlg
    - CryptSmacStart
    - MemorySet
    - CryptHmacStart
    linkageType: ''
    returnType: UINT16
    signature: "UINT16 CryptMacStart(HMAC_STATE*        state,\n              TPMU_PUBLIC_PARMS*
      keyParameters,\n              TPM_ALG_ID         macAlg,  // IN: the type of
      MAC\n              TPM2B*             key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CryptHmacEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSmac.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - state
    - size
    - buffer
    argTypes:
    - HMAC_STATE*
    - UINT32
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 139
    functionName: CryptMacEnd
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptSmac.c
    functionUses: 1
    functionsReached:
    - CryptHmacEnd
    linkageType: ''
    returnType: UINT16
    signature: UINT16 CryptMacEnd(HMAC_STATE* state, UINT32 size, BYTE* buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CryptMacEnd
      Src: /src/libtpms/src/tpm2/crypto/openssl/CryptSmac.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - state
    - data
    argTypes:
    - HMAC_STATE*
    - TPM2B*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 5
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: CryptMacEnd2B
    functionSourceFile: /src/libtpms/src/tpm2/crypto/openssl/CryptSmac.c
    functionUses: 0
    functionsReached:
    - CryptMacEnd
    linkageType: ''
    returnType: UINT16
    signature: UINT16 CryptMacEnd2B(HMAC_STATE* state, TPM2B* data)
Fuzzer filename: /src/libtpms/tests/fuzz.cc
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- assert.h
- CryptDes_fp.h
- windows.h
- Policy_spt_fp.h
- CommandDispatchData.h
- BaseTypes.h
- tpm_global.h
- Hierarchy_fp.h
- Response_fp.h
- PCR_SetAuthValue_fp.h
- tpm12/tpm_crypto.h
- HandleProcess.h
- _TPM_Init_fp.h
- MinMax.h
- stdarg.h
- CommandAudit_fp.h
- tpm_sizedbuffer.h
- TableMarshalDefines.h
- ExpDCache_fp.h
- tpm12/tpm_startup.h
- CommandAttributes.h
- NV_Write_fp.h
- HMAC_Start_fp.h
- RSA_Encrypt_fp.h
- CryptEccMain_fp.h
- openssl/param_build.h
- CryptSym_fp.h
- X509_RSA_fp.h
- Session_fp.h
- tpm_ver.h
- Shutdown_fp.h
- CryptSym.h
- byteswap.h
- tpm_nvfilename.h
- Entity_fp.h
- ECDH_ZGen_fp.h
- CryptRand.h
- _TPM_Hash_Start_fp.h
- EccConstantData.inl
- GetCommandAuditDigest_fp.h
- Manufacture_fp.h
- openssl/opensslv.h
- HashSequenceStart_fp.h
- CertifyCreation_fp.h
- NV_WriteLock_fp.h
- config.h
- simulatorPrivate.h
- simulator_sysheaders.h
- tpm_session.h
- RSA_Decrypt_fp.h
- openssl/crypto.h
- tpm_nvram_const.h
- Object_spt_fp.h
- tpm2/_TPM_Hash_Start_fp.h
- VendorInfo.h
- openssl/bio.h
- LibSupport.h
- FirmwareRead_fp.h
- tpm_public.h
- PolicyTicket_fp.h
- openssl/rand.h
- NV_Certify_fp.h
- openssl/sm4.h
- KdfTestData.h
- tpm_library.h
- tpm_platform.h
- tpm_maint.h
- CompilerDependencies_msvc.h
- DictionaryAttackParameters_fp.h
- TPMB.h
- HMAC_fp.h
- TpmASN1_fp.h
- libtpms/tpm_memory.h
- Commit_fp.h
- Hash_fp.h
- Vendor_TCG_Test_fp.h
- tpm12/tpm_digest.h
- Sign_fp.h
- libtpms/tpm_library.h
- stdlib.h
- tpm2/Manufacture_fp.h
- time.h
- BnMemory_fp.h
- PolicyRestart_fp.h
- PolicyLocality_fp.h
- BnMath_fp.h
- Capabilities.h
- tpm2/crypto/openssl/ExpDCache_fp.h
- StirRandom_fp.h
- tpm2/_TPM_Hash_End_fp.h
- FlushContext_fp.h
- TpmTcpProtocol.h
- BnUtil_fp.h
- ObjectChangeAuth_fp.h
- PRNG_TestVectors.h
- Duplicate_fp.h
- netinet/in.h
- PlatformData.h
- OIDs.h
- Handle_fp.h
- ECC_Decrypt_fp.h
- tpm12/tpm_platform.h
- NV_Extend_fp.h
- ContextSave_fp.h
- EventSequenceComplete_fp.h
- Locality_fp.h
- RuntimeCommands_fp.h
- CryptPrimeSieve_fp.h
- openssl/ec.h
- tpm12/tpm_permanent.h
- tpm_secret.h
- sys/types.h
- PolicyParameters_fp.h
- ReadClock_fp.h
- DictionaryAttackLockReset_fp.h
- arpa/inet.h
- tpm_load.h
- tpm_counter.h
- _TPM_Hash_Data_fp.h
- Import_fp.h
- CryptCmac_fp.h
- ActivateCredential_fp.h
- NV_ReadPublic2_fp.h
- ECDH_KeyGen_fp.h
- TpmToOsslHash.h
- ACT_spt_fp.h
- BnToOsslMath_fp.h
- PolicyCpHash_fp.h
- CryptPrime_fp.h
- PolicyGetDigest_fp.h
- GetTestResult_fp.h
- TpmToTpmBigNumMath.h
- PolicyCounterTimer_fp.h
- FieldUpgradeData_fp.h
- openssl/sha.h
- tpm_delegate.h
- CompilerDependencies_gcc.h
- GpMacros.h
- Simulator_fp.h
- TpmBigNum.h
- tpm2/Tpm.h
- TpmFail_fp.h
- ClockSet_fp.h
- tpm_storage.h
- DA_fp.h
- Startup_fp.h
- CryptRand_fp.h
- PolicyPhysicalPresence_fp.h
- tpm_nonce.h
- plbase64.h
- CommandCodeAttributes_fp.h
- TableMarshalTypes.h
- PolicyPassword_fp.h
- CryptSmac_fp.h
- VerifyConfiguration.h
- tpm2/PlatformACT.h
- NV_ReadLock_fp.h
- unistd.h
- StateMarshal.h
- openssl/evp.h
- PolicyNameHash_fp.h
- AC_spt_fp.h
- ECC_Parameters_fp.h
- PCR_Allocate_fp.h
- tpm_nvram.h
- ChangePPS_fp.h
- HierarchyControl_fp.h
- CertifyX509_fp.h
- tpm_structures.h
- PolicyAuthorizeNV_fp.h
- tpm_startup.h
- CryptRsa.h
- CryptUtil_fp.h
- NV_DefineSpace_fp.h
- PolicyTemplate_fp.h
- tpm_types.h
- _TPM_Hash_End_fp.h
- BnValues.h
- TpmProfile_CommandList.h
- ReadPublic_fp.h
- openssl/ossl_typ.h
- NV_UndefineSpaceSpecial_fp.h
- sys/socket.h
- TpmEcc_Signature_Util_fp.h
- PolicyAuthValue_fp.h
- tpm_debug.h
- PolicyOR_fp.h
- TpmToOsslSupport_fp.h
- InternalRoutines.h
- Unseal_fp.h
- tpm2/_TPM_Init_fp.h
- tpm_error.h
- PolicyNvWritten_fp.h
- TpmASN1.h
- tpm_pcr.h
- tpm_migration.h
- tpm_audit.h
- CommandDispatcher_fp.h
- CompilerDependencies.h
- platform_to_tpm_interface.h
- GetSessionAuditDigest_fp.h
- stdio.h
- TpmEcc_Signature_SM2_fp.h
- openssl/des.h
- CryptTest.h
- CryptRsa_fp.h
- tpm_key.h
- SequenceComplete_fp.h
- TableDrivenMarshal_fp.h
- BnOssl.h
- CryptHash.h
- TpmToOsslDesSupport_fp.h
- tpm_svnrevision.h
- tpm12/tpm_cryptoh.h
- ACT_SetTimeout_fp.h
- PCR_Event_fp.h
- MathLibraryInterfaceTypes.h
- LIB_INCLUDE(TpmTo, HASH_LIB, Hash)
- gmp.h
- BackwardsCompatibility.h
- GetRandom_fp.h
- stdbool.h
- NV.h
- openssl/core_names.h
- TpmTypes.h
- tpm_radix.h
- tpm_openssl_helpers.h
- TpmProfile_Common.h
- CryptEcc.h
- openssl/kdf.h
- CommandAttributeData.h
- SetCommandCodeAuditStatus_fp.h
- tpm_identity.h
- Rewrap_fp.h
- StartAuthSession_fp.h
- MAC_fp.h
- AC_Send_fp.h
- PolicySigned_fp.h
- Create_fp.h
- tpm_ticks.h
- endian_swap.h
- NVMarshal.h
- Commands.h
- X509_spt_fp.h
- PlatformClock.h
- ResponseCodeProcessing_fp.h
- tpm2/TpmTypes.h
- EncryptDecrypt_fp.h
- TpmAlgorithmDefines.h
- CommandDispatcher.h
- winsock.h
- MakeCredential_fp.h
- RuntimeProfile_fp.h
- ChangeEPS_fp.h
- libtpms/tpm_error.h
- PCR_Reset_fp.h
- PlatformACT.h
- tpm2/Simulator_fp.h
- X509.h
- PCR_Read_fp.h
- tpm12/tpm_global.h
- PolicySecret_fp.h
- CryptEccKeyExchange_fp.h
- Context_spt_fp.h
- ExecCommand_fp.h
- libtpms/tpm_nvfilename.h
- CryptSelfTest_fp.h
- TpmEcc_Signature_Schnorr_fp.h
- tpm2/TpmTcpProtocol.h
- Clear_fp.h
- compiler.h
- CreatePrimary_fp.h
- tpm12/tpm_process.h
- libtpms/tpm_types.h
- TpmProfile.h
- VerifySignature_fp.h
- RsaTestData.h
- tpm12/tpm_pcr.h
- Tpm.h
- NV_UndefineSpace_fp.h
- tpm_permanent.h
- SetAlgorithmSet_fp.h
- Utils.h
- regex.h
- TpmToOsslSym.h
- Bits_fp.h
- ClockRateAdjust_fp.h
- tpm_crypto.h
- tpm2/TpmBuildSwitches.h
- IoBuffers_fp.h
- FieldUpgradeStart_fp.h
- NV_Increment_fp.h
- NV_GlobalWriteLock_fp.h
- setjmp.h
- TestParms_fp.h
- ClearControl_fp.h
- ACT.h
- SymmetricTestData.h
- MAC_Start_fp.h
- BnConvert_fp.h
- HierarchyChangeAuth_fp.h
- pthread.h
- TpmProfile_Misc.h
- Time_fp.h
- NvDynamic_fp.h
- EvictControl_fp.h
- tpm_daa.h
- tpm2/ExecCommand_fp.h
- platform_public_interface.h
- Platform.h
- NV_DefineSpace2_fp.h
- LibtpmsCallbacks.h
- LIB_INCLUDE(BnTo, BN_MATH_LIB, Math)
- AlgorithmCap_fp.h
- ZGen_2Phase_fp.h
- GetTime_fp.h
- Object_fp.h
- openssl/bn.h
- PP_fp.h
- NvReserved_fp.h
- TpmCalculatedAttributes.h
- PCR_fp.h
- CryptHash_fp.h
- NV_ChangeAuth_fp.h
- tpm_library_intern.h
- libkern/OSByteOrder.h
- LIB_INCLUDE(TpmTo, SYM_LIB, Sym)
- BnSupport_Interface.h
- tpm_process.h
- TpmEcc_Util_fp.h
- pcrstruct.h
- SetCapability_fp.h
- tpm_nvfile.h
- EccTestData.h
- NV_spt_fp.h
- Marshal.h
- tpm_store.h
- TpmSizeChecks_fp.h
- PolicyPCR_fp.h
- PolicyNV_fp.h
- TpmEcc_Signature_ECDSA_fp.h
- inttypes.h
- stddef.h
- sys/time.h
- ContextLoad_fp.h
- Volatile.h
- tpm2/_TPM_Hash_Data_fp.h
- PP_Commands_fp.h
- SelfTest.h
- EncryptDecrypt_spt_fp.h
- openssl/sm3.h
- LoadExternal_fp.h
- SetPrimaryPolicy_fp.h
- MathOnByteBuffers_fp.h
- Memory_fp.h
- tpm_admin.h
- Unmarshal_fp.h
- ECC_Encrypt_fp.h
- tpm_commands.h
- RuntimeAttributes_fp.h
- PropertyCap_fp.h
- tpm2/PlatformData.h
- PolicyAuthorize_fp.h
- CryptEccSignature_fp.h
- Certify_fp.h
- PolicyCommandCode_fp.h
- string.h
- tpm_transport.h
- NV_SetBits_fp.h
- CreateLoaded_fp.h
- CryptoInterface.h
- PlatformACT_fp.h
- HashTestData.h
- TpmEcc_Signature_ECDAA_fp.h
- tpm_time.h
- tpm_to_platform_interface.h
- openssl/aes.h
- IncrementalSelfTest_fp.h
- Quote_fp.h
- NV_Read_fp.h
- openssl/camellia.h
- PCR_SetAuthPolicy_fp.h
- tpm_auth.h
- AlgorithmTests_fp.h
- Ticket_fp.h
- openssl/ecdsa.h
- blapi.h
- tpm_cryptoh.h
- sys/endian.h
- sal.h
- X509_ECC_fp.h
- stdint.h
- Power_fp.h
- TpmProfile_ErrorCodes.h
- openssl/err.h
- BackwardsCompatibilityObject.h
- SelfTest_fp.h
- memory.h
- ctype.h
- tpm12/tpm_transport.h
- tpm2/Platform_fp.h
- tpm_digest.h
- Global.h
- Load_fp.h
- Marshal_fp.h
- SessionProcess_fp.h
- PCR_Extend_fp.h
- BackwardsCompatibilityBitArray.h
- SymmetricTest.h
- Helpers_fp.h
- BnToOsslMath.h
- PolicyCapability_fp.h
- GetCapability_fp.h
- tpm2/Volatile.h
- sys/timeb.h
- tpm_memory.h
- limits.h
- endian.h
- MathLibraryInterface.h
- TpmMath_Util_fp.h
- process.h
- tpm_constants.h
- Attest_spt_fp.h
- TpmBuildSwitches.h
- EC_Ephemeral_fp.h
- RuntimeAlgorithm_fp.h
- openssl/rsa.h
- tpm_tis.h
- tpm_init.h
- CryptEccCrypt_fp.h
- PolicyDuplicationSelect_fp.h
- EncryptDecrypt2_fp.h
- LIB_INCLUDE(TpmTo, MATH_LIB, Math)
- tpm2/StateMarshal.h
- TpmMath_Debug_fp.h
- SequenceUpdate_fp.h
- tpm12/tpm_init.h
- NV_ReadPublic_fp.h
- Policy_AC_SendSelect_fp.h
- platform_pcr_fp.h
- tpm_io.h
- errno.h
- tpm_owner.h
report: name
sources:
- function_names:
  - main
  source_file: /src/libtpms/tests/tpm2_createprimary.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/libtpms/tests/fuzz-main.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MIN_NUMBER_OF_RUNS
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/libtpms/tests/fuzz-main.c
      type_or_value: '4'
    - item_type: preproc_def
      name: EXIT_TEST_SKIP
      pos:
        line_end: 5
        line_start: 4
        source_file: /src/libtpms/tests/fuzz-main.c
      type_or_value: '77'
    structs: []
    typedefs: []
    union: []
- function_names:
  - die
  - mytpm_io_init
  - mytpm_io_getlocality
  - mytpm_io_getphysicalpresence
  - mytpm_nvram_loaddata
  - mytpm_nvram_storedata
  - LLVMFuzzerTestOneInput
  source_file: /src/libtpms/tests/fuzz.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_file
  - main
  source_file: /src/libtpms/tests/base64decode.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dump_array
  - main
  source_file: /src/libtpms/tests/tpm2_pcr_read.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/libtpms/tests/tpm2_cve-2023-1017.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/libtpms/tests/tpm2_cve-2023-1018.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/libtpms/tests/freebl_sha1flattensize.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EXPECTED_LIB_FLATTENSIZE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/libtpms/tests/freebl_sha1flattensize.c
      type_or_value: '248'
    - item_type: preproc_def
      name: EXPECTED_LIB_FLATTENSIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/libtpms/tests/freebl_sha1flattensize.c
      type_or_value: '160'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/libtpms/tests/nvram_offsets.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PD_PP_LIST_EXP_SIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/libtpms/tests/nvram_offsets.c
      type_or_value: '17'
    - item_type: preproc_def
      name: PD_AUDIT_COMMANDS_EXP_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/libtpms/tests/nvram_offsets.c
      type_or_value: '17'
    - item_type: preproc_def
      name: NV_INDEX_RAM_DATA_EXP_OFFSET
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/libtpms/tests/nvram_offsets.c
      type_or_value: '5120'
    - item_type: preproc_def
      name: NV_USER_DYNAMIC_EXP_OFFSET
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libtpms/tests/nvram_offsets.c
      type_or_value: (5120 + 512)
    - item_type: preproc_def
      name: OBJECT_EXP_SIZE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libtpms/tests/nvram_offsets.c
      type_or_value: '3312'
    - item_type: preproc_def
      name: OBJECT_EXP_SIZE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libtpms/tests/nvram_offsets.c
      type_or_value: '2608'
    - item_type: preproc_def
      name: OBJECT_EXP_SIZE
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libtpms/tests/nvram_offsets.c
      type_or_value: '1896'
    - item_type: preproc_def
      name: NV_INDEX_EXP_SIZE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/tests/nvram_offsets.c
      type_or_value: '148'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/libtpms/tests/tpm2_setprofile.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*cmd'
        type: uint8_t
      - name: '*rsp'
        type: uint8_t
      item_type: struct
      name: transfer
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/libtpms/tests/tpm2_setprofile.c
    - fields:
      - name: '*profile'
        type: char
      - name: exp_fail
        type: bool
      - name: '*exp_profile'
        type: char
      - name: '*tx'
        type: struct transfer
      item_type: struct
      name: "testcases[] = {\n    {\n        .profile = NULL,\n        .exp_fail =
        false,\n        .exp_profile = null_profile,\n    }, {\n        // StateFormatLevel
        not allowed to be passed\n        .profile = \"{\\\"Name\\\":\\\"default-v1\\\",\\\"StateFormatLevel\\\":2}\",\n
        \       .exp_fail = true,\n    }, {\n        .profile = \"{\\\"Name\\\":\\\"null\\\"}\",\n
        \       .exp_fail = false,\n        .exp_profile = null_profile,\n    }, {\n
        \       .profile = \"{\\\"Name\\\":\\\"default-v2\\\"}\",\n        .exp_profile
        =\n          \"{\\\"ActiveProfile\\\":{\"\n            \"\\\"Name\\\":\\\"default-v2\\\",\"\n
        \           \"\\\"StateFormatLevel\\\":8,\"\n            \"\\\"Commands\\\":\\\"0x11f-0x122,0x124-0x12e,0x130-0x140,0x142-0x159,\"\n
        \                          \"0x15b-0x15e,0x160-0x165,0x167-0x174,0x176-0x178,\"\n
        \                          \"0x17a-0x193,0x197,0x199-0x19c\\\",\"\n            \"\\\"Algorithms\\\":\\\"rsa,rsa-min-size=1024,tdes,tdes-min-size=128,\"\n
        \                            \"sha1,hmac,aes,aes-min-size=128,mgf1,keyedhash,\"\n
        \                            \"xor,sha256,sha384,sha512,null,rsassa,rsaes,rsapss,\"\n
        \                            \"oaep,ecdsa,ecdh,ecdaa,sm2,ecschnorr,ecmqv,\"\n
        \                            \"kdf1-sp800-56a,kdf2,kdf1-sp800-108,ecc,ecc-min-size=192,\"\n
        \                            \"ecc-nist,ecc-bn,ecc-sm2-p256,symcipher,camellia,\"\n
        \                            \"camellia-min-size=128,cmac,ctr,ofb,cbc,cfb,ecb\\\",\"\n
        \           \"\\\"Description\\\":\\\"This profile enables all libtpms v0.11-supported
        \"\n                              \"commands and algorithms. This profile
        is compatible with \"\n                              \"libtpms >= v0.11.\\\"\"\n
        \         \"}}\",\n    }, {\n        .profile = \"{\\\"Name\\\":\\\"default-v1\\\"}\",\n
        \       .exp_profile =\n          \"{\\\"ActiveProfile\\\":{\"\n            \"\\\"Name\\\":\\\"default-v1\\\",\"\n
        \           \"\\\"StateFormatLevel\\\":7,\"\n            \"\\\"Commands\\\":\\\"0x11f-0x122,0x124-0x12e,0x130-0x140,0x142-0x159,\"\n
        \                          \"0x15b-0x15e,0x160-0x165,0x167-0x174,0x176-0x178,\"\n
        \                          \"0x17a-0x193,0x197,0x199-0x19c\\\",\"\n            \"\\\"Algorithms\\\":\\\"rsa,rsa-min-size=1024,tdes,tdes-min-size=128,\"\n
        \                            \"sha1,hmac,aes,aes-min-size=128,mgf1,keyedhash,\"\n
        \                            \"xor,sha256,sha384,sha512,null,rsassa,rsaes,rsapss,\"\n
        \                            \"oaep,ecdsa,ecdh,ecdaa,sm2,ecschnorr,ecmqv,\"\n
        \                            \"kdf1-sp800-56a,kdf2,kdf1-sp800-108,ecc,ecc-min-size=192,\"\n
        \                            \"ecc-nist,ecc-bn,ecc-sm2-p256,symcipher,camellia,\"\n
        \                            \"camellia-min-size=128,cmac,ctr,ofb,cbc,cfb,ecb\\\",\"\n
        \           \"\\\"Description\\\":\\\"This profile enables all libtpms v0.10-supported
        \"\n                              \"commands and algorithms. This profile
        is compatible with \"\n                              \"libtpms >= v0.10.\\\"\"\n
        \         \"}}\",\n    }, {\n        .profile = \"{\"\n                    \"\\\"Name\\\":\\\"custom\\\",\"\n
        \                   \"\\\"StateFormatLevel\\\":2,\"\n                    \"\\\"Commands\\\":\\\"0x11f-0x122,0x124-0x12e,0x130-0x140,0x142-0x159,\"\n
        \                                  \"0x15b-0x15e,0x160-0x165,0x167-0x174,0x176-0x178,\"\n
        \                                  \"0x17a-0x193,0x197\\\",\"\n                    \"\\\"Attributes\\\":\\\"\\\",\"\n
        \                   \"\\\"Description\\\":\\\"test\\\"\"\n                   \"}\",\n
        \       .exp_fail = false,\n        .exp_profile =\n          \"{\\\"ActiveProfile\\\":{\"\n
        \           \"\\\"Name\\\":\\\"custom\\\",\"\n            \"\\\"StateFormatLevel\\\":2,\"\n
        \           \"\\\"Commands\\\":\\\"0x11f-0x122,0x124-0x12e,0x130-0x140,0x142-0x159,\"\n
        \                          \"0x15b-0x15e,0x160-0x165,0x167-0x174,0x176-0x178,\"\n
        \                          \"0x17a-0x193,0x197\\\",\"\n            \"\\\"Algorithms\\\":\\\"rsa,rsa-min-size=1024,tdes,tdes-min-size=128,\"\n
        \                            \"sha1,hmac,aes,aes-min-size=128,mgf1,keyedhash,\"\n
        \                            \"xor,sha256,sha384,sha512,null,rsassa,rsaes,rsapss,\"\n
        \                            \"oaep,ecdsa,ecdh,ecdaa,sm2,ecschnorr,ecmqv,\"\n
        \                            \"kdf1-sp800-56a,kdf2,kdf1-sp800-108,ecc,ecc-min-size=192,\"\n
        \                            \"ecc-nist,ecc-bn,ecc-sm2-p256,symcipher,camellia,\"\n
        \                            \"camellia-min-size=128,cmac,ctr,ofb,cbc,cfb,ecb\\\",\"\n
        \           \"\\\"Attributes\\\":\\\"\\\",\"\n            \"\\\"Description\\\":\\\"test\\\"\"\n
        \         \"}}\",\n    }, {\n        .profile = \"{\"\n                    \"\\\"Name\\\":\\\"custom\\\",\"\n
        \                   \"\\\"StateFormatLevel\\\":2,\"\n                    \"\\\"Commands\\\":\\\"0x120,0x129,0x12b,0x131,0x13c,0x143-0x145,\"\n
        \                                  \"0x148,0x14e,0x153,0x156-0x158,0x15c,\"\n
        \                                  \"0x165,0x169,0x173,0x176,0x17a,0x17c-0x17e,\"\n
        \                                  \"0x182,0x185-0x186\\\",\"\n                    \"\\\"Algorithms\\\":\\\"rsa,rsa-min-size=2048,\"\n
        \                                    \"hmac,aes,aes-min-size=128,mgf1,keyedhash,\"\n
        \                                    \"xor,sha256,sha384,null,rsassa,rsaes,rsapss,\"\n
        \                                    \"oaep,ecdsa,ecdh,ecdaa,sm2,ecschnorr,ecmqv,\"\n
        \                                    \"kdf1-sp800-56a,kdf2,kdf1-sp800-108,ecc,ecc-min-size=192,\"\n
        \                                    \"ecc-nist,symcipher,\"\n                                     \"cfb\\\",\"\n
        \                   \"\\\"Description\\\":\\\"Small profile\\\"\"\n                   \"}\",\n
        \       .exp_fail = false,\n        .exp_profile =\n          \"{\\\"ActiveProfile\\\":{\"\n
        \           \"\\\"Name\\\":\\\"custom\\\",\"\n            \"\\\"StateFormatLevel\\\":2,\"\n
        \           \"\\\"Commands\\\":\\\"0x120,0x129,0x12b,0x131,0x13c,0x143-0x145,\"\n
        \                          \"0x148,0x14e,0x153,0x156-0x158,0x15c,\"\n                           \"0x165,0x169,0x173,0x176,0x17a,0x17c-0x17e,\"\n
        \                          \"0x182,0x185-0x186\\\",\"\n            \"\\\"Algorithms\\\":\\\"rsa,rsa-min-size=2048,\"\n
        \                            \"hmac,aes,aes-min-size=128,mgf1,keyedhash,\"\n
        \                            \"xor,sha256,sha384,null,rsassa,rsaes,rsapss,\"\n
        \                            \"oaep,ecdsa,ecdh,ecdaa,sm2,ecschnorr,ecmqv,\"\n
        \                            \"kdf1-sp800-56a,kdf2,kdf1-sp800-108,ecc,ecc-min-size=192,\"\n
        \                            \"ecc-nist,symcipher,\"\n                             \"cfb\\\",\"\n
        \           \"\\\"Description\\\":\\\"Small profile\\\"\"\n          \"}}\",\n
        \       .tx = (struct transfer[]){\n            {\n                .cmd =
        (uint8_t[]){\n                    0x80, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00,
        0x00, 0x01, 0x44, 0x00, 0x00\n                },\n                .rsp = (uint8_t[]){\n
        \                   0x80, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
        0x00\n                }\n            }, {\n                /* algorithms:
        tssgetcapability -v -cap 0 */\n                .cmd = (uint8_t[]){\n                    0x80,
        0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x01, 0x7a, 0x00,\n                    0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40\n                },\n
        \               .rsp = (uint8_t[]){\n                    0x80, 0x01, 0x00,
        0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\n
        \                   0x00, 0x00, 0x18, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09,
        0x00, 0x05, 0x00, 0x00, 0x01, 0x04, 0x00,\n                    0x06, 0x00,
        0x00, 0x00, 0x02, 0x00, 0x07, 0x00, 0x00, 0x04, 0x04, 0x00, 0x08, 0x00, 0x00,
        0x03,\n                    0x0c, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x06, 0x00,
        0x0b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0c, 0x00,\n                    0x00,
        0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x01, 0x01, 0x00, 0x15, 0x00, 0x00, 0x02,
        0x01, 0x00,\n                    0x16, 0x00, 0x00, 0x01, 0x01, 0x00, 0x17,
        0x00, 0x00, 0x02, 0x01, 0x00, 0x18, 0x00, 0x00, 0x01,\n                    0x01,
        0x00, 0x19, 0x00, 0x00, 0x04, 0x01, 0x00, 0x1a, 0x00, 0x00, 0x01, 0x01, 0x00,
        0x1b, 0x00,\n                    0x00, 0x05, 0x01, 0x00, 0x1c, 0x00, 0x00,
        0x01, 0x01, 0x00, 0x1d, 0x00, 0x00, 0x04, 0x01, 0x00,\n                    0x20,
        0x00, 0x00, 0x04, 0x04, 0x00, 0x21, 0x00, 0x00, 0x04, 0x04, 0x00, 0x22, 0x00,
        0x00, 0x04,\n                    0x04, 0x00, 0x23, 0x00, 0x00, 0x00, 0x09,
        0x00, 0x25, 0x00, 0x00, 0x00, 0x08, 0x00, 0x43, 0x00,\n                    0x00,
        0x02, 0x02\n                }\n            }, {\n                /* commands:
        tssgetcapability -v -cap 2 */\n                .cmd = (uint8_t[]){\n                    0x80,
        0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x01, 0x7a, 0x00,\n                    0x00,
        0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40\n                },\n
        \               .rsp = (uint8_t[]){\n                    0x80, 0x01, 0x00,
        0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,\n
        \                   0x00, 0x00, 0x1a, 0x04, 0x40, 0x01, 0x20, 0x02, 0x40,
        0x01, 0x29, 0x02, 0x40, 0x01, 0x2b, 0x12,\n                    0x00, 0x01,
        0x31, 0x02, 0x40, 0x01, 0x3c, 0x00, 0x40, 0x01, 0x43, 0x00, 0x40, 0x01, 0x44,
        0x00,\n                    0x40, 0x01, 0x45, 0x04, 0x00, 0x01, 0x48, 0x04,
        0x00, 0x01, 0x4e, 0x02, 0x00, 0x01, 0x53, 0x02,\n                    0x00,
        0x01, 0x56, 0x12, 0x00, 0x01, 0x57, 0x02, 0x00, 0x01, 0x58, 0x02, 0x00, 0x01,
        0x5c, 0x00,\n                    0x00, 0x01, 0x65, 0x02, 0x00, 0x01, 0x69,
        0x02, 0x00, 0x01, 0x73, 0x14, 0x00, 0x01, 0x76, 0x00,\n                    0x00,
        0x01, 0x7a, 0x00, 0x00, 0x01, 0x7c, 0x00, 0x00, 0x01, 0x7d, 0x00, 0x00, 0x01,
        0x7e, 0x02,\n                    0x40, 0x01, 0x82, 0x05, 0x40, 0x01, 0x85,
        0x10, 0x00, 0x01, 0x86\n                }\n            }, {\n                /*
        pcrs: tssgetcapability -v -cap 5 */\n                .cmd = (uint8_t[]){\n
        \                   0x80, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x01,
        0x7a, 0x00,\n                    0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x40\n                },\n                .rsp = (uint8_t[]){\n
        \                   0x80, 0x01, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00,\n                    0x00, 0x00,
        0x02, 0x00, 0x0b, 0x03, 0xff, 0xff, 0xff, 0x00, 0x0c, 0x03, 0xff, 0xff, 0xff\n
        \               }\n            }, {\n                /* curves: tssgetcapability
        -v -cap 8 */\n                .cmd = (uint8_t[]){\n                    0x80,
        0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x01, 0x7a, 0x00,\n                    0x00,
        0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40\n                },\n
        \               .rsp = (uint8_t[]){\n                    0x80, 0x01, 0x00,
        0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,\n
        \                   0x00, 0x00, 0x05, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03,
        0x00, 0x04, 0x00, 0x05\n                }\n            }, {\n                /*
        unsupported command: tsschangeeps -v */\n                .cmd = (uint8_t[]){\n
        \                   0x80, 0x02, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x01,
        0x24, 0x40, 0x00, 0x00, 0x0c, 0x00, 0x00,\n                    0x00, 0x09,
        0x40, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00\n                },\n
        \               .rsp = (uint8_t[]){\n                    0x80, 0x01, 0x00,
        0x00, 0x00, 0x0a, 0x00, 0x00, 0x01, 0x43\n                }\n            },
        {\n               // keep last\n            }\n        }\n    }, {\n        //
        commands 0x199-0x19a require StateFormatLevel 3\n        .profile = \"{\"\n
        \                   \"\\\"Name\\\":\\\"custom\\\",\"\n                    \"\\\"StateFormatLevel\\\":2,\"\n
        \                   \"\\\"Commands\\\":\\\"0x11f-0x122,0x124-0x12e,0x130-0x140,0x142-0x159,\"\n
        \                                  \"0x15b-0x15e,0x160-0x165,0x167-0x174,0x176-0x178,\"\n
        \                                  \"0x17a-0x193,0x197,0x199-0x19a\\\",\"\n
        \                   \"\\\"Description\\\":\\\"test\\\"\"\n                   \"}\",\n
        \       .exp_fail = true,\n    }, {\n        .profile = \"{\"\n                    \"\\\"Name\\\":\\\"custom\\\",\"\n
        \                   \"\\\"StateFormatLevel\\\":3,\"\n                    \"\\\"Commands\\\":\\\"0x11f-0x122,0x124-0x12e,0x130-0x140,0x142-0x159,\"\n
        \                                  \"0x15b-0x15e,0x160-0x165,0x167-0x174,0x176-0x178,\"\n
        \                                  \"0x17a-0x193,0x197,0x199-0x19a\\\",\"\n
        \                   \"\\\"Description\\\":\\\"test\\\"\"\n                   \"}\",\n
        \       .exp_fail = false,\n        .exp_profile =\n          \"{\\\"ActiveProfile\\\":{\"\n
        \           \"\\\"Name\\\":\\\"custom\\\",\"\n            \"\\\"StateFormatLevel\\\":3,\"\n
        \           \"\\\"Commands\\\":\\\"0x11f-0x122,0x124-0x12e,0x130-0x140,0x142-0x159,\"\n
        \                          \"0x15b-0x15e,0x160-0x165,0x167-0x174,0x176-0x178,\"\n
        \                          \"0x17a-0x193,0x197,0x199-0x19a\\\",\"\n            \"\\\"Algorithms\\\":\\\"rsa,rsa-min-size=1024,tdes,tdes-min-size=128,\"\n
        \                            \"sha1,hmac,aes,aes-min-size=128,mgf1,keyedhash,\"\n
        \                            \"xor,sha256,sha384,sha512,null,rsassa,rsaes,rsapss,\"\n
        \                            \"oaep,ecdsa,ecdh,ecdaa,sm2,ecschnorr,ecmqv,\"\n
        \                            \"kdf1-sp800-56a,kdf2,kdf1-sp800-108,ecc,ecc-min-size=192,\"\n
        \                            \"ecc-nist,ecc-bn,ecc-sm2-p256,symcipher,camellia,\"\n
        \                            \"camellia-min-size=128,cmac,ctr,ofb,cbc,cfb,ecb\\\",\"\n
        \           \"\\\"Description\\\":\\\"test\\\"\"\n          \"}}\",\n    },
        {\n        // commands 0x19b-0x19c require StateFormatLevel 5\n        .profile
        = \"{\"\n                    \"\\\"Name\\\":\\\"custom\\\",\"\n                    \"\\\"StateFormatLevel\\\":4,\"\n
        \                   \"\\\"Commands\\\":\\\"0x11f-0x122,0x124-0x12e,0x130-0x140,0x142-0x159,\"\n
        \                                  \"0x15b-0x15e,0x160-0x165,0x167-0x174,0x176-0x178,\"\n
        \                                  \"0x17a-0x193,0x197,0x199-0x19b\\\",\"\n
        \                   \"\\\"Description\\\":\\\"test\\\"\"\n                   \"}\",\n
        \       .exp_fail = true,\n    }, {\n        .profile = \"{\"\n                    \"\\\"Name\\\":\\\"custom\\\",\"\n
        \                   \"\\\"StateFormatLevel\\\":0,\"\n                    \"\\\"Commands\\\":\\\"0x11f-0x122,0x124-0x12e,0x130-0x140,0x142-0x159,\"\n
        \                                  \"0x15b-0x15e,0x160-0x165,0x167-0x174,0x176-0x178,\"\n
        \                                  \"0x17a-0x193,0x197,0x19b-0x19c\\\",\"\n
        \                   \"\\\"Description\\\":\\\"test\\\"\"\n                   \"}\",\n
        \       .exp_fail = false,\n        .exp_profile =\n          \"{\\\"ActiveProfile\\\":{\"\n
        \           \"\\\"Name\\\":\\\"custom\\\",\"\n            \"\\\"StateFormatLevel\\\":8,\"\n
        \           \"\\\"Commands\\\":\\\"0x11f-0x122,0x124-0x12e,0x130-0x140,0x142-0x159,\"\n
        \                          \"0x15b-0x15e,0x160-0x165,0x167-0x174,0x176-0x178,\"\n
        \                          \"0x17a-0x193,0x197,0x19b-0x19c\\\",\"\n            \"\\\"Algorithms\\\":\\\"rsa,rsa-min-size=1024,tdes,tdes-min-size=128,\"\n
        \                            \"sha1,hmac,aes,aes-min-size=128,mgf1,keyedhash,\"\n
        \                            \"xor,sha256,sha384,sha512,null,rsassa,rsaes,rsapss,\"\n
        \                            \"oaep,ecdsa,ecdh,ecdaa,sm2,ecschnorr,ecmqv,\"\n
        \                            \"kdf1-sp800-56a,kdf2,kdf1-sp800-108,ecc,ecc-min-size=192,\"\n
        \                            \"ecc-nist,ecc-bn,ecc-sm2-p256,symcipher,camellia,\"\n
        \                            \"camellia-min-size=128,cmac,ctr,ofb,cbc,cfb,ecb\\\",\"\n
        \           \"\\\"Description\\\":\\\"test\\\"\"\n          \"}}\",\n    },
        {\n        // choosen StateFormatLevel 4 not require by commands but enables
        bugfix\n        // -> stays at StateFormatLevel 4\n        .profile = \"{\"\n
        \                   \"\\\"Name\\\":\\\"custom\\\",\"\n                    \"\\\"StateFormatLevel\\\":4,\"\n
        \                   \"\\\"Commands\\\":\\\"0x11f-0x122,0x124-0x12e,0x130-0x140,0x142-0x159,\"\n
        \                                  \"0x15b-0x15e,0x160-0x165,0x167-0x174,0x176-0x178,\"\n
        \                                  \"0x17a-0x193,0x197\\\",\"\n                    \"\\\"Description\\\":\\\"test\\\"\"\n
        \                  \"}\",\n        .exp_fail = false,\n        .exp_profile
        =\n          \"{\\\"ActiveProfile\\\":{\"\n            \"\\\"Name\\\":\\\"custom\\\",\"\n
        \           \"\\\"StateFormatLevel\\\":4,\"\n            \"\\\"Commands\\\":\\\"0x11f-0x122,0x124-0x12e,0x130-0x140,0x142-0x159,\"\n
        \                          \"0x15b-0x15e,0x160-0x165,0x167-0x174,0x176-0x178,\"\n
        \                          \"0x17a-0x193,0x197\\\",\"\n            \"\\\"Algorithms\\\":\\\"rsa,rsa-min-size=1024,tdes,tdes-min-size=128,\"\n
        \                            \"sha1,hmac,aes,aes-min-size=128,mgf1,keyedhash,\"\n
        \                            \"xor,sha256,sha384,sha512,null,rsassa,rsaes,rsapss,\"\n
        \                            \"oaep,ecdsa,ecdh,ecdaa,sm2,ecschnorr,ecmqv,\"\n
        \                            \"kdf1-sp800-56a,kdf2,kdf1-sp800-108,ecc,ecc-min-size=192,\"\n
        \                            \"ecc-nist,ecc-bn,ecc-sm2-p256,symcipher,camellia,\"\n
        \                            \"camellia-min-size=128,cmac,ctr,ofb,cbc,cfb,ecb\\\",\"\n
        \           \"\\\"Description\\\":\\\"test\\\"\"\n          \"}}\",\n    },
        {\n        .profile = \"{\"\n                    \"\\\"Name\\\":\\\"custom\\\",\"\n
        \                   \"\\\"StateFormatLevel\\\":4,\"\n                    \"\\\"Attributes\\\":\\\"no-unpadded-encryption\\\",\"\n
        \                   \"\\\"Description\\\":\\\"test\\\"\"\n                   \"}\",\n
        \       .exp_fail = true, /* StateFormatLevel 7 required */\n    }, {\n        .profile
        = \"{\" /* StateFormatLevel 7 is chosen */\n                    \"\\\"Name\\\":\\\"custom\\\",\"\n
        \                   \"\\\"Commands\\\":\\\"0x11f-0x122,0x124-0x12e,0x130-0x140,0x142-0x159,\"\n
        \                                  \"0x15b-0x15e,0x160-0x165,0x167-0x174,0x176-0x178,\"\n
        \                                  \"0x17a-0x193,0x197\\\",\"\n                    \"\\\"Attributes\\\":\\\"no-unpadded-encryption,no-sha1-signing,\"\n
        \                                   \"no-sha1-verification,drbg-continous-test,pct,\"\n
        \                                   \"no-ecc-key-derivation\\\",\"\n                    \"\\\"Description\\\":\\\"test\\\"\"\n
        \                  \"}\",\n        .exp_fail = false,\n        .exp_profile
        =\n          \"{\\\"ActiveProfile\\\":{\"\n            \"\\\"Name\\\":\\\"custom\\\",\"\n
        \           \"\\\"StateFormatLevel\\\":8,\"\n            \"\\\"Commands\\\":\\\"0x11f-0x122,0x124-0x12e,0x130-0x140,0x142-0x159,\"\n
        \                          \"0x15b-0x15e,0x160-0x165,0x167-0x174,0x176-0x178,\"\n
        \                          \"0x17a-0x193,0x197\\\",\"\n            \"\\\"Algorithms\\\":\\\"rsa,rsa-min-size=1024,tdes,tdes-min-size=128,\"\n
        \                            \"sha1,hmac,aes,aes-min-size=128,mgf1,keyedhash,\"\n
        \                            \"xor,sha256,sha384,sha512,null,rsassa,rsaes,rsapss,\"\n
        \                            \"oaep,ecdsa,ecdh,ecdaa,sm2,ecschnorr,ecmqv,\"\n
        \                            \"kdf1-sp800-56a,kdf2,kdf1-sp800-108,ecc,ecc-min-size=192,\"\n
        \                            \"ecc-nist,ecc-bn,ecc-sm2-p256,symcipher,camellia,\"\n
        \                            \"camellia-min-size=128,cmac,ctr,ofb,cbc,cfb,ecb\\\",\"\n
        \           \"\\\"Attributes\\\":\\\"no-unpadded-encryption,no-sha1-signing,\"\n
        \                            \"no-sha1-verification,drbg-continous-test,pct,\"\n
        \                            \"no-ecc-key-derivation\\\",\"\n            \"\\\"Description\\\":\\\"test\\\"\"\n
        \         \"}}\",\n    }, {\n        .profile = \"{\" /* StateFormatLevel
        7 is chosen */\n                    \"\\\"Name\\\":\\\"custom:test\\\",\"\n
        \                   \"\\\"Algorithms\\\":\\\"rsa,rsa-min-size=1024,tdes,tdes-min-size=128,\"\n
        \                                    \"sha1,hmac,aes,aes-min-size=128,mgf1,keyedhash,\"\n
        \                                    \"xor,sha256,sha384,sha512,null,rsassa,rsaes,rsapss,\"\n
        \                                    \"oaep,ecdsa,ecdh,ecdaa,sm2,ecschnorr,ecmqv,\"\n
        \                                    \"kdf1-sp800-56a,kdf2,kdf1-sp800-108,ecc,ecc-min-size=192,\"\n
        \                                    \"ecc-nist,ecc-bn,ecc-sm2-p256,symcipher,camellia,\"\n
        \                                    \"camellia-min-size=128,cmac,ctr,ofb,cbc,cfb,ecb,\"\n
        \                                    \"hmac-min-key-size=128\\\",\"\n                    \"\\\"Description\\\":\\\"test\\\"\"\n
        \                  \"}\",\n        .exp_fail = false,\n        .exp_profile
        =\n          \"{\\\"ActiveProfile\\\":{\"\n            \"\\\"Name\\\":\\\"custom:test\\\",\"\n
        \           \"\\\"StateFormatLevel\\\":8,\"\n            \"\\\"Commands\\\":\\\"0x11f-0x122,0x124-0x12e,0x130-0x140,0x142-0x159,\"\n
        \                          \"0x15b-0x15e,0x160-0x165,0x167-0x174,0x176-0x178,\"\n
        \                          \"0x17a-0x193,0x197,0x199-0x19c\\\",\"\n            \"\\\"Algorithms\\\":\\\"rsa,rsa-min-size=1024,tdes,tdes-min-size=128,\"\n
        \                            \"sha1,hmac,aes,aes-min-size=128,mgf1,keyedhash,\"\n
        \                            \"xor,sha256,sha384,sha512,null,rsassa,rsaes,rsapss,\"\n
        \                            \"oaep,ecdsa,ecdh,ecdaa,sm2,ecschnorr,ecmqv,\"\n
        \                            \"kdf1-sp800-56a,kdf2,kdf1-sp800-108,ecc,ecc-min-size=192,\"\n
        \                            \"ecc-nist,ecc-bn,ecc-sm2-p256,symcipher,camellia,\"\n
        \                            \"camellia-min-size=128,cmac,ctr,ofb,cbc,cfb,ecb,\"\n
        \                            \"hmac-min-key-size=128\\\",\"\n            \"\\\"Description\\\":\\\"test\\\"\"\n
        \         \"}}\",\n    }, {\n        // keep last\n    }\n}"
      pos:
        line_end: 44
        line_start: 39
        source_file: /src/libtpms/tests/tpm2_setprofile.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/libtpms/tests/object_size.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/libtpms/tests/tpm2_selftest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm_library_conf.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_RSA_KEY_LENGTH_MAX
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: TPM_BUFFER_MAX
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: TPM_KEY_HANDLES
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: '20            '
    - item_type: preproc_def
      name: TPM_OWNER_EVICT_KEY_HANDLES
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: '10            '
    - item_type: preproc_def
      name: TPM_MIN_AUTH_SESSIONS
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: '16            '
    - item_type: preproc_def
      name: TPM_MIN_TRANS_SESSIONS
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: '16            '
    - item_type: preproc_def
      name: TPM_MIN_DAA_SESSIONS
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: '2            '
    - item_type: preproc_def
      name: TPM_MIN_SESSION_LIST
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: '128            '
    - item_type: preproc_def
      name: TPM_MIN_COUNTERS
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: '8            '
    - item_type: preproc_def
      name: TPM_NUM_FAMILY_TABLE_ENTRY_MIN
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: '16            '
    - item_type: preproc_def
      name: TPM_NUM_DELEGATE_TABLE_ENTRY_MIN
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: '4            '
    - item_type: preproc_def
      name: TPM_SPACE_SAFETY_MARGIN
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: (4 * 1024)
    - item_type: preproc_def
      name: TPM_PERMANENT_ALL_BASE_SIZE
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: '(2334 '
    - item_type: preproc_def
      name: TPM_MAX_NV_SPACE
      pos:
        line_end: 140
        line_start: 137
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: "(TPM_PERMANENT_ALL_BASE_SIZE +       \\\n                                      TPM_OWNER_EVICT_KEY_HANDLES
        * 559 + \\\n                                      TPM_MAX_NV_DEFINED_SIZE)"
    - item_type: preproc_def
      name: TPM_KEY_HANDLES
      pos:
        line_end: 147
        line_start: 141
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: "* 559 +       \\\n                                      TPM_MIN_TRANS_SESSIONS
        * 78 + \\\n                                      TPM_MIN_DAA_SESSIONS * 844
        +  \\\n                                      TPM_MIN_AUTH_SESSIONS * 119 +
        \\\n                                      TPM_SPACE_SAFETY_MARGIN)"
    - item_type: preproc_def
      name: TPM_KEY_HANDLES
      pos:
        line_end: 154
        line_start: 148
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: "* 559 +       \\\n                                      TPM_MIN_TRANS_SESSIONS
        * 78 + \\\n                                      TPM_MIN_DAA_SESSIONS * 844
        +  \\\n                                      TPM_MIN_AUTH_SESSIONS * 119 +
        \\\n                                      TPM_SPACE_SAFETY_MARGIN)"
    - item_type: preproc_def
      name: TPM_SMALL_DURATION
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: ( 50 * 1000 * 1000)
    - item_type: preproc_def
      name: TPM_MEDIUM_DURATION
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: (100 * 1000 * 1000)
    - item_type: preproc_def
      name: TPM_LONG_DURATION
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/libtpms/src/tpm_library_conf.h
      type_or_value: (300 * 1000 * 1000)
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPMLIB_GetVersion
  - TPMLIB_ChooseTPMVersion
  - TPMLIB_MainInit
  - TPMLIB_Terminate
  - TPMLIB_Process
  - TPMLIB_VolatileAll_Store
  - TPMLIB_CancelCommand
  - TPMLIB_GetTPMProperty
  - TPMLIB_GetInfo
  - TPMLIB_SetState
  - TPMLIB_GetState
  - TPM_IO_Hash_Start
  - TPM_IO_Hash_Data
  - TPM_IO_Hash_End
  - TPM_IO_TpmEstablished_Get
  - TPM_IO_TpmEstablished_Reset
  - TPMLIB_SetBufferSize
  - TPMLIB_ValidateState
  - TPMLIB_SetProfile
  - TPMLIB_WasManufactured
  - TPMLIB_GetCallbacks
  - TPMLIB_RegisterCallbacks
  - is_base64ltr
  - TPMLIB_OpenSSL_Base64Decode
  - TPMLIB_Base64Decode
  - TPMLIB_GetPlaintext
  - TPMLIB_DecodeBlob
  - TPMLIB_SetDebugFD
  - TPMLIB_SetDebugLevel
  - TPMLIB_SetDebugPrefix
  - TPMLIB_LogPrintf
  - TPMLIB_LogPrintfA
  - TPMLIB_LogArray
  - TPMLIB_asprintf
  - ClearCachedState
  - ClearAllCachedState
  - SetCachedState
  - GetCachedState
  - HasCachedState
  - CopyCachedState
  - TPMLIB_StateTypeToName
  - TPMLIB_NameToStateType
  source_file: /src/libtpms/src/tpm_library.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*starttag'
        type: char
      - name: '*endtag'
        type: char
      item_type: struct
      name: tags_and_indices
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm_library.c
    typedefs: []
    union: []
- function_names:
  - _TPM2_CheckNVRAMFileExists
  - TPM2_MainInit
  - TPM2_Terminate
  - TPM2_Process
  - TPM2_PersistentAllStore
  - TPM2_VolatileAllStore
  - TPM2_CancelCommand
  - TPM2_GetTPMProperty
  - TPM2_GetInfo
  - TPM2_SetBufferSize
  - TPM2_GetBufferSize
  - TPM2_ValidateState
  - TPM2_GetState
  - TPM2_SetState
  - TPM2_SetProfile
  - TPM2_WasManufactured
  source_file: /src/libtpms/src/tpm_tpm2_interface.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM12_MainInit
  - TPM12_Terminate
  - TPM12_Process
  - TPM12_VolatileAllStore
  - TPM12_CancelCommand
  - TPM12_GetTPMProperty
  - TPM12_GetInfo
  - TPM12_SetBufferSize
  - TPM12_GetBufferSize
  - TPM12_ValidateState
  - _TPM_PermanentAll_Store
  - TPM_PermanentAll_NVLoad_Preserve
  - TPM12_GetState
  - TPM12_SetState
  - TPM12_SetProfile
  - TPM12_WasManufactured
  source_file: /src/libtpms/src/tpm_tpm12_interface.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM12_IO_Hash_Start
  - TPM12_IO_Hash_Data
  - TPM12_IO_Hash_End
  - TPM12_IO_TpmEstablished_Get
  - TPM12_IO_TpmEstablished_Reset
  source_file: /src/libtpms/src/tpm_tpm12_tis.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - printf
  source_file: /src/libtpms/src/tpm_debug.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: printf
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libtpms/src/tpm_debug.h
      type_or_value: swallow_rc = swallow_rc && tpm_swallow_printf_args
    structs: []
    typedefs: []
    union: []
- function_names:
  - tpm_swallow_printf_args
  - TPM_PrintFourLimit
  - TPM_PrintFour
  - TPM_PrintAll
  source_file: /src/libtpms/src/tpm_debug.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2_IO_TpmEstablished_Get
  - TPM2_IO_TpmEstablished_Reset
  - TPM2_IO_Hash_Start
  - TPM2_IO_Hash_Data
  - TPM2_IO_Hash_End
  source_file: /src/libtpms/src/tpm_tpm2_tis.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ATTRIBUTE_FORMAT
  - ATTRIBUTE_FORMAT
  source_file: /src/libtpms/src/compiler.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIBTPMS_ATTR_UNUSED
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libtpms/src/compiler.h
      type_or_value: __attribute__((unused))
    structs: []
    typedefs: []
    union: []
- function_names:
  - ROUNDUP
  - _STRINGIFY
  - STRINGIFY
  - TPMLIB_LogError
  - TPMLIB_LogTPM12Error
  - TPMLIB_LogTPM2Error
  source_file: /src/libtpms/src/tpm_library_intern.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_RC_BAD_PARAMETER
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/libtpms/src/tpm_library_intern.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: TPM_RC_BAD_VERSION
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libtpms/src/tpm_library_intern.h
      type_or_value: '0x2e'
    - item_type: preproc_def
      name: BUFLEN_EMPTY_BUFFER
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/libtpms/src/tpm_library_intern.h
      type_or_value: '0xFFFFFFFF'
    structs:
    - fields:
      - name: (*MainInit)(void)
        type: TPM_RESULT
      - name: (*Terminate)(void)
        type: void
      - name: "(*SetBufferSize)(uint32_t wanted_size, uint32_t *min_size,\n                              uint32_t
          *max_size)"
        type: uint32_t
      - name: "(*Process)(unsigned char **respbuffer, uint32_t *resp_size,\n                          uint32_t
          *respbufsize,\n\t\t          unsigned char *command, uint32_t command_size)"
        type: TPM_RESULT
      - name: (*VolatileAllStore)(unsigned char **buffer, uint32_t *buflen)
        type: TPM_RESULT
      - name: (*CancelCommand)(void)
        type: TPM_RESULT
      - name: "(*GetTPMProperty)(enum TPMLIB_TPMProperty prop,\n                                 int
          *result)"
        type: TPM_RESULT
      - name: '*(*GetInfo)(enum TPMLIB_InfoFlags flags)'
        type: char
      - name: (*TpmEstablishedGet)(TPM_BOOL *tpmEstablished)
        type: TPM_RESULT
      - name: (*TpmEstablishedReset)(void)
        type: TPM_RESULT
      - name: (*HashStart)(void)
        type: TPM_RESULT
      - name: "(*HashData)(const unsigned char *data,\n                           uint32_t
          data_length)"
        type: TPM_RESULT
      - name: (*HashEnd)(void)
        type: TPM_RESULT
      - name: "(*ValidateState)(enum TPMLIB_StateType st,\n                                unsigned
          int flags)"
        type: TPM_RESULT
      - name: "(*SetState)(enum TPMLIB_StateType st,\n                           const
          unsigned char *buffer, uint32_t buflen)"
        type: TPM_RESULT
      - name: "(*GetState)(enum TPMLIB_StateType st,\n                           unsigned
          char **buffer, uint32_t *buflen)"
        type: TPM_RESULT
      - name: (*SetProfile)(const char *profile)
        type: TPM_RESULT
      - name: (*WasManufactured)(void)
        type: TPM_BOOL
      item_type: struct
      name: tpm_interface
      pos:
        line_end: 88
        line_start: 61
        source_file: /src/libtpms/src/tpm_library_intern.h
    - fields:
      - name: '*buffer'
        type: unsigned char
      - name: buflen
        type: uint32_t
      item_type: struct
      name: sized_buffer
      pos:
        line_end: 133
        line_start: 129
        source_file: /src/libtpms/src/tpm_library_intern.h
    typedefs: []
    union: []
- function_names:
  - TPM_NVRAM_Init
  - TPM_NVRAM_LoadData
  - TPM_NVRAM_StoreData
  - TPM_NVRAM_GetFilenameForName
  - TPM_NVRAM_DeleteName
  source_file: /src/libtpms/src/tpm_nvfile.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm_nvfile.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_FILENAME_MAX
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libtpms/src/tpm_nvfile.h
      type_or_value: '20'
    structs: []
    typedefs: []
    union: []
- function_names:
  - Disabled_MainInit
  - Disabled_Terminate
  - Disabled_Process
  - Disabled_VolatileAllStore
  - Disabled_CancelCommand
  - Disabled_GetTPMProperty
  - Disabled_GetInfo
  - Disabled_SetBufferSize
  - Disabled_ValidateState
  - Disabled_GetState
  - Disabled_SetState
  - Disabled_IO_Hash_Start
  - Disabled_IO_Hash_Data
  - Disabled_IO_Hash_End
  - Disabled_IO_TpmEstablished_Reset
  - Disabled_WasManufactured
  source_file: /src/libtpms/src/disabled_interface.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_Malloc
  - TPM_Realloc
  - TPM_Free
  source_file: /src/libtpms/src/tpm_memory.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_transport.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_key.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_KEY_RSA_NUMBITS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/libtpms/src/tpm12/tpm_key.h
      type_or_value: '2048'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_SizedBuffer_Init
  - TPM_SizedBuffer_Load
  - TPM_SizedBuffer_Set
  - TPM_SizedBuffer_SetFromStore
  - TPM_SizedBuffer_SetStructure
  - TPM_SizedBuffer_Copy
  - TPM_SizedBuffer_Store
  - TPM_SizedBuffer_Delete
  - TPM_SizedBuffer_Allocate
  - TPM_SizedBuffer_GetBool
  - TPM_SizedBuffer_GetUint32
  - TPM_SizedBuffer_Append32
  - TPM_SizedBuffer_Remove32
  - TPM_SizedBuffer_Zero
  source_file: /src/libtpms/src/tpm12/tpm_sizedbuffer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LOAD32
  - LOAD16
  - LOAD8
  - TPM_Load32
  - TPM_Load16
  - TPM_Load8
  - TPM_LoadBool
  - TPM_Loadn
  - TPM_LoadLong
  - TPM_LoadString
  - TPM_CheckTag
  source_file: /src/libtpms/src/tpm12/tpm_load.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_Crypto_Init
  - TPM_Crypto_TestSpecific
  - TPM_Random
  - TPM_StirRandomCmd
  - TPM_RSAGenerateKeyPair
  - TPM_RSAGeneratePublicToken
  - TPM_RSAGeneratePrivateToken
  - TPM_RSAPrivateDecrypt
  - TPM_RSAPrivateDecrypt
  - TPM_RSAPublicEncrypt
  - TPM_RSAPublicEncrypt
  - TPM_RSAPublicEncryptRaw
  - TPM_RSASign
  - TPM_RSASignSHA1
  - TPM_RSASignDER
  - TPM_RSAVerifySHA1
  - TPM_RSAGetPrivateKey
  - TPM_OpenSSL_PrintError
  - TPM_BN_num_bytes
  - TPM_BN_is_one
  - TPM_BN_mod
  - TPM_BN_mask_bits
  - TPM_BN_rshift
  - TPM_BN_lshift
  - TPM_BN_add
  - TPM_BN_mul
  - TPM_BN_mod_exp
  - TPM_BN_mod_add
  - TPM_BN_mod_mul
  - TPM_BN_CTX_new
  - TPM_BN_new
  - TPM_BN_free
  - TPM_bn2bin
  - TPM_bin2bn
  - TPM_SHA1InitCmd
  - TPM_SHA1UpdateCmd
  - TPM_SHA1FinalCmd
  - TPM_SHA1Delete
  - TPM_Sha1Context_Load
  - TPM_Sha1Context_Store
  - TPM_SymmetricKeyData_New
  - TPM_SymmetricKeyData_Free
  - TPM_SymmetricKeyData_Init
  - TPM_SymmetricKeyData_Load
  - TPM_SymmetricKeyData_Store
  - TPM_SymmetricKeyData_GenerateKey
  - TPM_SymmetricKeyData_Encrypt
  - TPM_SymmetricKeyData_Decrypt
  - TPM_SymmetricKeyData_Crypt
  - TPM_SymmetricKeyData_Init
  - TPM_SymmetricKeyData_Load
  - TPM_SymmetricKeyData_Store
  - TPM_SymmetricKeyData_GenerateKey
  - TPM_SymmetricKeyData_SetKey
  - TPM_SymmetricKeyData_SetKeys
  - TPM_SymmetricKeyData_Encrypt
  - TPM_SymmetricKeyData_Decrypt
  - TPM_SymmetricKeyData_CtrCrypt
  - TPM_AES_ctr128_encrypt
  - TPM_SymmetricKeyData_OfbCrypt
  source_file: /src/libtpms/src/tpm12/tpm_crypto.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_DES_BLOCK_SIZE
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/libtpms/src/tpm12/tpm_crypto.c
      type_or_value: '8'
    - item_type: preproc_def
      name: TPM_AES_BITS
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/libtpms/src/tpm12/tpm_crypto.c
      type_or_value: '128'
    - item_type: preproc_def
      name: TPM_AES_BLOCK_SIZE
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/libtpms/src/tpm12/tpm_crypto.c
      type_or_value: '16'
    structs:
    - fields:
      - name: tag
        type: TPM_TAG
      - name: valid
        type: TPM_BOOL
      - name: fill
        type: BYTE
      - name: des_cblock1
        type: DES_cblock
      - name: des_cblock2
        type: DES_cblock
      - name: des_cblock3
        type: DES_cblock
      item_type: struct
      name: tdTPM_SYMMETRIC_KEY_DATA
      pos:
        line_end: 120
        line_start: 113
        source_file: /src/libtpms/src/tpm12/tpm_crypto.c
    - fields:
      - name: tag
        type: TPM_TAG
      - name: valid
        type: TPM_BOOL
      - name: fill
        type: TPM_BOOL
      - name: userKey[TPM_AES_BLOCK_SIZE]
        type: unsigned char
      - name: aes_enc_key
        type: AES_KEY
      - name: aes_dec_key
        type: AES_KEY
      item_type: struct
      name: tdTPM_SYMMETRIC_KEY_DATA
      pos:
        line_end: 170
        line_start: 162
        source_file: /src/libtpms/src/tpm12/tpm_crypto.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_process.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_CHECK_NOT_SHUTDOWN
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/libtpms/src/tpm12/tpm_process.h
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: TPM_CHECK_ENABLED
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/libtpms/src/tpm12/tpm_process.h
      type_or_value: '0x00000004'
    - item_type: preproc_def
      name: TPM_CHECK_ACTIVATED
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/libtpms/src/tpm12/tpm_process.h
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: TPM_CHECK_OWNER
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/libtpms/src/tpm12/tpm_process.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: TPM_CHECK_NO_LOCKOUT
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/libtpms/src/tpm12/tpm_process.h
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: TPM_CHECK_NV_NOAUTH
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/libtpms/src/tpm12/tpm_process.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: TPM_CHECK_ALL
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/libtpms/src/tpm12/tpm_process.h
      type_or_value: '0x0000003f      '
    - item_type: preproc_def
      name: TPM_CHECK_ALLOW_NO_OWNER
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/libtpms/src/tpm12/tpm_process.h
      type_or_value: '0x0000002f      '
    structs:
    - fields:
      - name: ordinal
        type: TPM_COMMAND_CODE
      - name: process_function_v11
        type: tpm_process_function_t
      - name: process_function_v12
        type: tpm_process_function_t
      - name: auditable
        type: TPM_BOOL
      - name: auditDefault
        type: TPM_BOOL
      - name: ownerPermissionBlock
        type: uint16_t
      - name: ownerPermissionPosition
        type: uint32_t
      - name: keyPermissionBlock
        type: uint16_t
      - name: keyPermissionPosition
        type: uint32_t
      - name: inputHandleSize
        type: uint32_t
      - name: keyHandles
        type: uint32_t
      - name: outputHandleSize
        type: uint32_t
      - name: transportWrappable
        type: TPM_BOOL
      - name: instanceWrappable
        type: TPM_BOOL
      - name: hardwareWrappable
        type: TPM_BOOL
      item_type: struct
      name: tdTPM_ORDINAL_TABLE
      pos:
        line_end: 225
        line_start: 203
        source_file: /src/libtpms/src/tpm12/tpm_process.h
    typedefs:
    - item_type: typedef
      name: "(*tpm_process_function_t)(tpm_state_t *tpm_state,\n                                             TPM_STORE_BUFFER
        *response,\n                                             TPM_TAG tag,\n                                             uint32_t
        paramSize,\n                                             TPM_COMMAND_CODE
        ordinal,\n                                             unsigned char *command,\n
        \                                            TPM_TRANSPORT_INTERNAL *transportInternal)"
      pos:
        line_end: 201
        line_start: 195
        source_file: /src/libtpms/src/tpm12/tpm_process.h
      type: TPM_RESULT
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_io.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: TPM_CONNECTION_FD
      pos:
        line_end: 50
        line_start: 46
        source_file: /src/libtpms/src/tpm12/tpm_io.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_store.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*TPM_STORE_FUNCTION_T )(TPM_STORE_BUFFER *sbuffer,\n                                            const
        void *tpm_structure)"
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/libtpms/src/tpm12/tpm_store.h
      type: TPM_RESULT
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_pcr.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_sizedbuffer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_Migrationkeyauth_Init
  - TPM_Migrationkeyauth_Load
  - TPM_Migrationkeyauth_Store
  - TPM_Migrationkeyauth_Delete
  - TPM_MsaComposite_Init
  - TPM_MsaComposite_Load
  - TPM_MsaComposite_Store
  - TPM_MsaComposite_Delete
  - TPM_MsaComposite_CheckMigAuthDigest
  - TPM_MsaComposite_CheckSigTicket
  - TPM_CmkAuth_Init
  - TPM_CmkAuth_Load
  - TPM_CmkAuth_Store
  - TPM_CmkAuth_Delete
  - TPM_CmkMigauth_Init
  - TPM_CmkMigauth_Load
  - TPM_CmkMigauth_Store
  - TPM_CmkMigauth_Delete
  - TPM_CmkMigauth_CheckHMAC
  - TPM_CmkSigticket_Init
  - TPM_CmkSigticket_Load
  - TPM_CmkSigticket_Store
  - TPM_CmkSigticket_Delete
  - TPM_CmkMaApproval_Init
  - TPM_CmkMaApproval_Load
  - TPM_CmkMaApproval_Store
  - TPM_CmkMaApproval_Delete
  - TPM_CmkMaApproval_CheckHMAC
  - TPM_CreateBlobCommon
  - TPM_Process_CreateMigrationBlob
  - TPM_Process_ConvertMigrationBlob
  - TPM_Process_AuthorizeMigrationKey
  - TPM_Process_MigrateKey
  - TPM_Process_CMK_CreateKey
  - TPM_Process_CMK_CreateTicket
  - TPM_Process_CMK_CreateBlob
  - TPM_Process_CMK_SetRestrictions
  - TPM_Process_CMK_ApproveMA
  - TPM_Process_CMK_ConvertMigration
  source_file: /src/libtpms/src/tpm12/tpm_migration.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_storage.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_ver.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_permanent.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_nonce.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_commands.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_TAG_OFFSET
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/libtpms/src/tpm12/tpm_commands.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TPM_PARAMSIZE_OFFSET
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/libtpms/src/tpm12/tpm_commands.h
      type_or_value: (sizeof(TPM_TAG) + TPM_TAG_OFFSET)
    - item_type: preproc_def
      name: TPM_ORDINAL_OFFSET
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libtpms/src/tpm12/tpm_commands.h
      type_or_value: (sizeof(uint32_t)  + TPM_PARAMSIZE_OFFSET)
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_NVAttributes_Init
  - TPM_NVAttributes_Load
  - TPM_NVAttributes_Store
  - TPM_NVAttributes_Delete
  - TPM_NVAttributes_Copy
  - TPM_NVDataPublic_Init
  - TPM_NVDataPublic_Load
  - TPM_NVDataPublic_Store
  - TPM_NVDataPublic_Delete
  - TPM_NVDataSensitive_Init
  - TPM_NVDataSensitive_Load
  - TPM_NVDataSensitive_Store
  - TPM_NVDataSensitive_Delete
  - TPM_NVDataSensitive_IsValidIndex
  - TPM_NVDataSensitive_IsGPIO
  - TPM_NVDataSensitive_IsValidPlatformIndex
  - TPM_NVIndexEntries_Init
  - TPM_NVIndexEntries_Delete
  - TPM_NVIndexEntries_Trace
  - TPM_NVIndexEntries_Load
  - TPM_NVIndexEntries_Store
  - TPM_NVIndexEntries_StClear
  - TPM_NVIndexEntries_LoadVolatile
  - TPM_NVIndexEntries_StoreVolatile
  - TPM_NVIndexEntries_GetVolatile
  - TPM_NVIndexEntries_SetVolatile
  - TPM_NVIndexEntries_GetFreeEntry
  - TPM_NVIndexEntries_GetEntry
  - TPM_NVIndexEntries_GetUsedCount
  - TPM_NVIndexEntries_GetNVList
  - TPM_NVIndexEntries_GetUsedSpace
  - TPM_NVIndexEntries_GetFreeSpace
  - TPM_NVIndexEntries_DeleteOwnerAuthorized
  - TPM_NVIndexEntries_GetDataPublic
  - TPM_Process_NVReadValue
  - TPM_Process_NVReadValueAuth
  - TPM_Process_NVWriteValue
  - TPM_Process_NVWriteValueAuth
  - TPM_Process_NVDefineSpace
  - TPM_Process_DirWriteAuth
  - TPM_Process_DirRead
  source_file: /src/libtpms/src/tpm12/tpm_nvram.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_LimitedSelfTestCommon
  - TPM_LimitedSelfTestTPM
  - TPM_ContinueSelfTestCmd
  - TPM_SelfTestFullCmd
  - TPM_Process_SelfTestFull
  - TPM_Process_ContinueSelfTest
  - TPM_Process_GetTestResult
  - TPM_Process_SetOwnerInstall
  - TPM_Process_OwnerSetDisable
  - TPM_Process_PhysicalEnable
  - TPM_Process_PhysicalDisable
  - TPM_Process_PhysicalSetDeactivated
  - TPM_Process_SetTempDeactivated
  - TPM_Process_SetOperatorAuth
  - TPM_Process_ResetLockValue
  source_file: /src/libtpms/src/tpm12/tpm_admin.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_Locality_Set
  - TPM_Locality_Check
  - TPM_LocalitySelection_CheckLegal
  - TPM_LocalityModifier_CheckLegal
  - TPM_PCRLocality_Compare
  - TPM_PCR_CheckRange
  - TPM_PCR_Init
  - TPM_PCR_Reset
  - TPM_PCR_Load
  - TPM_PCR_Store
  - TPM_SelectSize_Init
  - TPM_SelectSize_Load
  - TPM_PCRAttributes_Init
  - TPM_PCRInfo_Trace
  - TPM_PCRs_Init
  - TPM_PCRs_Load
  - TPM_PCRs_Store
  - TPM_PCRComposite_Init
  - TPM_PCRComposite_Store
  - TPM_PCRComposite_Delete
  - TPM_PCRComposite_Set
  - TPM_PCRInfoShort_Init
  - TPM_PCRInfoShort_Load
  - TPM_PCRInfoShort_Store
  - TPM_PCRInfoShort_Delete
  - TPM_PCRInfoShort_Create
  - TPM_PCRInfoShort_LoadFromBuffer
  - TPM_PCRInfoShort_CreateFromBuffer
  - TPM_PCRInfoShort_Copy
  - TPM_PCRInfoShort_CopyInfo
  - TPM_PCRInfoShort_CopyInfoLong
  - TPM_PCRInfoShort_CreateFromInfo
  - TPM_PCRInfoShort_CreateFromInfoLong
  - TPM_PCRInfoShort_CreateFromKey
  - TPM_PCRInfoShort_GenerateDigest
  - TPM_PCRInfoShort_CheckDigest
  - TPM_PCRInfoShort_GetPCRUsage
  - TPM_PCRInfo_Init
  - TPM_PCRInfo_Load
  - TPM_PCRInfo_Store
  - TPM_PCRInfo_Delete
  - TPM_PCRInfo_Create
  - TPM_PCRInfo_LoadFromBuffer
  - TPM_PCRInfo_CreateFromBuffer
  - TPM_PCRInfo_Copy
  - TPM_PCRInfo_CopyInfoLong
  - TPM_PCRInfo_CreateFromInfo
  - TPM_PCRInfo_CreateFromInfoLong
  - TPM_PCRInfo_CreateFromKey
  - TPM_PCRInfo_GenerateDigest
  - TPM_PCRInfo_CheckDigest
  - TPM_PCRInfo_SetDigestAtCreation
  - TPM_PCRInfo_GetPCRUsage
  - TPM_PCRInfoLong_Init
  - TPM_PCRInfoLong_Load
  - TPM_PCRInfoLong_Store
  - TPM_PCRInfoLong_Delete
  - TPM_PCRInfoLong_Create
  - TPM_PCRInfoLong_LoadFromBuffer
  - TPM_PCRInfoLong_CreateFromBuffer
  - TPM_PCRInfoLong_Copy
  - TPM_PCRInfoLong_CreateFromInfoLong
  - TPM_PCRInfoLong_GenerateDigest
  - TPM_PCRInfoLong_CheckDigest
  - TPM_PCRInfoLong_SetDigestAtCreation
  - TPM_PCRInfoLong_GetPCRUsage
  - TPM_PCRSelection_Init
  - TPM_PCRSelection_Load
  - TPM_PCRSelection_Store
  - TPM_PCRSelection_Delete
  - TPM_PCRSelection_Copy
  - TPM_PCRSelection_GenerateDigest
  - TPM_PCRSelection_GenerateDigest2
  - TPM_PCRSelection_GetPCRUsage
  - TPM_PCRSelection_CheckRange
  - TPM_PCRSelection_Compare
  - TPM_PCRSelection_LessThan
  - TPM_QuoteInfo_Init
  - TPM_QuoteInfo_Load
  - TPM_QuoteInfo_Store
  - TPM_QuoteInfo_Delete
  - TPM_QuoteInfo2_Init
  - TPM_QuoteInfo2_Load
  - TPM_QuoteInfo2_Store
  - TPM_QuoteInfo2_Delete
  - TPM_Process_PcrRead
  - TPM_Process_Quote
  - TPM_Process_Quote2
  - TPM_ExtendCommon
  - TPM_Process_Extend
  - TPM_Process_PcrReset
  source_file: /src/libtpms/src/tpm12/tpm_pcr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_Transport_CryptMgf1
  - TPM_Transport_CryptSymmetric
  - TPM_TransportSessions_Init
  - TPM_TransportSessions_Load
  - TPM_TransportSessions_Store
  - TPM_TransportSessions_Delete
  - TPM_TransportSessions_IsSpace
  - TPM_TransportSessions_GetSpace
  - TPM_TransportSessions_StoreHandles
  - TPM_TransportSessions_GetNewHandle
  - TPM_TransportSessions_GetEntry
  - TPM_TransportSessions_AddEntry
  - TPM_TransportSessions_TerminateHandle
  - TPM_TransportPublic_Init
  - TPM_TransportPublic_Load
  - TPM_TransportPublic_Store
  - TPM_TransportPublic_Delete
  - TPM_TransportPublic_Copy
  - TPM_TransportPublic_CheckAlgId
  - TPM_TransportPublic_CheckEncScheme
  - TPM_TransportInternal_Init
  - TPM_TransportInternal_Load
  - TPM_TransportInternal_Store
  - TPM_TransportInternal_Delete
  - TPM_TransportInternal_Copy
  - TPM_TransportInternal_Check
  - TPM_TransportInternal_Set
  - TPM_TransportLogIn_Init
  - TPM_TransportLogIn_Store
  - TPM_TransportLogIn_Delete
  - TPM_TransportLogIn_Extend
  - TPM_TransportLogOut_Init
  - TPM_TransportLogOut_Store
  - TPM_TransportLogOut_Delete
  - TPM_TransportLogOut_Extend
  - TPM_TransportAuth_Init
  - TPM_TransportAuth_Load
  - TPM_TransportAuth_Store
  - TPM_TransportAuth_Delete
  - TPM_TransportAuth_DecryptSecret
  - TPM_Process_EstablishTransport
  - TPM_Process_ExecuteTransport
  - TPM_Process_ReleaseTransportSigned
  source_file: /src/libtpms/src/tpm12/tpm_transport.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_Key_Init
  - TPM_Key_InitTag12
  - TPM_Key_Set
  - TPM_Key_Copy
  - TPM_Key_Load
  - TPM_Key_LoadClear
  - TPM_Key_LoadPubData
  - TPM_Key_StorePubData
  - TPM_Key_Store
  - TPM_Key_StoreClear
  - TPM_Key_StorePubkey
  - TPM_Key_Delete
  - TPM_Key_CheckStruct
  - TPM_Key_CheckTag
  - TPM_Key_CheckProperties
  - TPM_Key_LoadStoreAsymKey
  - TPM_Key_GetStoreAsymkey
  - TPM_Key_GetMigrateAsymkey
  - TPM_Key_GetUsageAuth
  - TPM_Key_GetPublicKey
  - TPM_Key_GetPrimeFactorP
  - TPM_Key_GetPrivateKey
  - TPM_Key_GetExponent
  - TPM_Key_GetPCRUsage
  - TPM_Key_GetLocalityAtRelease
  - TPM_Key_GenerateRSA
  - TPM_Key_GeneratePubkeyDigest
  - TPM_Key_ComparePubkey
  - TPM_Key_GeneratePubDataDigest
  - TPM_Key_CheckPubDataDigest
  - TPM_Key_GenerateEncData
  - TPM_Key_DecryptEncData
  - TPM_Key_CheckPCRDigest
  - TPM_Key_CheckRestrictDelegate
  - TPM_KeyFlags_Load
  - TPM_KeyParms_Init
  - TPM_KeyParms_SetRSA
  - TPM_KeyParms_Copy
  - TPM_KeyParms_Load
  - TPM_KeyParms_GetExponent
  - TPM_KeyParms_Store
  - TPM_KeyParms_Delete
  - TPM_KeyParms_GetRSAKeyParms
  - TPM_KeyParms_CheckProperties
  - TPM_KeyParams_CheckDefaultExponent
  - TPM_StoreAsymkey_Init
  - TPM_StoreAsymkey_Load
  - TPM_StoreAsymkey_LoadTest
  - TPM_StoreAsymkey_Store
  - TPM_StoreAsymkey_Delete
  - TPM_StoreAsymkey_GenerateEncData
  - TPM_StoreAsymkey_GetPrimeFactorP
  - TPM_StoreAsymkey_GetO1Size
  - TPM_StoreAsymkey_CheckO1Size
  - TPM_StoreAsymkey_StoreO1
  - TPM_StoreAsymkey_LoadO1
  - TPM_MigrateAsymkey_Init
  - TPM_MigrateAsymkey_Load
  - TPM_MigrateAsymkey_Store
  - TPM_MigrateAsymkey_Delete
  - TPM_StorePrivkey_Init
  - TPM_StorePrivkey_Convert
  - TPM_StorePrivkey_Store
  - TPM_StorePrivkey_Delete
  - TPM_Pubkey_Init
  - TPM_Pubkey_Load
  - TPM_Pubkey_Store
  - TPM_Pubkey_Delete
  - TPM_Pubkey_Set
  - TPM_Pubkey_Copy
  - TPM_Pubkey_GetExponent
  - TPM_Pubkey_GetPublicKey
  - TPM_RSAKeyParms_Init
  - TPM_RSAKeyParms_Load
  - TPM_RSAKeyParms_Store
  - TPM_RSAKeyParms_Delete
  - TPM_RSAKeyParms_Copy
  - TPM_RSAKeyParms_New
  - TPM_RSAKeyParms_GetExponent
  - TPM_KeyHandleEntry_Init
  - TPM_KeyHandleEntry_Load
  - TPM_KeyHandleEntry_Store
  - TPM_KeyHandleEntry_Delete
  - TPM_KeyHandleEntry_FlushSpecific
  - TPM_KeyHandleEntries_Init
  - TPM_KeyHandleEntries_Delete
  - TPM_KeyHandleEntries_Load
  - TPM_KeyHandleEntries_Store
  - TPM_KeyHandleEntries_StoreHandles
  - TPM_KeyHandleEntries_DeleteHandle
  - TPM_KeyHandleEntries_IsSpace
  - TPM_KeyHandleEntries_GetSpace
  - TPM_KeyHandleEntries_IsEvictSpace
  - TPM_KeyHandleEntries_AddKeyEntry
  - TPM_KeyHandleEntries_AddEntry
  - TPM_KeyHandleEntries_GetEntry
  - TPM_KeyHandleEntries_GetNextEntry
  - TPM_KeyHandleEntries_GetKey
  - TPM_KeyHandleEntries_SetParentPCRStatus
  - TPM_KeyHandleEntries_OwnerEvictLoad
  - TPM_KeyHandleEntries_OwnerEvictStore
  - TPM_KeyHandleEntries_OwnerEvictGetCount
  - TPM_KeyHandleEntries_OwnerEvictDelete
  - TPM_Process_ReadPubek
  - TPM_Process_CreateRevocableEK
  - TPM_Process_CreateEndorsementKeyPair
  - TPM_CreateEndorsementKeyPair_Common
  - TPM_Process_RevokeTrust
  - TPM_Process_DisablePubekRead
  - TPM_Process_OwnerReadPubek
  - TPM_Process_EvictKey
  - TPM_Process_OwnerReadInternalPub
  source_file: /src/libtpms/src/tpm12/tpm_key.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_RSAGenerateEVP_PKEY
  source_file: /src/libtpms/src/tpm12/tpm_openssl_helpers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_audit.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_Authdata_Init
  - TPM_Authdata_Load
  - TPM_Authdata_Store
  - TPM_AuthParams_Get
  - TPM_AuthParams_Set
  - TPM_Authdata_Generate
  - TPM_Authdata_Check
  - TPM_Auth2data_Check
  - TPM_Authdata_Fail
  - TPM_Authdata_GetState
  - TPM_Authdata_CheckState
  - TPM_ChangeauthValidate_Init
  - TPM_ChangeauthValidate_Load
  - TPM_ChangeauthValidate_Store
  - TPM_ChangeauthValidate_Delete
  - TPM_DaInfo_Init
  - TPM_DaInfo_Store
  - TPM_DaInfo_Delete
  - TPM_DaInfo_Set
  - TPM_DaInfoLimited_Init
  - TPM_DaInfoLimited_Store
  - TPM_DaInfoLimited_Delete
  - TPM_DaInfoLimited_Set
  - TPM_Process_ChangeAuth
  - TPM_Process_ChangeAuthOwner
  - TPM_Process_ChangeAuthAsymStart
  - TPM_Process_ChangeAuthAsymFinish
  source_file: /src/libtpms/src/tpm12/tpm_auth.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_SignInfo_Init
  - TPM_SignInfo_Store
  - TPM_SignInfo_Delete
  - TPM_CertifyInfo_Init
  - TPM_CertifyInfo_Load
  - TPM_CertifyInfo_Store
  - TPM_CertifyInfo_Delete
  - TPM_CertifyInfo_Set
  - TPM_CertifyInfo2_Init
  - TPM_CertifyInfo2_Load
  - TPM_CertifyInfo2_Store
  - TPM_CertifyInfo2_Delete
  - TPM_CertifyInfo2_Set
  - TPM_SymmetricKey_Init
  - TPM_SymmetricKey_Load
  - TPM_SymmetricKey_Store
  - TPM_SymmetricKey_Delete
  - TPM_SymmetricKeyData_EncryptSbuffer
  - TPM_SymmetricKeyData_StreamCrypt
  - TPM_SHA1Sbuffer
  - TPM_SHA1_GenerateStructure
  - TPM_SHA1_CheckStructure
  - TPM_SHA1
  - TPM_SHA1_Check
  - TPM_SHA1_valist
  - TPM_HMAC_GenerateSbuffer
  - TPM_HMAC_GenerateStructure
  - TPM_HMAC_Generate
  - TPM_HMAC_Generatevalist
  - TPM_HMAC_CheckSbuffer
  - TPM_HMAC_Check
  - TPM_HMAC_CheckStructure
  - TPM_XOR
  - TPM_MGF1
  - TPM_MGF1_GenerateArray
  - TPM_bn2binMalloc
  - TPM_bn2binArray
  - TPM_2bin2bn
  - TPM_RSAPrivateDecryptMalloc
  - TPM_RSAPrivateDecryptH
  - TPM_RSAPublicEncryptSbuffer_Key
  - TPM_RSAPublicEncrypt_Key
  - TPM_RSAPublicEncrypt_Pubkey
  - TPM_RSAPublicEncrypt_Common
  - TPM_RSASignToSizedBuffer
  - TPM_RSASignH
  - TPM_RSAVerifyH
  - TPM_RSAVerify
  - TPM_RSA_padding_add_PKCS1_OAEP
  - TPM_RSA_padding_check_PKCS1_OAEP
  - TPM_RSA_exponent_verify
  - TPM_CryptoTest
  - TPM_Process_Sign
  - TPM_Process_SHA1Start
  - TPM_Process_SHA1Update
  - TPM_Process_SHA1Complete
  - TPM_Process_SHA1CompleteExtend
  - TPM_SHA1CompleteCommon
  - TPM_Process_GetRandom
  - TPM_Process_StirRandom
  - TPM_Process_CertifyKey
  - TPM_Process_CertifyKey2
  - TPM_Process_CertifySelfTest
  source_file: /src/libtpms/src/tpm12/tpm_cryptoh.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_HMAC_BLOCK_SIZE
      pos:
        line_end: 1084
        line_start: 1083
        source_file: /src/libtpms/src/tpm12/tpm_cryptoh.c
      type_or_value: '64'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_Sbuffer_Init
  - TPM_Sbuffer_Load
  - TPM_Sbuffer_Delete
  - TPM_Sbuffer_Clear
  - TPM_Sbuffer_Get
  - TPM_Sbuffer_GetAll
  - TPM_Sbuffer_Set
  - TPM_Sbuffer_Append
  - TPM_Sbuffer_Append8
  - TPM_Sbuffer_Append16
  - TPM_Sbuffer_Append32
  - TPM_Sbuffer_AppendAsSizedBuffer
  - TPM_Sbuffer_AppendSBuffer
  - TPM_Sbuffer_StoreInitialResponse
  - TPM_Sbuffer_StoreFinalResponse
  - TPM_Sbuffer_AdjustParamSize
  - TPM_Sbuffer_AdjustReturnCode
  - TPM_Sbuffer_Test
  - STORE32
  - STORE16
  - STORE8
  - TPM_Bitmap_Load
  - TPM_Bitmap_Store
  source_file: /src/libtpms/src/tpm12/tpm_store.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_init.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*TPM_GETENTRY_FUNCTION_T )(void **entry,\n                                               void
        *entries,\n                                               TPM_HANDLE handle)"
      pos:
        line_end: 127
        line_start: 125
        source_file: /src/libtpms/src/tpm12/tpm_init.h
      type: TPM_RESULT
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_constants.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_REVISION_MAX
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '9999'
    - item_type: preproc_def
      name: TPM_REVISION
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: TPM_REVISION_MAX
    - item_type: preproc_def
      name: TPM_SPEC_LEVEL
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0002          '
    - item_type: preproc_def
      name: TPM_ERRATA_REV
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x03            '
    - item_type: preproc_def
      name: TPM_SPEC_LEVEL
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0002          '
    - item_type: preproc_def
      name: TPM_ERRATA_REV
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x02            '
    - item_type: preproc_def
      name: TPM_SPEC_LEVEL
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0002          '
    - item_type: preproc_def
      name: TPM_ERRATA_REV
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x01            '
    - item_type: preproc_def
      name: TPM_SPEC_LEVEL
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0002          '
    - item_type: preproc_def
      name: TPM_ERRATA_REV
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00            '
    - item_type: preproc_def
      name: TPM_SPEC_LEVEL
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001          '
    - item_type: preproc_def
      name: TPM_ERRATA_REV
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00            '
    - item_type: preproc_def
      name: TPM_VENDOR_ID
      pos:
        line_end: 93
        line_start: 91
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '"\x00\x00\x10\x14"      '
    - item_type: preproc_def
      name: TPM_VENDOR_ID
      pos:
        line_end: 99
        line_start: 97
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '"IBM"  '
    - item_type: preproc_def
      name: TPM_MANUFACTURER
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '"IBM"  '
    - item_type: preproc_def
      name: TPM_TIMEOUT_A
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '1000000'
    - item_type: preproc_def
      name: TPM_TIMEOUT_B
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '1000000'
    - item_type: preproc_def
      name: TPM_TIMEOUT_C
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '1000000'
    - item_type: preproc_def
      name: TPM_TIMEOUT_D
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '1000000'
    - item_type: preproc_def
      name: TPM_LOCKOUT_THRESHOLD
      pos:
        line_end: 113
        line_start: 111
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '5         '
    - item_type: preproc_def
      name: TPM_SMALL_DURATION
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '2000000'
    - item_type: preproc_def
      name: TPM_MEDIUM_DURATION
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '5000000'
    - item_type: preproc_def
      name: TPM_LONG_DURATION
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '60000000'
    - item_type: preproc_def
      name: TPM_STARTUP_EFFECTS_VALUE
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '(TPM_STARTUP_EFFECTS_ST_ANY_RT_KEY |    '
    - item_type: preproc_def
      name: TPM_STORE_BUFFER_INCREMENT
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: (TPM_ALLOC_MAX / 64)
    - item_type: preproc_def
      name: TPM_BUFFER_MAX
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x1000  '
    - item_type: preproc_def
      name: TPM_BUFFER_MIN
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0c00  '
    - item_type: preproc_def
      name: TPM_RANDOM_MAX
      pos:
        line_end: 181
        line_start: 178
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: "(TPM12_GetBufferSize() \\\n                         - sizeof(TPM_TAG)
        - sizeof(uint32_t) \\\n\t\t\t - sizeof(TPM_RESULT) - sizeof(uint32_t))"
    - item_type: preproc_def
      name: TPM_SHA1_MAXNUMBYTES
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: (TPM12_GetBufferSize() - 64)
    - item_type: preproc_def
      name: TSC_PHYS_PRES_AUDIT
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: TSC_RESET_ESTAB_AUDIT
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: TPM_CAP_PROCESS_ID
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: TPM_ILLEGAL_INSTANCE_HANDLE
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0xffffffff'
    - item_type: preproc_def
      name: TPM_TAG_CONTEXTBLOB
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001 '
    - item_type: preproc_def
      name: TPM_TAG_CONTEXT_SENSITIVE
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0002 '
    - item_type: preproc_def
      name: TPM_TAG_CONTEXTPOINTER
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0003 '
    - item_type: preproc_def
      name: TPM_TAG_CONTEXTLIST
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0004 '
    - item_type: preproc_def
      name: TPM_TAG_SIGNINFO
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0005 '
    - item_type: preproc_def
      name: TPM_TAG_PCR_INFO_LONG
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0006 '
    - item_type: preproc_def
      name: TPM_TAG_PERSISTENT_FLAGS
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0007 '
    - item_type: preproc_def
      name: TPM_TAG_VOLATILE_FLAGS
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0008 '
    - item_type: preproc_def
      name: TPM_TAG_PERSISTENT_DATA
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0009 '
    - item_type: preproc_def
      name: TPM_TAG_VOLATILE_DATA
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000A '
    - item_type: preproc_def
      name: TPM_TAG_SV_DATA
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000B '
    - item_type: preproc_def
      name: TPM_TAG_EK_BLOB
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000C '
    - item_type: preproc_def
      name: TPM_TAG_EK_BLOB_AUTH
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000D '
    - item_type: preproc_def
      name: TPM_TAG_COUNTER_VALUE
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000E '
    - item_type: preproc_def
      name: TPM_TAG_TRANSPORT_INTERNAL
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000F '
    - item_type: preproc_def
      name: TPM_TAG_TRANSPORT_LOG_IN
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0010 '
    - item_type: preproc_def
      name: TPM_TAG_TRANSPORT_LOG_OUT
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0011 '
    - item_type: preproc_def
      name: TPM_TAG_AUDIT_EVENT_IN
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0012 '
    - item_type: preproc_def
      name: TPM_TAG_AUDIT_EVENT_OUT
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0013 '
    - item_type: preproc_def
      name: TPM_TAG_CURRENT_TICKS
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0014 '
    - item_type: preproc_def
      name: TPM_TAG_KEY
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0015 '
    - item_type: preproc_def
      name: TPM_TAG_STORED_DATA12
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0016 '
    - item_type: preproc_def
      name: TPM_TAG_NV_ATTRIBUTES
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0017 '
    - item_type: preproc_def
      name: TPM_TAG_NV_DATA_PUBLIC
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0018 '
    - item_type: preproc_def
      name: TPM_TAG_NV_DATA_SENSITIVE
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0019 '
    - item_type: preproc_def
      name: TPM_TAG_DELEGATIONS
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x001A '
    - item_type: preproc_def
      name: TPM_TAG_DELEGATE_PUBLIC
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x001B '
    - item_type: preproc_def
      name: TPM_TAG_DELEGATE_TABLE_ROW
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x001C '
    - item_type: preproc_def
      name: TPM_TAG_TRANSPORT_AUTH
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x001D '
    - item_type: preproc_def
      name: TPM_TAG_TRANSPORT_PUBLIC
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X001E '
    - item_type: preproc_def
      name: TPM_TAG_PERMANENT_FLAGS
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X001F '
    - item_type: preproc_def
      name: TPM_TAG_STCLEAR_FLAGS
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0020 '
    - item_type: preproc_def
      name: TPM_TAG_STANY_FLAGS
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0021 '
    - item_type: preproc_def
      name: TPM_TAG_PERMANENT_DATA
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0022 '
    - item_type: preproc_def
      name: TPM_TAG_STCLEAR_DATA
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0023 '
    - item_type: preproc_def
      name: TPM_TAG_STANY_DATA
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0024 '
    - item_type: preproc_def
      name: TPM_TAG_FAMILY_TABLE_ENTRY
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0025 '
    - item_type: preproc_def
      name: TPM_TAG_DELEGATE_SENSITIVE
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0026 '
    - item_type: preproc_def
      name: TPM_TAG_DELG_KEY_BLOB
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0027 '
    - item_type: preproc_def
      name: TPM_TAG_KEY12
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0028 '
    - item_type: preproc_def
      name: TPM_TAG_CERTIFY_INFO2
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0029 '
    - item_type: preproc_def
      name: TPM_TAG_DELEGATE_OWNER_BLOB
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X002A '
    - item_type: preproc_def
      name: TPM_TAG_EK_BLOB_ACTIVATE
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X002B '
    - item_type: preproc_def
      name: TPM_TAG_DAA_BLOB
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X002C '
    - item_type: preproc_def
      name: TPM_TAG_DAA_CONTEXT
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X002D '
    - item_type: preproc_def
      name: TPM_TAG_DAA_ENFORCE
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X002E '
    - item_type: preproc_def
      name: TPM_TAG_DAA_ISSUER
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X002F '
    - item_type: preproc_def
      name: TPM_TAG_CAP_VERSION_INFO
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0030 '
    - item_type: preproc_def
      name: TPM_TAG_DAA_SENSITIVE
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0031 '
    - item_type: preproc_def
      name: TPM_TAG_DAA_TPM
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0032 '
    - item_type: preproc_def
      name: TPM_TAG_CMK_MIGAUTH
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0033 '
    - item_type: preproc_def
      name: TPM_TAG_CMK_SIGTICKET
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0034 '
    - item_type: preproc_def
      name: TPM_TAG_CMK_MA_APPROVAL
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0035 '
    - item_type: preproc_def
      name: TPM_TAG_QUOTE_INFO2
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0036 '
    - item_type: preproc_def
      name: TPM_TAG_DA_INFO
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0037 '
    - item_type: preproc_def
      name: TPM_TAG_DA_INFO_LIMITED
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0038 '
    - item_type: preproc_def
      name: TPM_TAG_DA_ACTION_TYPE
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0039 '
    - item_type: preproc_def
      name: TPM_TAG_NVSTATE_V1
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: "0x0001\t\t"
    - item_type: preproc_def
      name: TPM_TAG_NVSTATE_PF94
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: TPM_TAG_NVSTATE_PF103
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: TPM_TAG_NVSTATE_OE_V1
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: TPM_TAG_NVSTATE_NV_V1
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: TPM_TAG_NVSTATE_NV_V2
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: TPM_TAG_VSTATE_V1
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: TPM_TAG_TPM_PARAMETERS_V1
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: TPM_TAG_STCLEAR_FLAGS_V1
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: TPM_TAG_STCLEAR_DATA_V2
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: 0X0024
    - item_type: preproc_def
      name: TPM_TAG_KEY_HANDLE_ENTRIES_V1
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: TPM_TAG_SHA1CONTEXT_OSSL_V1
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: "0x0001\t\t"
    - item_type: preproc_def
      name: TPM_TAG_SHA1CONTEXT_FREEBL_V1
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: "0x0101\t\t"
    - item_type: preproc_def
      name: TPM_TAG_NV_INDEX_ENTRIES_VOLATILE_V1
      pos:
        line_end: 370
        line_start: 369
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: TPM_RT_KEY
      pos:
        line_end: 378
        line_start: 376
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: TPM_RT_AUTH
      pos:
        line_end: 381
        line_start: 379
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: TPM_RT_HASH
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X00000003  '
    - item_type: preproc_def
      name: TPM_RT_TRANS
      pos:
        line_end: 386
        line_start: 384
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: TPM_RT_CONTEXT
      pos:
        line_end: 389
        line_start: 387
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000005  '
    - item_type: preproc_def
      name: TPM_RT_COUNTER
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000006  '
    - item_type: preproc_def
      name: TPM_RT_DELEGATE
      pos:
        line_end: 394
        line_start: 392
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000007  '
    - item_type: preproc_def
      name: TPM_RT_DAA_TPM
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000008  '
    - item_type: preproc_def
      name: TPM_RT_DAA_V0
      pos:
        line_end: 398
        line_start: 397
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000009  '
    - item_type: preproc_def
      name: TPM_RT_DAA_V1
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000000A  '
    - item_type: preproc_def
      name: TPM_PT_ASYM
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x01    '
    - item_type: preproc_def
      name: TPM_PT_BIND
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x02    '
    - item_type: preproc_def
      name: TPM_PT_MIGRATE
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x03    '
    - item_type: preproc_def
      name: TPM_PT_MAINT
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x04    '
    - item_type: preproc_def
      name: TPM_PT_SEAL
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x05    '
    - item_type: preproc_def
      name: TPM_PT_MIGRATE_RESTRICTED
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x06  '
    - item_type: preproc_def
      name: TPM_PT_MIGRATE_EXTERNAL
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x07    '
    - item_type: preproc_def
      name: TPM_PT_CMK_MIGRATE
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x08    '
    - item_type: preproc_def
      name: TPM_ET_KEYHANDLE
      pos:
        line_end: 438
        line_start: 437
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x01    '
    - item_type: preproc_def
      name: TPM_ET_OWNER
      pos:
        line_end: 439
        line_start: 438
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x02    '
    - item_type: preproc_def
      name: TPM_ET_DATA
      pos:
        line_end: 440
        line_start: 439
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x03    '
    - item_type: preproc_def
      name: TPM_ET_SRK
      pos:
        line_end: 441
        line_start: 440
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x04    '
    - item_type: preproc_def
      name: TPM_ET_KEY
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x05    '
    - item_type: preproc_def
      name: TPM_ET_REVOKE
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x06    '
    - item_type: preproc_def
      name: TPM_ET_DEL_OWNER_BLOB
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x07    '
    - item_type: preproc_def
      name: TPM_ET_DEL_ROW
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x08    '
    - item_type: preproc_def
      name: TPM_ET_DEL_KEY_BLOB
      pos:
        line_end: 446
        line_start: 445
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x09    '
    - item_type: preproc_def
      name: TPM_ET_COUNTER
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0A    '
    - item_type: preproc_def
      name: TPM_ET_NV
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0B    '
    - item_type: preproc_def
      name: TPM_ET_OPERATOR
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0C    '
    - item_type: preproc_def
      name: TPM_ET_RESERVED_HANDLE
      pos:
        line_end: 451
        line_start: 449
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x40    '
    - item_type: preproc_def
      name: TPM_ET_XOR
      pos:
        line_end: 455
        line_start: 454
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00    '
    - item_type: preproc_def
      name: TPM_ET_AES128_CTR
      pos:
        line_end: 456
        line_start: 455
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x06    '
    - item_type: preproc_def
      name: TPM_KH_SRK
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x40000000 '
    - item_type: preproc_def
      name: TPM_KH_OWNER
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x40000001 '
    - item_type: preproc_def
      name: TPM_KH_REVOKE
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x40000002 '
    - item_type: preproc_def
      name: TPM_KH_TRANSPORT
      pos:
        line_end: 484
        line_start: 482
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x40000003 '
    - item_type: preproc_def
      name: TPM_KH_OPERATOR
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x40000004 '
    - item_type: preproc_def
      name: TPM_KH_ADMIN
      pos:
        line_end: 487
        line_start: 485
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x40000005 '
    - item_type: preproc_def
      name: TPM_KH_EK
      pos:
        line_end: 489
        line_start: 487
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x40000006 '
    - item_type: preproc_def
      name: TPM_ST_CLEAR
      pos:
        line_end: 496
        line_start: 495
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001 '
    - item_type: preproc_def
      name: TPM_ST_STATE
      pos:
        line_end: 497
        line_start: 496
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0002 '
    - item_type: preproc_def
      name: TPM_ST_DEACTIVATED
      pos:
        line_end: 499
        line_start: 497
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0003 '
    - item_type: preproc_def
      name: TPM_STARTUP_EFFECTS_ST_STATE_RT_DAA
      pos:
        line_end: 526
        line_start: 525
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000100      '
    - item_type: preproc_def
      name: TPM_STARTUP_EFFECTS_STARTUP_NO_AUDITDIGEST
      pos:
        line_end: 527
        line_start: 526
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000080      '
    - item_type: preproc_def
      name: TPM_STARTUP_EFFECTS_ST_CLEAR_AUDITDIGEST
      pos:
        line_end: 528
        line_start: 527
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000040      '
    - item_type: preproc_def
      name: TPM_STARTUP_EFFECTS_STARTUP_AUDITDIGEST
      pos:
        line_end: 529
        line_start: 528
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000020      '
    - item_type: preproc_def
      name: TPM_STARTUP_EFFECTS_ST_ANY_RT_KEY
      pos:
        line_end: 530
        line_start: 529
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000010      '
    - item_type: preproc_def
      name: TPM_STARTUP_EFFECTS_ST_STATE_RT_AUTH
      pos:
        line_end: 531
        line_start: 530
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000008      '
    - item_type: preproc_def
      name: TPM_STARTUP_EFFECTS_ST_STATE_RT_HASH
      pos:
        line_end: 532
        line_start: 531
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000004      '
    - item_type: preproc_def
      name: TPM_STARTUP_EFFECTS_ST_STATE_RT_TRANS
      pos:
        line_end: 533
        line_start: 532
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000002      '
    - item_type: preproc_def
      name: TPM_STARTUP_EFFECTS_ST_STATE_RT_CONTEXT
      pos:
        line_end: 534
        line_start: 533
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000001      '
    - item_type: preproc_def
      name: TPM_PID_NONE
      pos:
        line_end: 541
        line_start: 540
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000  '
    - item_type: preproc_def
      name: TPM_PID_OIAP
      pos:
        line_end: 542
        line_start: 541
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: TPM_PID_OSAP
      pos:
        line_end: 543
        line_start: 542
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: TPM_PID_ADIP
      pos:
        line_end: 544
        line_start: 543
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0003  '
    - item_type: preproc_def
      name: TPM_PID_ADCP
      pos:
        line_end: 545
        line_start: 544
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0004  '
    - item_type: preproc_def
      name: TPM_PID_OWNER
      pos:
        line_end: 546
        line_start: 545
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0005  '
    - item_type: preproc_def
      name: TPM_PID_DSAP
      pos:
        line_end: 547
        line_start: 546
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0006  '
    - item_type: preproc_def
      name: TPM_PID_TRANSPORT
      pos:
        line_end: 548
        line_start: 547
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0007  '
    - item_type: preproc_def
      name: TPM_ALG_RSA
      pos:
        line_end: 557
        line_start: 556
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000001      '
    - item_type: preproc_def
      name: TPM_ALG_SHA
      pos:
        line_end: 560
        line_start: 559
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000004      '
    - item_type: preproc_def
      name: TPM_ALG_HMAC
      pos:
        line_end: 561
        line_start: 560
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000005      '
    - item_type: preproc_def
      name: TPM_ALG_AES128
      pos:
        line_end: 562
        line_start: 561
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000006      '
    - item_type: preproc_def
      name: TPM_ALG_MGF1
      pos:
        line_end: 564
        line_start: 562
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000007      '
    - item_type: preproc_def
      name: TPM_ALG_AES192
      pos:
        line_end: 565
        line_start: 564
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000008      '
    - item_type: preproc_def
      name: TPM_ALG_AES256
      pos:
        line_end: 566
        line_start: 565
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000009      '
    - item_type: preproc_def
      name: TPM_ALG_XOR
      pos:
        line_end: 567
        line_start: 566
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000000A      '
    - item_type: preproc_def
      name: TPM_PHYSICAL_PRESENCE_HW_DISABLE
      pos:
        line_end: 574
        line_start: 572
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0200 '
    - item_type: preproc_def
      name: TPM_PHYSICAL_PRESENCE_CMD_DISABLE
      pos:
        line_end: 576
        line_start: 574
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0100 '
    - item_type: preproc_def
      name: TPM_PHYSICAL_PRESENCE_LIFETIME_LOCK
      pos:
        line_end: 578
        line_start: 576
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0080 '
    - item_type: preproc_def
      name: TPM_PHYSICAL_PRESENCE_HW_ENABLE
      pos:
        line_end: 580
        line_start: 578
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0040 '
    - item_type: preproc_def
      name: TPM_PHYSICAL_PRESENCE_CMD_ENABLE
      pos:
        line_end: 582
        line_start: 580
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0020 '
    - item_type: preproc_def
      name: TPM_PHYSICAL_PRESENCE_NOTPRESENT
      pos:
        line_end: 583
        line_start: 582
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0010 '
    - item_type: preproc_def
      name: TPM_PHYSICAL_PRESENCE_PRESENT
      pos:
        line_end: 584
        line_start: 583
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0008 '
    - item_type: preproc_def
      name: TPM_PHYSICAL_PRESENCE_LOCK
      pos:
        line_end: 585
        line_start: 584
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0004 '
    - item_type: preproc_def
      name: TPM_PHYSICAL_PRESENCE_MASK
      pos:
        line_end: 587
        line_start: 586
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0xfc03  '
    - item_type: preproc_def
      name: TPM_MS_MIGRATE
      pos:
        line_end: 596
        line_start: 594
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001 '
    - item_type: preproc_def
      name: TPM_MS_REWRAP
      pos:
        line_end: 598
        line_start: 596
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0002 '
    - item_type: preproc_def
      name: TPM_MS_MAINT
      pos:
        line_end: 600
        line_start: 598
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0003 '
    - item_type: preproc_def
      name: TPM_MS_RESTRICT_MIGRATE
      pos:
        line_end: 602
        line_start: 600
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0004 '
    - item_type: preproc_def
      name: TPM_MS_RESTRICT_APPROVE
      pos:
        line_end: 604
        line_start: 602
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0005 '
    - item_type: preproc_def
      name: TPM_EK_TYPE_ACTIVATE
      pos:
        line_end: 611
        line_start: 610
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: TPM_EK_TYPE_AUTH
      pos:
        line_end: 612
        line_start: 611
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: TPM_PS_PC_11
      pos:
        line_end: 619
        line_start: 618
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: TPM_PS_PC_12
      pos:
        line_end: 620
        line_start: 619
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: TPM_PS_PDA_12
      pos:
        line_end: 621
        line_start: 620
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0003  '
    - item_type: preproc_def
      name: TPM_PS_Server_12
      pos:
        line_end: 622
        line_start: 621
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: TPM_PS_Mobile_12
      pos:
        line_end: 623
        line_start: 622
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0005  '
    - item_type: preproc_def
      name: TPM_KEY_UNINITIALIZED
      pos:
        line_end: 635
        line_start: 633
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000  '
    - item_type: preproc_def
      name: TPM_KEY_SIGNING
      pos:
        line_end: 640
        line_start: 636
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0010  '
    - item_type: preproc_def
      name: TPM_KEY_STORAGE
      pos:
        line_end: 644
        line_start: 641
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0011  '
    - item_type: preproc_def
      name: TPM_KEY_IDENTITY
      pos:
        line_end: 647
        line_start: 645
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0012  '
    - item_type: preproc_def
      name: TPM_KEY_AUTHCHANGE
      pos:
        line_end: 650
        line_start: 648
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0013  '
    - item_type: preproc_def
      name: TPM_KEY_BIND
      pos:
        line_end: 653
        line_start: 651
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0014  '
    - item_type: preproc_def
      name: TPM_KEY_LEGACY
      pos:
        line_end: 659
        line_start: 654
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0015  '
    - item_type: preproc_def
      name: TPM_KEY_MIGRATE
      pos:
        line_end: 661
        line_start: 660
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0016  '
    - item_type: preproc_def
      name: TPM_ES_NONE
      pos:
        line_end: 669
        line_start: 668
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001 '
    - item_type: preproc_def
      name: TPM_ES_RSAESPKCSv15
      pos:
        line_end: 670
        line_start: 669
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0002 '
    - item_type: preproc_def
      name: TPM_ES_RSAESOAEP_SHA1_MGF1
      pos:
        line_end: 671
        line_start: 670
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0003 '
    - item_type: preproc_def
      name: TPM_ES_SYM_CTR
      pos:
        line_end: 672
        line_start: 671
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0004 '
    - item_type: preproc_def
      name: TPM_ES_SYM_OFB
      pos:
        line_end: 673
        line_start: 672
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0005'
    - item_type: preproc_def
      name: TPM_SS_NONE
      pos:
        line_end: 681
        line_start: 680
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001 '
    - item_type: preproc_def
      name: TPM_SS_RSASSAPKCS1v15_SHA1
      pos:
        line_end: 682
        line_start: 681
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0002 '
    - item_type: preproc_def
      name: TPM_SS_RSASSAPKCS1v15_DER
      pos:
        line_end: 683
        line_start: 682
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0003 '
    - item_type: preproc_def
      name: TPM_SS_RSASSAPKCS1v15_INFO
      pos:
        line_end: 684
        line_start: 683
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0004 '
    - item_type: preproc_def
      name: TPM_AUTH_NEVER
      pos:
        line_end: 693
        line_start: 691
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00 '
    - item_type: preproc_def
      name: TPM_AUTH_ALWAYS
      pos:
        line_end: 696
        line_start: 694
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: TPM_NO_READ_PUBKEY_AUTH
      pos:
        line_end: 702
        line_start: 697
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x03 '
    - item_type: preproc_def
      name: TPM_KEY_FLAGS_MASK
      pos:
        line_end: 717
        line_start: 716
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000001f'
    - item_type: preproc_def
      name: TPM_KEY_FLAGS_MASK
      pos:
        line_end: 719
        line_start: 718
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000007'
    - item_type: preproc_def
      name: TPM_REDIRECTION
      pos:
        line_end: 723
        line_start: 721
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: TPM_MIGRATABLE
      pos:
        line_end: 726
        line_start: 724
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: TPM_ISVOLATILE
      pos:
        line_end: 732
        line_start: 727
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: TPM_PCRIGNOREDONREAD
      pos:
        line_end: 743
        line_start: 733
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: TPM_MIGRATEAUTHORITY
      pos:
        line_end: 748
        line_start: 744
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: TPM_CMK_DELEGATE_SIGNING
      pos:
        line_end: 763
        line_start: 760
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x80000000 '
    - item_type: preproc_def
      name: TPM_CMK_DELEGATE_STORAGE
      pos:
        line_end: 766
        line_start: 763
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x40000000 '
    - item_type: preproc_def
      name: TPM_CMK_DELEGATE_BIND
      pos:
        line_end: 769
        line_start: 766
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x20000000 '
    - item_type: preproc_def
      name: TPM_CMK_DELEGATE_LEGACY
      pos:
        line_end: 772
        line_start: 769
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x10000000 '
    - item_type: preproc_def
      name: TPM_CMK_DELEGATE_MIGRATE
      pos:
        line_end: 775
        line_start: 772
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x08000000 '
    - item_type: preproc_def
      name: TPM_TAG_RQU_COMMAND
      pos:
        line_end: 784
        line_start: 783
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00C1 '
    - item_type: preproc_def
      name: TPM_TAG_RQU_AUTH1_COMMAND
      pos:
        line_end: 786
        line_start: 784
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00C2 '
    - item_type: preproc_def
      name: TPM_TAG_RQU_AUTH2_COMMAND
      pos:
        line_end: 788
        line_start: 786
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00C3 '
    - item_type: preproc_def
      name: TPM_TAG_RSP_COMMAND
      pos:
        line_end: 790
        line_start: 788
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00C4 '
    - item_type: preproc_def
      name: TPM_TAG_RSP_AUTH1_COMMAND
      pos:
        line_end: 792
        line_start: 790
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00C5 '
    - item_type: preproc_def
      name: TPM_TAG_RSP_AUTH2_COMMAND
      pos:
        line_end: 794
        line_start: 792
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00C6 '
    - item_type: preproc_def
      name: TPM_DEBUG_PCR
      pos:
        line_end: 800
        line_start: 799
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '16'
    - item_type: preproc_def
      name: TPM_LOCALITY_4_PCR
      pos:
        line_end: 801
        line_start: 800
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '17'
    - item_type: preproc_def
      name: TPM_LOCALITY_3_PCR
      pos:
        line_end: 802
        line_start: 801
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '18'
    - item_type: preproc_def
      name: TPM_LOCALITY_2_PCR
      pos:
        line_end: 803
        line_start: 802
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '19'
    - item_type: preproc_def
      name: TPM_LOCALITY_1_PCR
      pos:
        line_end: 804
        line_start: 803
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '20'
    - item_type: preproc_def
      name: TPM_KEY_CONTROL_OWNER_EVICT
      pos:
        line_end: 816
        line_start: 812
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000001      '
    - item_type: preproc_def
      name: TPM_TRANSPORT_ENCRYPT
      pos:
        line_end: 821
        line_start: 819
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000001      '
    - item_type: preproc_def
      name: TPM_TRANSPORT_LOG
      pos:
        line_end: 823
        line_start: 821
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000002      '
    - item_type: preproc_def
      name: TPM_TRANSPORT_EXCLUSIVE
      pos:
        line_end: 827
        line_start: 823
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X00000004      '
    - item_type: preproc_def
      name: TPM_CAP_ORD
      pos:
        line_end: 837
        line_start: 833
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: TPM_CAP_ALG
      pos:
        line_end: 845
        line_start: 837
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: TPM_CAP_PID
      pos:
        line_end: 849
        line_start: 846
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000003 '
    - item_type: preproc_def
      name: TPM_CAP_FLAG
      pos:
        line_end: 851
        line_start: 849
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: TPM_CAP_PROPERTY
      pos:
        line_end: 852
        line_start: 851
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000005 '
    - item_type: preproc_def
      name: TPM_CAP_VERSION
      pos:
        line_end: 855
        line_start: 852
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000006 '
    - item_type: preproc_def
      name: TPM_CAP_KEY_HANDLE
      pos:
        line_end: 857
        line_start: 855
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000007 '
    - item_type: preproc_def
      name: TPM_CAP_CHECK_LOADED
      pos:
        line_end: 861
        line_start: 857
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: TPM_CAP_SYM_MODE
      pos:
        line_end: 865
        line_start: 861
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000009 '
    - item_type: preproc_def
      name: TPM_CAP_KEY_STATUS
      pos:
        line_end: 867
        line_start: 865
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000000C '
    - item_type: preproc_def
      name: TPM_CAP_NV_LIST
      pos:
        line_end: 869
        line_start: 867
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000000D '
    - item_type: preproc_def
      name: TPM_CAP_MFR
      pos:
        line_end: 873
        line_start: 869
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: TPM_CAP_NV_INDEX
      pos:
        line_end: 876
        line_start: 873
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000011 '
    - item_type: preproc_def
      name: TPM_CAP_TRANS_ALG
      pos:
        line_end: 882
        line_start: 876
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000012 '
    - item_type: preproc_def
      name: TPM_CAP_HANDLE
      pos:
        line_end: 885
        line_start: 882
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000014 '
    - item_type: preproc_def
      name: TPM_CAP_TRANS_ES
      pos:
        line_end: 888
        line_start: 885
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000015 '
    - item_type: preproc_def
      name: TPM_CAP_AUTH_ENCRYPT
      pos:
        line_end: 891
        line_start: 888
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000017 '
    - item_type: preproc_def
      name: TPM_CAP_SELECT_SIZE
      pos:
        line_end: 896
        line_start: 891
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000018 '
    - item_type: preproc_def
      name: TPM_CAP_DA_LOGIC
      pos:
        line_end: 904
        line_start: 896
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000019 '
    - item_type: preproc_def
      name: TPM_CAP_VERSION_VAL
      pos:
        line_end: 907
        line_start: 904
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000001A '
    - item_type: preproc_def
      name: TPM_CAP_FLAG_PERMANENT
      pos:
        line_end: 909
        line_start: 908
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000108 '
    - item_type: preproc_def
      name: TPM_CAP_FLAG_VOLATILE
      pos:
        line_end: 910
        line_start: 909
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000109 '
    - item_type: preproc_def
      name: TPM_CAP_PROP_PCR
      pos:
        line_end: 937
        line_start: 935
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000101    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_DIR
      pos:
        line_end: 939
        line_start: 937
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000102    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_MANUFACTURER
      pos:
        line_end: 941
        line_start: 939
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000103    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_KEYS
      pos:
        line_end: 944
        line_start: 941
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000104    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_MIN_COUNTER
      pos:
        line_end: 948
        line_start: 944
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000107    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_AUTHSESS
      pos:
        line_end: 951
        line_start: 948
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000010A    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_TRANSESS
      pos:
        line_end: 954
        line_start: 951
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000010B    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_COUNTERS
      pos:
        line_end: 957
        line_start: 954
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000010C    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_MAX_AUTHSESS
      pos:
        line_end: 959
        line_start: 957
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000010D    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_MAX_TRANSESS
      pos:
        line_end: 961
        line_start: 959
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000010E    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_MAX_COUNTERS
      pos:
        line_end: 964
        line_start: 961
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000010F    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_MAX_KEYS
      pos:
        line_end: 967
        line_start: 964
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000110    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_OWNER
      pos:
        line_end: 969
        line_start: 967
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000111    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_CONTEXT
      pos:
        line_end: 972
        line_start: 969
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000112    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_MAX_CONTEXT
      pos:
        line_end: 974
        line_start: 972
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000113    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_FAMILYROWS
      pos:
        line_end: 976
        line_start: 974
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000114    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_TIS_TIMEOUT
      pos:
        line_end: 985
        line_start: 976
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000115    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_STARTUP_EFFECT
      pos:
        line_end: 986
        line_start: 985
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000116    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_DELEGATE_ROW
      pos:
        line_end: 988
        line_start: 986
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000117    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_MAX_DAASESS
      pos:
        line_end: 991
        line_start: 988
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000119    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_DAASESS
      pos:
        line_end: 994
        line_start: 991
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000011A    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_CONTEXT_DIST
      pos:
        line_end: 997
        line_start: 994
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000011B    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_DAA_INTERRUPT
      pos:
        line_end: 1006
        line_start: 997
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000011C    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_SESSIONS
      pos:
        line_end: 1010
        line_start: 1006
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0X0000011D    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_MAX_SESSIONS
      pos:
        line_end: 1012
        line_start: 1010
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000011E    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_CMK_RESTRICTION
      pos:
        line_end: 1015
        line_start: 1012
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000011F    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_DURATION
      pos:
        line_end: 1021
        line_start: 1015
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000120    '
    - item_type: preproc_def
      name: TPM_CAP_PROP_ACTIVE_COUNTER
      pos:
        line_end: 1024
        line_start: 1021
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000122      '
    - item_type: preproc_def
      name: TPM_CAP_PROP_MAX_NV_AVAILABLE
      pos:
        line_end: 1030
        line_start: 1024
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000123      '
    - item_type: preproc_def
      name: TPM_CAP_PROP_INPUT_BUFFER
      pos:
        line_end: 1033
        line_start: 1030
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000124      '
    - item_type: preproc_def
      name: TPM_SET_PERM_FLAGS
      pos:
        line_end: 1040
        line_start: 1037
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000001      '
    - item_type: preproc_def
      name: TPM_SET_PERM_DATA
      pos:
        line_end: 1043
        line_start: 1040
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000002      '
    - item_type: preproc_def
      name: TPM_SET_STCLEAR_FLAGS
      pos:
        line_end: 1046
        line_start: 1043
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000003      '
    - item_type: preproc_def
      name: TPM_SET_STCLEAR_DATA
      pos:
        line_end: 1049
        line_start: 1046
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000004      '
    - item_type: preproc_def
      name: TPM_SET_STANY_FLAGS
      pos:
        line_end: 1052
        line_start: 1049
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000005      '
    - item_type: preproc_def
      name: TPM_SET_STANY_DATA
      pos:
        line_end: 1055
        line_start: 1052
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000006      '
    - item_type: preproc_def
      name: TPM_SET_VENDOR
      pos:
        line_end: 1058
        line_start: 1055
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000007      '
    - item_type: preproc_def
      name: TPM_PF_DISABLE
      pos:
        line_end: 1064
        line_start: 1063
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TPM_PF_OWNERSHIP
      pos:
        line_end: 1065
        line_start: 1064
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TPM_PF_DEACTIVATED
      pos:
        line_end: 1066
        line_start: 1065
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TPM_PF_READPUBEK
      pos:
        line_end: 1067
        line_start: 1066
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TPM_PF_DISABLEOWNERCLEAR
      pos:
        line_end: 1068
        line_start: 1067
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '5'
    - item_type: preproc_def
      name: TPM_PF_ALLOWMAINTENANCE
      pos:
        line_end: 1069
        line_start: 1068
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '6'
    - item_type: preproc_def
      name: TPM_PF_PHYSICALPRESENCELIFETIMELOCK
      pos:
        line_end: 1070
        line_start: 1069
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '7'
    - item_type: preproc_def
      name: TPM_PF_PHYSICALPRESENCEHWENABLE
      pos:
        line_end: 1071
        line_start: 1070
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '8'
    - item_type: preproc_def
      name: TPM_PF_PHYSICALPRESENCECMDENABLE
      pos:
        line_end: 1072
        line_start: 1071
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '9'
    - item_type: preproc_def
      name: TPM_PF_CEKPUSED
      pos:
        line_end: 1073
        line_start: 1072
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '10'
    - item_type: preproc_def
      name: TPM_PF_TPMPOST
      pos:
        line_end: 1074
        line_start: 1073
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '11'
    - item_type: preproc_def
      name: TPM_PF_TPMPOSTLOCK
      pos:
        line_end: 1075
        line_start: 1074
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '12'
    - item_type: preproc_def
      name: TPM_PF_FIPS
      pos:
        line_end: 1076
        line_start: 1075
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '13'
    - item_type: preproc_def
      name: TPM_PF_OPERATOR
      pos:
        line_end: 1077
        line_start: 1076
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '14'
    - item_type: preproc_def
      name: TPM_PF_ENABLEREVOKEEK
      pos:
        line_end: 1078
        line_start: 1077
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '15'
    - item_type: preproc_def
      name: TPM_PF_NV_LOCKED
      pos:
        line_end: 1079
        line_start: 1078
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '16'
    - item_type: preproc_def
      name: TPM_PF_READSRKPUB
      pos:
        line_end: 1080
        line_start: 1079
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '17'
    - item_type: preproc_def
      name: TPM_PF_TPMESTABLISHED
      pos:
        line_end: 1081
        line_start: 1080
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '18'
    - item_type: preproc_def
      name: TPM_PF_MAINTENANCEDONE
      pos:
        line_end: 1082
        line_start: 1081
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '19'
    - item_type: preproc_def
      name: TPM_PF_DISABLEFULLDALOGICINFO
      pos:
        line_end: 1083
        line_start: 1082
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '20'
    - item_type: preproc_def
      name: TPM_SF_DEACTIVATED
      pos:
        line_end: 1087
        line_start: 1086
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TPM_SF_DISABLEFORCECLEAR
      pos:
        line_end: 1088
        line_start: 1087
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TPM_SF_PHYSICALPRESENCE
      pos:
        line_end: 1089
        line_start: 1088
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TPM_SF_PHYSICALPRESENCELOCK
      pos:
        line_end: 1090
        line_start: 1089
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TPM_SF_BGLOBALLOCK
      pos:
        line_end: 1091
        line_start: 1090
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '5'
    - item_type: preproc_def
      name: TPM_AF_POSTINITIALISE
      pos:
        line_end: 1095
        line_start: 1094
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TPM_AF_LOCALITYMODIFIER
      pos:
        line_end: 1096
        line_start: 1095
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TPM_AF_TRANSPORTEXCLUSIVE
      pos:
        line_end: 1097
        line_start: 1096
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TPM_AF_TOSPRESENT
      pos:
        line_end: 1098
        line_start: 1097
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TPM_PD_REVMAJOR
      pos:
        line_end: 1102
        line_start: 1101
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TPM_PD_REVMINOR
      pos:
        line_end: 1103
        line_start: 1102
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TPM_PD_TPMPROOF
      pos:
        line_end: 1104
        line_start: 1103
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TPM_PD_OWNERAUTH
      pos:
        line_end: 1105
        line_start: 1104
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TPM_PD_OPERATORAUTH
      pos:
        line_end: 1106
        line_start: 1105
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '5'
    - item_type: preproc_def
      name: TPM_PD_MANUMAINTPUB
      pos:
        line_end: 1107
        line_start: 1106
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '6'
    - item_type: preproc_def
      name: TPM_PD_ENDORSEMENTKEY
      pos:
        line_end: 1108
        line_start: 1107
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '7'
    - item_type: preproc_def
      name: TPM_PD_SRK
      pos:
        line_end: 1109
        line_start: 1108
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '8'
    - item_type: preproc_def
      name: TPM_PD_DELEGATEKEY
      pos:
        line_end: 1110
        line_start: 1109
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '9'
    - item_type: preproc_def
      name: TPM_PD_CONTEXTKEY
      pos:
        line_end: 1111
        line_start: 1110
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '10'
    - item_type: preproc_def
      name: TPM_PD_AUDITMONOTONICCOUNTER
      pos:
        line_end: 1112
        line_start: 1111
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '11'
    - item_type: preproc_def
      name: TPM_PD_MONOTONICCOUNTER
      pos:
        line_end: 1113
        line_start: 1112
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '12'
    - item_type: preproc_def
      name: TPM_PD_PCRATTRIB
      pos:
        line_end: 1114
        line_start: 1113
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '13'
    - item_type: preproc_def
      name: TPM_PD_ORDINALAUDITSTATUS
      pos:
        line_end: 1115
        line_start: 1114
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '14'
    - item_type: preproc_def
      name: TPM_PD_AUTHDIR
      pos:
        line_end: 1116
        line_start: 1115
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '15'
    - item_type: preproc_def
      name: TPM_PD_RNGSTATE
      pos:
        line_end: 1117
        line_start: 1116
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '16'
    - item_type: preproc_def
      name: TPM_PD_FAMILYTABLE
      pos:
        line_end: 1118
        line_start: 1117
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '17'
    - item_type: preproc_def
      name: TPM_DELEGATETABLE
      pos:
        line_end: 1119
        line_start: 1118
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '18'
    - item_type: preproc_def
      name: TPM_PD_EKRESET
      pos:
        line_end: 1120
        line_start: 1119
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '19'
    - item_type: preproc_def
      name: TPM_PD_LASTFAMILYID
      pos:
        line_end: 1121
        line_start: 1120
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '21'
    - item_type: preproc_def
      name: TPM_PD_NOOWNERNVWRITE
      pos:
        line_end: 1122
        line_start: 1121
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '22'
    - item_type: preproc_def
      name: TPM_PD_RESTRICTDELEGATE
      pos:
        line_end: 1123
        line_start: 1122
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '23'
    - item_type: preproc_def
      name: TPM_PD_TPMDAASEED
      pos:
        line_end: 1124
        line_start: 1123
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '24'
    - item_type: preproc_def
      name: TPM_PD_DAAPROOF
      pos:
        line_end: 1125
        line_start: 1124
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '25'
    - item_type: preproc_def
      name: TPM_SD_CONTEXTNONCEKEY
      pos:
        line_end: 1129
        line_start: 1128
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TPM_SD_COUNTID
      pos:
        line_end: 1130
        line_start: 1129
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TPM_SD_OWNERREFERENCE
      pos:
        line_end: 1131
        line_start: 1130
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TPM_SD_DISABLERESETLOCK
      pos:
        line_end: 1132
        line_start: 1131
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TPM_SD_PCR
      pos:
        line_end: 1133
        line_start: 1132
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '5'
    - item_type: preproc_def
      name: TPM_SD_DEFERREDPHYSICALPRESENCE
      pos:
        line_end: 1134
        line_start: 1133
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '6'
    - item_type: preproc_def
      name: TPM_DPP_UNOWNED_FIELD_UPGRADE
      pos:
        line_end: 1138
        line_start: 1137
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000001      '
    - item_type: preproc_def
      name: TPM_AD_CONTEXTNONCESESSION
      pos:
        line_end: 1142
        line_start: 1141
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TPM_AD_AUDITDIGEST
      pos:
        line_end: 1143
        line_start: 1142
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TPM_AD_CURRENTTICKS
      pos:
        line_end: 1144
        line_start: 1143
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TPM_AD_CONTEXTCOUNT
      pos:
        line_end: 1145
        line_start: 1144
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TPM_AD_CONTEXTLIST
      pos:
        line_end: 1146
        line_start: 1145
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '5'
    - item_type: preproc_def
      name: TPM_AD_SESSIONS
      pos:
        line_end: 1147
        line_start: 1146
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '6'
    - item_type: preproc_def
      name: TPM_PROTECTED_COMMAND
      pos:
        line_end: 1178
        line_start: 1176
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000000 '
    - item_type: preproc_def
      name: TPM_UNPROTECTED_COMMAND
      pos:
        line_end: 1179
        line_start: 1178
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x80000000 '
    - item_type: preproc_def
      name: TPM_CONNECTION_COMMAND
      pos:
        line_end: 1182
        line_start: 1179
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x40000000 '
    - item_type: preproc_def
      name: TPM_VENDOR_COMMAND
      pos:
        line_end: 1184
        line_start: 1182
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x20000000 '
    - item_type: preproc_def
      name: TPM_MAIN
      pos:
        line_end: 1189
        line_start: 1188
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00 '
    - item_type: preproc_def
      name: TPM_PC
      pos:
        line_end: 1190
        line_start: 1189
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: TPM_PDA
      pos:
        line_end: 1191
        line_start: 1190
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x02 '
    - item_type: preproc_def
      name: TPM_CELL_PHONE
      pos:
        line_end: 1192
        line_start: 1191
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x03 '
    - item_type: preproc_def
      name: TPM_SERVER
      pos:
        line_end: 1193
        line_start: 1192
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x04 '
    - item_type: preproc_def
      name: TPM_PERIPHERAL
      pos:
        line_end: 1194
        line_start: 1193
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x05 '
    - item_type: preproc_def
      name: TPM_TSS
      pos:
        line_end: 1195
        line_start: 1194
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x06 '
    - item_type: preproc_def
      name: TPM_PROTECTED_ORDINAL
      pos:
        line_end: 1199
        line_start: 1198
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: (TPM_PROTECTED_COMMAND   | TPM_MAIN)
    - item_type: preproc_def
      name: TPM_UNPROTECTED_ORDINAL
      pos:
        line_end: 1200
        line_start: 1199
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: (TPM_UNPROTECTED_COMMAND | TPM_MAIN)
    - item_type: preproc_def
      name: TPM_CONNECTION_ORDINAL
      pos:
        line_end: 1201
        line_start: 1200
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: (TPM_CONNECTION_COMMAND  | TPM_MAIN)
    - item_type: preproc_def
      name: TPM_ORD_ActivateIdentity
      pos:
        line_end: 1205
        line_start: 1204
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000007A'
    - item_type: preproc_def
      name: TPM_ORD_AuthorizeMigrationKey
      pos:
        line_end: 1206
        line_start: 1205
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000002B'
    - item_type: preproc_def
      name: TPM_ORD_CertifyKey
      pos:
        line_end: 1207
        line_start: 1206
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000032'
    - item_type: preproc_def
      name: TPM_ORD_CertifyKey2
      pos:
        line_end: 1208
        line_start: 1207
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000033'
    - item_type: preproc_def
      name: TPM_ORD_CertifySelfTest
      pos:
        line_end: 1209
        line_start: 1208
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000052'
    - item_type: preproc_def
      name: TPM_ORD_ChangeAuth
      pos:
        line_end: 1210
        line_start: 1209
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000000C'
    - item_type: preproc_def
      name: TPM_ORD_ChangeAuthAsymFinish
      pos:
        line_end: 1211
        line_start: 1210
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000000F'
    - item_type: preproc_def
      name: TPM_ORD_ChangeAuthAsymStart
      pos:
        line_end: 1212
        line_start: 1211
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000000E'
    - item_type: preproc_def
      name: TPM_ORD_ChangeAuthOwner
      pos:
        line_end: 1213
        line_start: 1212
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000010'
    - item_type: preproc_def
      name: TPM_ORD_CMK_ApproveMA
      pos:
        line_end: 1214
        line_start: 1213
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000001D'
    - item_type: preproc_def
      name: TPM_ORD_CMK_ConvertMigration
      pos:
        line_end: 1215
        line_start: 1214
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000024'
    - item_type: preproc_def
      name: TPM_ORD_CMK_CreateBlob
      pos:
        line_end: 1216
        line_start: 1215
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000001B'
    - item_type: preproc_def
      name: TPM_ORD_CMK_CreateKey
      pos:
        line_end: 1217
        line_start: 1216
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000013'
    - item_type: preproc_def
      name: TPM_ORD_CMK_CreateTicket
      pos:
        line_end: 1218
        line_start: 1217
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000012'
    - item_type: preproc_def
      name: TPM_ORD_CMK_SetRestrictions
      pos:
        line_end: 1219
        line_start: 1218
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000001C'
    - item_type: preproc_def
      name: TPM_ORD_ContinueSelfTest
      pos:
        line_end: 1220
        line_start: 1219
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000053'
    - item_type: preproc_def
      name: TPM_ORD_ConvertMigrationBlob
      pos:
        line_end: 1221
        line_start: 1220
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000002A'
    - item_type: preproc_def
      name: TPM_ORD_CreateCounter
      pos:
        line_end: 1222
        line_start: 1221
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000DC'
    - item_type: preproc_def
      name: TPM_ORD_CreateEndorsementKeyPair
      pos:
        line_end: 1223
        line_start: 1222
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000078'
    - item_type: preproc_def
      name: TPM_ORD_CreateMaintenanceArchive
      pos:
        line_end: 1224
        line_start: 1223
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000002C'
    - item_type: preproc_def
      name: TPM_ORD_CreateMigrationBlob
      pos:
        line_end: 1225
        line_start: 1224
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000028'
    - item_type: preproc_def
      name: TPM_ORD_CreateRevocableEK
      pos:
        line_end: 1226
        line_start: 1225
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000007F'
    - item_type: preproc_def
      name: TPM_ORD_CreateWrapKey
      pos:
        line_end: 1227
        line_start: 1226
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000001F'
    - item_type: preproc_def
      name: TPM_ORD_DAA_Join
      pos:
        line_end: 1228
        line_start: 1227
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000029'
    - item_type: preproc_def
      name: TPM_ORD_DAA_Sign
      pos:
        line_end: 1229
        line_start: 1228
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000031'
    - item_type: preproc_def
      name: TPM_ORD_Delegate_CreateKeyDelegation
      pos:
        line_end: 1230
        line_start: 1229
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000D4'
    - item_type: preproc_def
      name: TPM_ORD_Delegate_CreateOwnerDelegation
      pos:
        line_end: 1231
        line_start: 1230
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000D5'
    - item_type: preproc_def
      name: TPM_ORD_Delegate_LoadOwnerDelegation
      pos:
        line_end: 1232
        line_start: 1231
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000D8'
    - item_type: preproc_def
      name: TPM_ORD_Delegate_Manage
      pos:
        line_end: 1233
        line_start: 1232
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000D2'
    - item_type: preproc_def
      name: TPM_ORD_Delegate_ReadTable
      pos:
        line_end: 1234
        line_start: 1233
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000DB'
    - item_type: preproc_def
      name: TPM_ORD_Delegate_UpdateVerification
      pos:
        line_end: 1235
        line_start: 1234
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000D1'
    - item_type: preproc_def
      name: TPM_ORD_Delegate_VerifyDelegation
      pos:
        line_end: 1236
        line_start: 1235
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000D6'
    - item_type: preproc_def
      name: TPM_ORD_DirRead
      pos:
        line_end: 1237
        line_start: 1236
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000001A'
    - item_type: preproc_def
      name: TPM_ORD_DirWriteAuth
      pos:
        line_end: 1238
        line_start: 1237
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000019'
    - item_type: preproc_def
      name: TPM_ORD_DisableForceClear
      pos:
        line_end: 1239
        line_start: 1238
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000005E'
    - item_type: preproc_def
      name: TPM_ORD_DisableOwnerClear
      pos:
        line_end: 1240
        line_start: 1239
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000005C'
    - item_type: preproc_def
      name: TPM_ORD_DisablePubekRead
      pos:
        line_end: 1241
        line_start: 1240
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000007E'
    - item_type: preproc_def
      name: TPM_ORD_DSAP
      pos:
        line_end: 1242
        line_start: 1241
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000011'
    - item_type: preproc_def
      name: TPM_ORD_EstablishTransport
      pos:
        line_end: 1243
        line_start: 1242
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000E6'
    - item_type: preproc_def
      name: TPM_ORD_EvictKey
      pos:
        line_end: 1244
        line_start: 1243
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000022'
    - item_type: preproc_def
      name: TPM_ORD_ExecuteTransport
      pos:
        line_end: 1245
        line_start: 1244
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000E7'
    - item_type: preproc_def
      name: TPM_ORD_Extend
      pos:
        line_end: 1246
        line_start: 1245
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000014'
    - item_type: preproc_def
      name: TPM_ORD_FieldUpgrade
      pos:
        line_end: 1247
        line_start: 1246
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000AA'
    - item_type: preproc_def
      name: TPM_ORD_FlushSpecific
      pos:
        line_end: 1248
        line_start: 1247
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000BA'
    - item_type: preproc_def
      name: TPM_ORD_ForceClear
      pos:
        line_end: 1249
        line_start: 1248
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000005D'
    - item_type: preproc_def
      name: TPM_ORD_GetAuditDigest
      pos:
        line_end: 1250
        line_start: 1249
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000085'
    - item_type: preproc_def
      name: TPM_ORD_GetAuditDigestSigned
      pos:
        line_end: 1251
        line_start: 1250
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000086'
    - item_type: preproc_def
      name: TPM_ORD_GetAuditEvent
      pos:
        line_end: 1252
        line_start: 1251
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000082'
    - item_type: preproc_def
      name: TPM_ORD_GetAuditEventSigned
      pos:
        line_end: 1253
        line_start: 1252
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000083'
    - item_type: preproc_def
      name: TPM_ORD_GetCapability
      pos:
        line_end: 1254
        line_start: 1253
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000065'
    - item_type: preproc_def
      name: TPM_ORD_GetCapabilityOwner
      pos:
        line_end: 1255
        line_start: 1254
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000066'
    - item_type: preproc_def
      name: TPM_ORD_GetCapabilitySigned
      pos:
        line_end: 1256
        line_start: 1255
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000064'
    - item_type: preproc_def
      name: TPM_ORD_GetOrdinalAuditStatus
      pos:
        line_end: 1257
        line_start: 1256
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000008C'
    - item_type: preproc_def
      name: TPM_ORD_GetPubKey
      pos:
        line_end: 1258
        line_start: 1257
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000021'
    - item_type: preproc_def
      name: TPM_ORD_GetRandom
      pos:
        line_end: 1259
        line_start: 1258
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000046'
    - item_type: preproc_def
      name: TPM_ORD_GetTestResult
      pos:
        line_end: 1260
        line_start: 1259
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000054'
    - item_type: preproc_def
      name: TPM_ORD_GetTicks
      pos:
        line_end: 1261
        line_start: 1260
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000F1'
    - item_type: preproc_def
      name: TPM_ORD_IncrementCounter
      pos:
        line_end: 1262
        line_start: 1261
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000DD'
    - item_type: preproc_def
      name: TPM_ORD_Init
      pos:
        line_end: 1263
        line_start: 1262
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000097'
    - item_type: preproc_def
      name: TPM_ORD_KeyControlOwner
      pos:
        line_end: 1264
        line_start: 1263
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000023'
    - item_type: preproc_def
      name: TPM_ORD_KillMaintenanceFeature
      pos:
        line_end: 1265
        line_start: 1264
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000002E'
    - item_type: preproc_def
      name: TPM_ORD_LoadAuthContext
      pos:
        line_end: 1266
        line_start: 1265
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000B7'
    - item_type: preproc_def
      name: TPM_ORD_LoadContext
      pos:
        line_end: 1267
        line_start: 1266
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000B9'
    - item_type: preproc_def
      name: TPM_ORD_LoadKey
      pos:
        line_end: 1268
        line_start: 1267
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000020'
    - item_type: preproc_def
      name: TPM_ORD_LoadKey2
      pos:
        line_end: 1269
        line_start: 1268
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000041'
    - item_type: preproc_def
      name: TPM_ORD_LoadKeyContext
      pos:
        line_end: 1270
        line_start: 1269
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000B5'
    - item_type: preproc_def
      name: TPM_ORD_LoadMaintenanceArchive
      pos:
        line_end: 1271
        line_start: 1270
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000002D'
    - item_type: preproc_def
      name: TPM_ORD_LoadManuMaintPub
      pos:
        line_end: 1272
        line_start: 1271
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000002F'
    - item_type: preproc_def
      name: TPM_ORD_MakeIdentity
      pos:
        line_end: 1273
        line_start: 1272
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000079'
    - item_type: preproc_def
      name: TPM_ORD_MigrateKey
      pos:
        line_end: 1274
        line_start: 1273
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000025'
    - item_type: preproc_def
      name: TPM_ORD_NV_DefineSpace
      pos:
        line_end: 1275
        line_start: 1274
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000CC'
    - item_type: preproc_def
      name: TPM_ORD_NV_ReadValue
      pos:
        line_end: 1276
        line_start: 1275
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000CF'
    - item_type: preproc_def
      name: TPM_ORD_NV_ReadValueAuth
      pos:
        line_end: 1277
        line_start: 1276
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000D0'
    - item_type: preproc_def
      name: TPM_ORD_NV_WriteValue
      pos:
        line_end: 1278
        line_start: 1277
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000CD'
    - item_type: preproc_def
      name: TPM_ORD_NV_WriteValueAuth
      pos:
        line_end: 1279
        line_start: 1278
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000CE'
    - item_type: preproc_def
      name: TPM_ORD_OIAP
      pos:
        line_end: 1280
        line_start: 1279
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000000A'
    - item_type: preproc_def
      name: TPM_ORD_OSAP
      pos:
        line_end: 1281
        line_start: 1280
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000000B'
    - item_type: preproc_def
      name: TPM_ORD_OwnerClear
      pos:
        line_end: 1282
        line_start: 1281
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000005B'
    - item_type: preproc_def
      name: TPM_ORD_OwnerReadInternalPub
      pos:
        line_end: 1283
        line_start: 1282
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000081'
    - item_type: preproc_def
      name: TPM_ORD_OwnerReadPubek
      pos:
        line_end: 1284
        line_start: 1283
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000007D'
    - item_type: preproc_def
      name: TPM_ORD_OwnerSetDisable
      pos:
        line_end: 1285
        line_start: 1284
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000006E'
    - item_type: preproc_def
      name: TPM_ORD_PCR_Reset
      pos:
        line_end: 1286
        line_start: 1285
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000C8'
    - item_type: preproc_def
      name: TPM_ORD_PcrRead
      pos:
        line_end: 1287
        line_start: 1286
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000015'
    - item_type: preproc_def
      name: TPM_ORD_PhysicalDisable
      pos:
        line_end: 1288
        line_start: 1287
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000070'
    - item_type: preproc_def
      name: TPM_ORD_PhysicalEnable
      pos:
        line_end: 1289
        line_start: 1288
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000006F'
    - item_type: preproc_def
      name: TPM_ORD_PhysicalSetDeactivated
      pos:
        line_end: 1290
        line_start: 1289
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000072'
    - item_type: preproc_def
      name: TPM_ORD_Quote
      pos:
        line_end: 1291
        line_start: 1290
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000016'
    - item_type: preproc_def
      name: TPM_ORD_Quote2
      pos:
        line_end: 1292
        line_start: 1291
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000003E'
    - item_type: preproc_def
      name: TPM_ORD_ReadCounter
      pos:
        line_end: 1293
        line_start: 1292
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000DE'
    - item_type: preproc_def
      name: TPM_ORD_ReadManuMaintPub
      pos:
        line_end: 1294
        line_start: 1293
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000030'
    - item_type: preproc_def
      name: TPM_ORD_ReadPubek
      pos:
        line_end: 1295
        line_start: 1294
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000007C'
    - item_type: preproc_def
      name: TPM_ORD_ReleaseCounter
      pos:
        line_end: 1296
        line_start: 1295
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000DF'
    - item_type: preproc_def
      name: TPM_ORD_ReleaseCounterOwner
      pos:
        line_end: 1297
        line_start: 1296
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000E0'
    - item_type: preproc_def
      name: TPM_ORD_ReleaseTransportSigned
      pos:
        line_end: 1298
        line_start: 1297
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000E8'
    - item_type: preproc_def
      name: TPM_ORD_Reset
      pos:
        line_end: 1299
        line_start: 1298
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000005A'
    - item_type: preproc_def
      name: TPM_ORD_ResetLockValue
      pos:
        line_end: 1300
        line_start: 1299
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000040'
    - item_type: preproc_def
      name: TPM_ORD_RevokeTrust
      pos:
        line_end: 1301
        line_start: 1300
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000080'
    - item_type: preproc_def
      name: TPM_ORD_SaveAuthContext
      pos:
        line_end: 1302
        line_start: 1301
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000B6'
    - item_type: preproc_def
      name: TPM_ORD_SaveContext
      pos:
        line_end: 1303
        line_start: 1302
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000B8'
    - item_type: preproc_def
      name: TPM_ORD_SaveKeyContext
      pos:
        line_end: 1304
        line_start: 1303
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000B4'
    - item_type: preproc_def
      name: TPM_ORD_SaveState
      pos:
        line_end: 1305
        line_start: 1304
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000098'
    - item_type: preproc_def
      name: TPM_ORD_Seal
      pos:
        line_end: 1306
        line_start: 1305
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000017'
    - item_type: preproc_def
      name: TPM_ORD_Sealx
      pos:
        line_end: 1307
        line_start: 1306
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000003D'
    - item_type: preproc_def
      name: TPM_ORD_SelfTestFull
      pos:
        line_end: 1308
        line_start: 1307
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000050'
    - item_type: preproc_def
      name: TPM_ORD_SetCapability
      pos:
        line_end: 1309
        line_start: 1308
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000003F'
    - item_type: preproc_def
      name: TPM_ORD_SetOperatorAuth
      pos:
        line_end: 1310
        line_start: 1309
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000074'
    - item_type: preproc_def
      name: TPM_ORD_SetOrdinalAuditStatus
      pos:
        line_end: 1311
        line_start: 1310
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000008D'
    - item_type: preproc_def
      name: TPM_ORD_SetOwnerInstall
      pos:
        line_end: 1312
        line_start: 1311
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000071'
    - item_type: preproc_def
      name: TPM_ORD_SetOwnerPointer
      pos:
        line_end: 1313
        line_start: 1312
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000075'
    - item_type: preproc_def
      name: TPM_ORD_SetRedirection
      pos:
        line_end: 1314
        line_start: 1313
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000009A'
    - item_type: preproc_def
      name: TPM_ORD_SetTempDeactivated
      pos:
        line_end: 1315
        line_start: 1314
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000073'
    - item_type: preproc_def
      name: TPM_ORD_SHA1Complete
      pos:
        line_end: 1316
        line_start: 1315
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000A2'
    - item_type: preproc_def
      name: TPM_ORD_SHA1CompleteExtend
      pos:
        line_end: 1317
        line_start: 1316
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000A3'
    - item_type: preproc_def
      name: TPM_ORD_SHA1Start
      pos:
        line_end: 1318
        line_start: 1317
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000A0'
    - item_type: preproc_def
      name: TPM_ORD_SHA1Update
      pos:
        line_end: 1319
        line_start: 1318
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000A1'
    - item_type: preproc_def
      name: TPM_ORD_Sign
      pos:
        line_end: 1320
        line_start: 1319
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000003C'
    - item_type: preproc_def
      name: TPM_ORD_Startup
      pos:
        line_end: 1321
        line_start: 1320
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000099'
    - item_type: preproc_def
      name: TPM_ORD_StirRandom
      pos:
        line_end: 1322
        line_start: 1321
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000047'
    - item_type: preproc_def
      name: TPM_ORD_TakeOwnership
      pos:
        line_end: 1323
        line_start: 1322
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000000D'
    - item_type: preproc_def
      name: TPM_ORD_Terminate_Handle
      pos:
        line_end: 1324
        line_start: 1323
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000096'
    - item_type: preproc_def
      name: TPM_ORD_TickStampBlob
      pos:
        line_end: 1325
        line_start: 1324
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000000F2'
    - item_type: preproc_def
      name: TPM_ORD_UnBind
      pos:
        line_end: 1326
        line_start: 1325
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000001E'
    - item_type: preproc_def
      name: TPM_ORD_Unseal
      pos:
        line_end: 1327
        line_start: 1326
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000018'
    - item_type: preproc_def
      name: TSC_ORD_PhysicalPresence
      pos:
        line_end: 1329
        line_start: 1328
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x4000000A'
    - item_type: preproc_def
      name: TSC_ORD_ResetEstablishmentBit
      pos:
        line_end: 1330
        line_start: 1329
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x4000000B'
    - item_type: preproc_def
      name: TPM_NV_INDEX_T_BIT
      pos:
        line_end: 1378
        line_start: 1377
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: TPM_NV_INDEX_P_BIT
      pos:
        line_end: 1379
        line_start: 1378
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x40000000'
    - item_type: preproc_def
      name: TPM_NV_INDEX_U_BIT
      pos:
        line_end: 1380
        line_start: 1379
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x20000000'
    - item_type: preproc_def
      name: TPM_NV_INDEX_D_BIT
      pos:
        line_end: 1381
        line_start: 1380
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x10000000'
    - item_type: preproc_def
      name: TPM_NV_INDEX_RESVD
      pos:
        line_end: 1383
        line_start: 1382
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0f000000'
    - item_type: preproc_def
      name: TPM_NV_INDEX_PURVIEW_BIT
      pos:
        line_end: 1384
        line_start: 1383
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '16'
    - item_type: preproc_def
      name: TPM_NV_INDEX_PURVIEW_MASK
      pos:
        line_end: 1385
        line_start: 1384
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00ff0000'
    - item_type: preproc_def
      name: TPM_NV_INDEX_LOCK
      pos:
        line_end: 1404
        line_start: 1396
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0xFFFFFFFF   '
    - item_type: preproc_def
      name: TPM_NV_INDEX0
      pos:
        line_end: 1411
        line_start: 1405
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000000   '
    - item_type: preproc_def
      name: TPM_NV_INDEX_DIR
      pos:
        line_end: 1416
        line_start: 1412
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x10000001   '
    - item_type: preproc_def
      name: TPM_NV_INDEX_TPM
      pos:
        line_end: 1429
        line_start: 1428
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000Fxxx      '
    - item_type: preproc_def
      name: TPM_NV_INDEX_EKCert
      pos:
        line_end: 1430
        line_start: 1429
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000F000      '
    - item_type: preproc_def
      name: TPM_NV_INDEX_TPM_CC
      pos:
        line_end: 1432
        line_start: 1431
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000F001      '
    - item_type: preproc_def
      name: TPM_NV_INDEX_PlatformCert
      pos:
        line_end: 1433
        line_start: 1432
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000F002      '
    - item_type: preproc_def
      name: TPM_NV_INDEX_Platform_CC
      pos:
        line_end: 1434
        line_start: 1433
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000F003      '
    - item_type: preproc_def
      name: TPM_NV_INDEX_TRIAL
      pos:
        line_end: 1436
        line_start: 1434
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0000F004      '
    - item_type: preproc_def
      name: TPM_NV_INDEX_PC
      pos:
        line_end: 1439
        line_start: 1438
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0001xxxx      '
    - item_type: preproc_def
      name: TPM_NV_INDEX_GPIO_xx
      pos:
        line_end: 1440
        line_start: 1439
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000116xx      '
    - item_type: preproc_def
      name: TPM_NV_INDEX_PDA
      pos:
        line_end: 1441
        line_start: 1440
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0002xxxx      '
    - item_type: preproc_def
      name: TPM_NV_INDEX_MOBILE
      pos:
        line_end: 1442
        line_start: 1441
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0003xxxx      '
    - item_type: preproc_def
      name: TPM_NV_INDEX_SERVER
      pos:
        line_end: 1443
        line_start: 1442
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0004xxxx      '
    - item_type: preproc_def
      name: TPM_NV_INDEX_PERIPHERAL
      pos:
        line_end: 1444
        line_start: 1443
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0005xxxx      '
    - item_type: preproc_def
      name: TPM_NV_INDEX_TSS
      pos:
        line_end: 1445
        line_start: 1444
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x0006xxxx      '
    - item_type: preproc_def
      name: TPM_NV_INDEX_GROUP_RESV
      pos:
        line_end: 1446
        line_start: 1445
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00xxxxxx      '
    - item_type: preproc_def
      name: TPM_NV_INDEX_GPIO_00
      pos:
        line_end: 1449
        line_start: 1448
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00011600      '
    - item_type: preproc_def
      name: TPM_NV_INDEX_GPIO_START
      pos:
        line_end: 1451
        line_start: 1450
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00011600      '
    - item_type: preproc_def
      name: TPM_NV_INDEX_GPIO_END
      pos:
        line_end: 1452
        line_start: 1451
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x000116ff      '
    - item_type: preproc_def
      name: TPM_NV_PER_READ_STCLEAR
      pos:
        line_end: 1465
        line_start: 1460
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x80000000 '
    - item_type: preproc_def
      name: TPM_NV_PER_AUTHREAD
      pos:
        line_end: 1468
        line_start: 1466
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00040000 '
    - item_type: preproc_def
      name: TPM_NV_PER_OWNERREAD
      pos:
        line_end: 1470
        line_start: 1468
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00020000 '
    - item_type: preproc_def
      name: TPM_NV_PER_PPREAD
      pos:
        line_end: 1472
        line_start: 1470
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00010000 '
    - item_type: preproc_def
      name: TPM_NV_PER_GLOBALLOCK
      pos:
        line_end: 1477
        line_start: 1472
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00008000 '
    - item_type: preproc_def
      name: TPM_NV_PER_WRITE_STCLEAR
      pos:
        line_end: 1482
        line_start: 1477
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00004000 '
    - item_type: preproc_def
      name: TPM_NV_PER_WRITEDEFINE
      pos:
        line_end: 1485
        line_start: 1482
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00002000 '
    - item_type: preproc_def
      name: TPM_NV_PER_WRITEALL
      pos:
        line_end: 1487
        line_start: 1485
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00001000 '
    - item_type: preproc_def
      name: TPM_NV_PER_AUTHWRITE
      pos:
        line_end: 1490
        line_start: 1488
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: TPM_NV_PER_OWNERWRITE
      pos:
        line_end: 1492
        line_start: 1490
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: TPM_NV_PER_PPWRITE
      pos:
        line_end: 1494
        line_start: 1492
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: TPM_DELEGATE_PER1_MASK
      pos:
        line_end: 1500
        line_start: 1499
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0xffffffff      '
    - item_type: preproc_def
      name: TPM_DELEGATE_KeyControlOwner
      pos:
        line_end: 1501
        line_start: 1500
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '31'
    - item_type: preproc_def
      name: TPM_DELEGATE_SetOrdinalAuditStatus
      pos:
        line_end: 1502
        line_start: 1501
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '30'
    - item_type: preproc_def
      name: TPM_DELEGATE_DirWriteAuth
      pos:
        line_end: 1503
        line_start: 1502
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '29'
    - item_type: preproc_def
      name: TPM_DELEGATE_CMK_ApproveMA
      pos:
        line_end: 1504
        line_start: 1503
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '28'
    - item_type: preproc_def
      name: TPM_DELEGATE_NV_WriteValue
      pos:
        line_end: 1505
        line_start: 1504
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '27'
    - item_type: preproc_def
      name: TPM_DELEGATE_CMK_CreateTicket
      pos:
        line_end: 1506
        line_start: 1505
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '26'
    - item_type: preproc_def
      name: TPM_DELEGATE_NV_ReadValue
      pos:
        line_end: 1507
        line_start: 1506
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '25'
    - item_type: preproc_def
      name: TPM_DELEGATE_Delegate_LoadOwnerDelegation
      pos:
        line_end: 1508
        line_start: 1507
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '24'
    - item_type: preproc_def
      name: TPM_DELEGATE_DAA_Join
      pos:
        line_end: 1509
        line_start: 1508
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '23'
    - item_type: preproc_def
      name: TPM_DELEGATE_AuthorizeMigrationKey
      pos:
        line_end: 1510
        line_start: 1509
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '22'
    - item_type: preproc_def
      name: TPM_DELEGATE_CreateMaintenanceArchive
      pos:
        line_end: 1511
        line_start: 1510
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '21'
    - item_type: preproc_def
      name: TPM_DELEGATE_LoadMaintenanceArchive
      pos:
        line_end: 1512
        line_start: 1511
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '20'
    - item_type: preproc_def
      name: TPM_DELEGATE_KillMaintenanceFeature
      pos:
        line_end: 1513
        line_start: 1512
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '19'
    - item_type: preproc_def
      name: TPM_DELEGATE_OwnerReadInternalPub
      pos:
        line_end: 1514
        line_start: 1513
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '18'
    - item_type: preproc_def
      name: TPM_DELEGATE_ResetLockValue
      pos:
        line_end: 1515
        line_start: 1514
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '17'
    - item_type: preproc_def
      name: TPM_DELEGATE_OwnerClear
      pos:
        line_end: 1516
        line_start: 1515
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '16'
    - item_type: preproc_def
      name: TPM_DELEGATE_DisableOwnerClear
      pos:
        line_end: 1517
        line_start: 1516
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '15'
    - item_type: preproc_def
      name: TPM_DELEGATE_NV_DefineSpace
      pos:
        line_end: 1518
        line_start: 1517
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '14'
    - item_type: preproc_def
      name: TPM_DELEGATE_OwnerSetDisable
      pos:
        line_end: 1519
        line_start: 1518
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '13'
    - item_type: preproc_def
      name: TPM_DELEGATE_SetCapability
      pos:
        line_end: 1520
        line_start: 1519
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '12'
    - item_type: preproc_def
      name: TPM_DELEGATE_MakeIdentity
      pos:
        line_end: 1521
        line_start: 1520
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '11'
    - item_type: preproc_def
      name: TPM_DELEGATE_ActivateIdentity
      pos:
        line_end: 1522
        line_start: 1521
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '10'
    - item_type: preproc_def
      name: TPM_DELEGATE_OwnerReadPubek
      pos:
        line_end: 1523
        line_start: 1522
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '9 '
    - item_type: preproc_def
      name: TPM_DELEGATE_DisablePubekRead
      pos:
        line_end: 1524
        line_start: 1523
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '8 '
    - item_type: preproc_def
      name: TPM_DELEGATE_SetRedirection
      pos:
        line_end: 1525
        line_start: 1524
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '7 '
    - item_type: preproc_def
      name: TPM_DELEGATE_FieldUpgrade
      pos:
        line_end: 1526
        line_start: 1525
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '6 '
    - item_type: preproc_def
      name: TPM_DELEGATE_Delegate_UpdateVerification
      pos:
        line_end: 1527
        line_start: 1526
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '5 '
    - item_type: preproc_def
      name: TPM_DELEGATE_CreateCounter
      pos:
        line_end: 1528
        line_start: 1527
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: TPM_DELEGATE_ReleaseCounterOwner
      pos:
        line_end: 1529
        line_start: 1528
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: TPM_DELEGATE_Delegate_Manage
      pos:
        line_end: 1530
        line_start: 1529
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: TPM_DELEGATE_Delegate_CreateOwnerDelegation
      pos:
        line_end: 1531
        line_start: 1530
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: TPM_DELEGATE_DAA_Sign
      pos:
        line_end: 1532
        line_start: 1531
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: TPM_DELEGATE_PER2_MASK
      pos:
        line_end: 1535
        line_start: 1534
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000000      '
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_PER1_MASK
      pos:
        line_end: 1542
        line_start: 1541
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x1fffffff      '
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_CMK_ConvertMigration
      pos:
        line_end: 1543
        line_start: 1542
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '28'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_TickStampBlob
      pos:
        line_end: 1544
        line_start: 1543
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '27'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_ChangeAuthAsymStart
      pos:
        line_end: 1545
        line_start: 1544
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '26'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_ChangeAuthAsymFinish
      pos:
        line_end: 1546
        line_start: 1545
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '25'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_CMK_CreateKey
      pos:
        line_end: 1547
        line_start: 1546
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '24'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_MigrateKey
      pos:
        line_end: 1548
        line_start: 1547
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '23'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_LoadKey2
      pos:
        line_end: 1549
        line_start: 1548
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '22'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_EstablishTransport
      pos:
        line_end: 1550
        line_start: 1549
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '21'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_ReleaseTransportSigned
      pos:
        line_end: 1551
        line_start: 1550
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '20'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_Quote2
      pos:
        line_end: 1552
        line_start: 1551
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '19'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_Sealx
      pos:
        line_end: 1553
        line_start: 1552
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '18'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_MakeIdentity
      pos:
        line_end: 1554
        line_start: 1553
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '17'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_ActivateIdentity
      pos:
        line_end: 1555
        line_start: 1554
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '16'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_GetAuditDigestSigned
      pos:
        line_end: 1556
        line_start: 1555
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '15'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_Sign
      pos:
        line_end: 1557
        line_start: 1556
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '14'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_CertifyKey2
      pos:
        line_end: 1558
        line_start: 1557
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '13'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_CertifyKey
      pos:
        line_end: 1559
        line_start: 1558
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '12'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_CreateWrapKey
      pos:
        line_end: 1560
        line_start: 1559
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '11'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_CMK_CreateBlob
      pos:
        line_end: 1561
        line_start: 1560
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '10'
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_CreateMigrationBlob
      pos:
        line_end: 1562
        line_start: 1561
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '9 '
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_ConvertMigrationBlob
      pos:
        line_end: 1563
        line_start: 1562
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '8 '
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_Delegate_CreateKeyDelegation
      pos:
        line_end: 1564
        line_start: 1563
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '7 '
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_ChangeAuth
      pos:
        line_end: 1565
        line_start: 1564
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '6 '
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_GetPubKey
      pos:
        line_end: 1566
        line_start: 1565
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '5 '
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_UnBind
      pos:
        line_end: 1567
        line_start: 1566
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_Quote
      pos:
        line_end: 1568
        line_start: 1567
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_Unseal
      pos:
        line_end: 1569
        line_start: 1568
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_Seal
      pos:
        line_end: 1570
        line_start: 1569
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_LoadKey
      pos:
        line_end: 1571
        line_start: 1570
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: TPM_KEY_DELEGATE_PER2_MASK
      pos:
        line_end: 1574
        line_start: 1573
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000000      '
    - item_type: preproc_def
      name: TPM_DELEGATE_ADMIN_LOCK
      pos:
        line_end: 1588
        line_start: 1582
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: TPM_FAMFLAG_ENABLED
      pos:
        line_end: 1590
        line_start: 1588
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: TPM_FAMILY_CREATE
      pos:
        line_end: 1597
        line_start: 1596
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000001      '
    - item_type: preproc_def
      name: TPM_FAMILY_ENABLE
      pos:
        line_end: 1598
        line_start: 1597
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000002      '
    - item_type: preproc_def
      name: TPM_FAMILY_ADMIN
      pos:
        line_end: 1599
        line_start: 1598
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000003      '
    - item_type: preproc_def
      name: TPM_FAMILY_INVALIDATE
      pos:
        line_end: 1600
        line_start: 1599
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000004      '
    - item_type: preproc_def
      name: TPM_DA_STATE_INACTIVE
      pos:
        line_end: 1608
        line_start: 1606
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00    '
    - item_type: preproc_def
      name: TPM_DA_STATE_ACTIVE
      pos:
        line_end: 1610
        line_start: 1608
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x01    '
    - item_type: preproc_def
      name: TPM_DA_ACTION_FAILURE_MODE
      pos:
        line_end: 1617
        line_start: 1616
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: TPM_DA_ACTION_DEACTIVATE
      pos:
        line_end: 1618
        line_start: 1617
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: TPM_DA_ACTION_DISABLE
      pos:
        line_end: 1619
        line_start: 1618
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: TPM_DA_ACTION_TIMEOUT
      pos:
        line_end: 1623
        line_start: 1619
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: DAA_SIZE_r0
      pos:
        line_end: 1630
        line_start: 1629
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '43'
    - item_type: preproc_def
      name: DAA_SIZE_r1
      pos:
        line_end: 1631
        line_start: 1630
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '43'
    - item_type: preproc_def
      name: DAA_SIZE_r2
      pos:
        line_end: 1632
        line_start: 1631
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '128'
    - item_type: preproc_def
      name: DAA_SIZE_r3
      pos:
        line_end: 1633
        line_start: 1632
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '168'
    - item_type: preproc_def
      name: DAA_SIZE_r4
      pos:
        line_end: 1634
        line_start: 1633
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '219'
    - item_type: preproc_def
      name: DAA_SIZE_NT
      pos:
        line_end: 1635
        line_start: 1634
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '20'
    - item_type: preproc_def
      name: DAA_SIZE_v0
      pos:
        line_end: 1636
        line_start: 1635
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '128'
    - item_type: preproc_def
      name: DAA_SIZE_v1
      pos:
        line_end: 1637
        line_start: 1636
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '192'
    - item_type: preproc_def
      name: DAA_SIZE_NE
      pos:
        line_end: 1638
        line_start: 1637
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '256'
    - item_type: preproc_def
      name: DAA_SIZE_w
      pos:
        line_end: 1639
        line_start: 1638
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '256'
    - item_type: preproc_def
      name: DAA_SIZE_issuerModulus
      pos:
        line_end: 1640
        line_start: 1639
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '256'
    - item_type: preproc_def
      name: DAA_power0
      pos:
        line_end: 1649
        line_start: 1648
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '104  '
    - item_type: preproc_def
      name: DAA_power1
      pos:
        line_end: 1650
        line_start: 1649
        source_file: /src/libtpms/src/tpm12/tpm_constants.h
      type_or_value: '1024  '
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_CapVersionInfo_Init
  - TPM_CapVersionInfo_Set
  - TPM_CapVersionInfo_Load
  - TPM_CapVersionInfo_Store
  - TPM_CapVersionInfo_Delete
  - TPM_OrdinalTable_GetEntry
  - TPM_OrdinalTable_GetProcessFunction
  - TPM_OrdinalTable_GetAuditable
  - TPM_OrdinalTable_GetAuditDefault
  - TPM_OrdinalTable_GetOwnerPermission
  - TPM_OrdinalTable_GetKeyPermission
  - TPM_OrdinalTable_ParseWrappedCmd
  - TPM_OrdinalTable_ParseWrappedRsp
  - TPM_KeyHandleEntries_Trace
  - TPM_State_Trace
  - TPM_ProcessA
  - TPM_Process
  - TPM_Process_Wrapped
  - TPM_Process_GetCommandParams
  - TPM_Process_GetResponseParams
  - TPM_CheckRequestTag210
  - TPM_CheckRequestTag21
  - TPM_CheckRequestTag2
  - TPM_CheckRequestTag10
  - TPM_CheckRequestTag1
  - TPM_CheckRequestTag0
  - TPM_Process_Unused
  - TPM_CheckState
  - TPM_Process_Preprocess
  - TPM_Check_SHA1Context
  - TPM_GetInParamDigest
  - TPM_GetOutParamDigest
  - TPM_ProcessAudit
  - TPM_Process_GetCapability
  - TPM_GetSubCapInt
  - TPM_GetCapabilityCommon
  - TPM_GetCapability_CapOrd
  - TPM_GetCapability_CapAlg
  - TPM_GetCapability_CapPid
  - TPM_GetCapability_CapFlag
  - TPM_GetCapability_CapProperty
  - TPM_GetCapability_CapVersion
  - TPM_GetCapability_CapCheckLoaded
  - TPM_GetCapability_CapSymMode
  - TPM_GetCapability_CapKeyStatus
  - TPM_GetCapability_CapMfr
  - TPM_GetCapability_CapNVIndex
  - TPM_GetCapability_CapTransAlg
  - TPM_GetCapability_CapHandle
  - TPM_GetCapability_CapTransEs
  - TPM_GetCapability_CapAuthEncrypt
  - TPM_GetCapability_CapSelectSize
  - TPM_GetCapability_CapDaLogic
  - TPM_GetCapability_CapVersionVal
  - TPM_GetCapability_CapPropTisTimeout
  - TPM_GetCapability_CapPropDuration
  - TPM_Process_GetCapabilityOwner
  - TPM_Process_GetCapabilitySigned
  - TPM_Process_SetCapability
  - TPM_SetCapabilityCommon
  - TPM_SetCapability_Flag
  - TPM_SetCapability_CapPermFlags
  - TPM_SetCapability_CapPermData
  - TPM_SetCapability_CapStclearFlags
  - TPM_SetCapability_CapStclearData
  - TPM_SetCapability_CapStanyFlags
  - TPM_SetCapability_CapStanyData
  - TPM_SetCapability_CapVendor
  source_file: /src/libtpms/src/tpm12/tpm_process.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_identity.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_DelegatePublic_Init
  - TPM_DelegatePublic_Load
  - TPM_DelegatePublic_Store
  - TPM_DelegatePublic_Delete
  - TPM_DelegatePublic_Copy
  - TPM_DelegateSensitive_Init
  - TPM_DelegateSensitive_Load
  - TPM_DelegateSensitive_Store
  - TPM_DelegateSensitive_Delete
  - TPM_DelegateSensitive_DecryptEncData
  - TPM_Delegations_Init
  - TPM_Delegations_Load
  - TPM_Delegations_Store
  - TPM_Delegations_Delete
  - TPM_Delegations_Copy
  - TPM_Delegations_CheckPermissionDelegation
  - TPM_Delegations_CheckPermission
  - TPM_Delegations_CheckOwnerPermission
  - TPM_Delegations_CheckKeyPermission
  - TPM_DelegateOwnerBlob_Init
  - TPM_DelegateOwnerBlob_Load
  - TPM_DelegateOwnerBlob_Store
  - TPM_DelegateOwnerBlob_Delete
  - TPM_DelegateKeyBlob_Init
  - TPM_DelegateKeyBlob_Load
  - TPM_DelegateKeyBlob_Store
  - TPM_DelegateKeyBlob_Delete
  - TPM_FamilyTable_Init
  - TPM_FamilyTable_Load
  - TPM_FamilyTable_Store
  - TPM_FamilyTable_Delete
  - TPM_FamilyTable_GetEntry
  - TPM_FamilyTable_GetEnabledEntry
  - TPM_FamilyTable_IsSpace
  - TPM_FamilyTable_StoreValid
  - TPM_FamilyTableEntry_Init
  - TPM_FamilyTableEntry_Load
  - TPM_FamilyTableEntry_Store
  - TPM_FamilyTableEntry_StorePublic
  - TPM_FamilyTableEntry_Delete
  - TPM_DelegateTable_Init
  - TPM_DelegateTable_Load
  - TPM_DelegateTable_Store
  - TPM_DelegateTable_Delete
  - TPM_DelegateTable_StoreValid
  - TPM_DelegateTable_GetRow
  - TPM_DelegateTable_GetValidRow
  - TPM_DelegateTableRow_Init
  - TPM_DelegateTableRow_Load
  - TPM_DelegateTableRow_Store
  - TPM_DelegateTableRow_Delete
  - TPM_Process_DelegateManage
  - TPM_Process_DelegateCreateKeyDelegation
  - TPM_Process_DelegateCreateOwnerDelegation
  - TPM_Process_DelegateLoadOwnerDelegation
  - TPM_Process_DelegateReadTable
  - TPM_Process_DelegateUpdateVerification
  - TPM_Process_DelegateVerifyDelegation
  source_file: /src/libtpms/src/tpm12/tpm_delegate.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_AuditEventIn_Init
  - TPM_AuditEventIn_Store
  - TPM_AuditEventIn_Delete
  - TPM_AuditEventOut_Init
  - TPM_AuditEventOut_Store
  - TPM_AuditEventOut_Delete
  - TPM_OrdinalAuditStatus_Init
  - TPM_OrdinalAuditStatus_Store
  - TPM_OrdinalAuditStatus_GetAuditStatus
  - TPM_OrdinalAuditStatus_SetAuditStatus
  - TPM_AuditDigest_ExtendIn
  - TPM_AuditDigest_ExtendOut
  - TPM_Process_GetAuditDigest
  - TPM_Process_GetAuditDigestSigned
  - TPM_Process_SetOrdinalAuditStatus
  source_file: /src/libtpms/src/tpm12/tpm_audit.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_auth.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_admin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_Process_TakeOwnership
  - TPM_Process_OwnerClear
  - TPM_Process_ForceClear
  - TPM_OwnerClearCommon
  - TPM_Process_PhysicalPresence
  - TPM_Process_DisableOwnerClear
  - TPM_Process_DisableForceClear
  - TPM_Process_ResetEstablishmentBit
  source_file: /src/libtpms/src/tpm12/tpm_owner.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_IO_Init
  source_file: /src/libtpms/src/tpm12/tpm_libtpms_io.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_Counters_Init
  - TPM_Counters_Load
  - TPM_Counters_Store
  - TPM_Counters_StoreHandles
  - TPM_Counters_GetSpace
  - TPM_Counters_GetNewHandle
  - TPM_Counters_GetNextCount
  - TPM_Counters_IsValidId
  - TPM_Counters_GetCounterValue
  - TPM_Counters_Release
  - TPM_Counters_GetActiveCounter
  - TPM_CounterValue_Init
  - TPM_CounterValue_Load
  - TPM_CounterValue_Store
  - TPM_CounterValue_StorePublic
  - TPM_CounterValue_CopyPublic
  - TPM_CounterValue_Set
  - TPM_CounterValue_Release
  - TPM_Process_CreateCounter
  - TPM_Process_IncrementCounter
  - TPM_Process_ReadCounter
  - TPM_Process_ReleaseCounter
  - TPM_Process_ReleaseCounterOwner
  source_file: /src/libtpms/src/tpm12/tpm_counter.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_IO_GetLocality
  - TPM_IO_GetPhysicalPresence
  - TPM_IO_GPIO_Write
  - TPM_IO_GPIO_Read
  source_file: /src/libtpms/src/tpm12/tpm_platform.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_startup.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_cryptoh.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_global.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_TEST_STATE_LIMITED
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/libtpms/src/tpm12/tpm_global.h
      type_or_value: '1       '
    - item_type: preproc_def
      name: TPM_TEST_STATE_FULL
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/libtpms/src/tpm12/tpm_global.h
      type_or_value: '2       '
    - item_type: preproc_def
      name: TPM_TEST_STATE_FAILURE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libtpms/src/tpm12/tpm_global.h
      type_or_value: '3       '
    structs:
    - fields:
      - name: tpm_number
        type: uint32_t
      - name: tpm_permanent_flags
        type: TPM_PERMANENT_FLAGS
      - name: tpm_stclear_flags
        type: TPM_STCLEAR_FLAGS
      - name: tpm_stany_flags
        type: TPM_STANY_FLAGS
      - name: tpm_permanent_data
        type: TPM_PERMANENT_DATA
      - name: tpm_stclear_data
        type: TPM_STCLEAR_DATA
      - name: tpm_stany_data
        type: TPM_STANY_DATA
      - name: tpm_key_handle_entries[TPM_KEY_HANDLES]
        type: TPM_KEY_HANDLE_ENTRY
      - name: '*sha1_context'
        type: void
      - name: '*sha1_context_tis'
        type: void
      - name: transportHandle
        type: TPM_TRANSHANDLE
      - name: testState
        type: uint32_t
      - name: tpm_nv_index_entries
        type: TPM_NV_INDEX_ENTRIES
      item_type: struct
      name: tdTPM_STATE
      pos:
        line_end: 81
        line_start: 50
        source_file: /src/libtpms/src/tpm12/tpm_global.h
    typedefs: []
    union: []
- function_names:
  - TPM_Process_CreateMaintenanceArchive
  - TPM_Process_LoadMaintenanceArchive
  - TPM_Process_KillMaintenanceFeature
  - TPM_Process_LoadManuMaintPub
  - TPM_Process_ReadManuMaintPub
  source_file: /src/libtpms/src/tpm12/tpm_maint.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_nvram_const.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPMS_MAX
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libtpms/src/tpm12/tpm_nvram_const.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TPM_MAX_NV_DEFINED_SIZE
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libtpms/src/tpm12/tpm_nvram_const.h
      type_or_value: '2100'
    - item_type: preproc_def
      name: TPM_MAX_NV_SPACE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm12/tpm_nvram_const.h
      type_or_value: "100000\t"
    - item_type: preproc_def
      name: TPM_MAX_SAVESTATE_SPACE
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/libtpms/src/tpm12/tpm_nvram_const.h
      type_or_value: "100000\t"
    - item_type: preproc_def
      name: TPM_MAX_VOLATILESTATE_SPACE
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/libtpms/src/tpm12/tpm_nvram_const.h
      type_or_value: "524288\t"
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_Digest_Init
  - TPM_Digest_Load
  - TPM_Digest_Store
  - TPM_Digest_Set
  - TPM_Digest_Copy
  - TPM_Digest_XOR
  - TPM_Digest_Compare
  - TPM_Digest_IsZero
  - TPM_Digest_IsMinusOne
  source_file: /src/libtpms/src/tpm12/tpm_digest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_error.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_ticks.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_nvram.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_Global_Init
  - TPM_Global_Load
  - TPM_Global_Store
  - TPM_Global_Delete
  - TPM_Global_GetPhysicalPresence
  source_file: /src/libtpms/src/tpm12/tpm_global.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_load.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_EKBlob_Init
  - TPM_EKBlob_Load
  - TPM_EKBlob_Store
  - TPM_EKBlob_Delete
  - TPM_EKBlobActivate_Init
  - TPM_EKBlobActivate_Load
  - TPM_EKBlobActivate_Store
  - TPM_EKBlobActivate_Delete
  - TPM_EKBlobAuth_Init
  - TPM_EKBlobAuth_Load
  - TPM_EKBlobAuth_Store
  - TPM_EKBlobAuth_Delete
  - TPM_IdentityContents_Init
  - TPM_IdentityContents_Load
  - TPM_IdentityContents_Store
  - TPM_IdentityContents_Delete
  - TPM_AsymCaContents_Init
  - TPM_AsymCaContents_Load
  - TPM_AsymCaContents_Store
  - TPM_AsymCaContents_Delete
  - TPM_Process_MakeIdentity
  - TPM_Process_ActivateIdentity
  source_file: /src/libtpms/src/tpm12/tpm_identity.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_migration.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_svnrevision.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_SaveState_Load
  - TPM_SaveState_Store
  - TPM_SaveState_IsSaveKey
  - TPM_SaveState_NVLoad
  - TPM_SaveState_NVStore
  - TPM_SaveState_NVDelete
  - TPM_VolatileAll_Load
  - TPM_VolatileAll_Store
  - TPM_VolatileAll_NVLoad
  - TPM_VolatileAll_NVStore
  - TPM_Parameters_Load
  - TPM_Parameters_Check8
  - TPM_Parameters_Check16
  - TPM_Parameters_Check32
  - TPM_Parameters_Store
  - TPM_Process_Reset
  - TPM_Process_Startup
  - TPM_Startup_Clear
  - TPM_Startup_State
  - TPM_Startup_Deactivated
  - TPM_Startup_Any
  - TPM_Process_SaveState
  source_file: /src/libtpms/src/tpm12/tpm_startup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_DaaSessions_Init
  - TPM_DaaSessions_Load
  - TPM_DaaSessions_Store
  - TPM_DaaSessions_Delete
  - TPM_DaaSessions_IsSpace
  - TPM_DaaSessions_GetSpace
  - TPM_DaaSessions_StoreHandles
  - TPM_DaaSessions_GetNewHandle
  - TPM_DaaSessions_GetEntry
  - TPM_DaaSessions_AddEntry
  - TPM_DaaSessions_TerminateHandle
  - TPM_DaaSessionData_Init
  - TPM_DaaSessionData_Load
  - TPM_DaaSessionData_Store
  - TPM_DaaSessionData_Delete
  - TPM_DaaSessionData_Copy
  - TPM_DaaSessionData_CheckStage
  - TPM_DAAIssuer_Init
  - TPM_DAAIssuer_Load
  - TPM_DAAIssuer_Store
  - TPM_DAAIssuer_Delete
  - TPM_DAAIssuer_Copy
  - TPM_DAATpm_Init
  - TPM_DAATpm_Load
  - TPM_DAATpm_Store
  - TPM_DAATpm_Delete
  - TPM_DAATpm_Copy
  - TPM_DAAContext_Init
  - TPM_DAAContext_Load
  - TPM_DAAContext_Store
  - TPM_DAAContext_Delete
  - TPM_DAAContext_Copy
  - TPM_DAAJoindata_Init
  - TPM_DAAJoindata_Load
  - TPM_DAAJoindata_Store
  - TPM_DAAJoindata_Delete
  - TPM_DAAJoindata_Copy
  - TPM_DAABlob_Init
  - TPM_DAABlob_Load
  - TPM_DAABlob_Store
  - TPM_DAABlob_Delete
  - TPM_DAASensitive_Init
  - TPM_DAASensitive_Load
  - TPM_DAASensitive_Store
  - TPM_DAASensitive_Delete
  - TPM_DAAJoin_Stage00
  - TPM_DAAJoin_Stage01
  - TPM_DAAJoin_Stage02
  - TPM_DAAJoin_Stage03
  - TPM_DAAJoin_Stage04
  - TPM_DAAJoin_Stage05
  - TPM_DAAJoin_Stage06
  - TPM_DAAJoin_Stage07
  - TPM_DAAJoin_Stage08
  - TPM_DAAJoin_Stage09_Sign_Stage2
  - TPM_DAAJoin_Stage10_Sign_Stage3
  - TPM_DAAJoin_Stage11_Sign_Stage4
  - TPM_DAAJoin_Stage12
  - TPM_DAAJoin_Stage13_Sign_Stage6
  - TPM_DAAJoin_Stage14_Sign_Stage7
  - TPM_DAAJoin_Stage15_Sign_Stage8
  - TPM_DAAJoin_Stage16_Sign_Stage9
  - TPM_DAAJoin_Stage17_Sign_Stage11
  - TPM_DAAJoin_Stage18_Sign_Stage12
  - TPM_DAAJoin_Stage19
  - TPM_DAAJoin_Stage20
  - TPM_DAAJoin_Stage21
  - TPM_DAAJoin_Stage22
  - TPM_DAAJoin_Stage23
  - TPM_DAAJoin_Stage24
  - TPM_DAASign_Stage00
  - TPM_DAASign_Stage01
  - TPM_DAASign_Stage05
  - TPM_DAASign_Stage10
  - TPM_DAASign_Stage13
  - TPM_DAASign_Stage14
  - TPM_DAASign_Stage15
  - TPM_DAADigestContext_GenerateDigestJoin
  - TPM_DAADigestContext_CheckDigestJoin
  - TPM_ComputeF
  - TPM_ComputeAexpPmodn
  - TPM_ComputeZxAexpPmodn
  - TPM_ComputeApBmodn
  - TPM_ComputeApBxC
  - TPM_ComputeApBxCpD
  - TPM_ComputeDAAScratch
  - TPM_ComputeEnlarge
  - TPM_SizedBuffer_ComputeEnlarge
  - TPM_ComputeEncrypt
  - TPM_ComputeDecrypt
  - TPM_SHA1_BignumGenerate
  - TPM_SHA1_SizedBufferCheck
  - TPM_Process_DAAJoin
  - TPM_Process_DAASign
  source_file: /src/libtpms/src/tpm12/tpm_daa.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_StructVer_Init
  - TPM_StructVer_Load
  - TPM_StructVer_Store
  - TPM_StructVer_Copy
  - TPM_StructVer_CheckVer
  - TPM_Version_Init
  - TPM_Version_Set
  - TPM_Version_Load
  - TPM_Version_Store
  source_file: /src/libtpms/src/tpm12/tpm_ver.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_counter.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_platform.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_openssl_helpers.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_daa.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_AuthSessionData_Init
  - TPM_AuthSessionData_Load
  - TPM_AuthSessionData_Store
  - TPM_AuthSessionData_Delete
  - TPM_AuthSessionData_Copy
  - TPM_AuthSessionData_GetDelegatePublic
  - TPM_AuthSessionData_CheckEncScheme
  - TPM_AuthSessionData_Decrypt
  - TPM_AuthSessions_Init
  - TPM_AuthSessions_Load
  - TPM_AuthSessions_Store
  - TPM_AuthSessions_Delete
  - TPM_AuthSessions_IsSpace
  - TPM_AuthSessions_Trace
  - TPM_AuthSessions_GetSpace
  - TPM_AuthSessions_StoreHandles
  - TPM_AuthSessions_GetNewHandle
  - TPM_AuthSessions_GetEntry
  - TPM_AuthSessions_AddEntry
  - TPM_AuthSessions_GetData
  - TPM_AuthSessions_TerminateHandle
  - TPM_AuthSessions_TerminateEntity
  - TPM_AuthSessions_TerminatexSAP
  - TPM_ContextList_Init
  - TPM_ContextList_Load
  - TPM_ContextList_Store
  - TPM_ContextList_GetSpace
  - TPM_ContextList_GetEntry
  - TPM_ContextList_StoreHandles
  - TPM_ContextBlob_Init
  - TPM_ContextBlob_Load
  - TPM_ContextBlob_Store
  - TPM_ContextBlob_Delete
  - TPM_ContextSensitive_Init
  - TPM_ContextSensitive_Load
  - TPM_ContextSensitive_Store
  - TPM_ContextSensitive_Delete
  - TPM_Process_OIAP
  - TPM_Process_OSAP
  - TPM_Process_DSAP
  - TPM_OSAPDelegate
  - TPM_Process_SetOwnerPointer
  - TPM_Process_TerminateHandle
  - TPM_Process_FlushSpecific
  - TPM_Process_SaveContext
  - TPM_Process_LoadContext
  - TPM_LoadContext_CheckKeyLoaded
  - TPM_LoadContext_CheckKeyLoadedByDigest
  - TPM_LoadContext_CheckOwnerLoaded
  - TPM_LoadContext_CheckSrkLoaded
  - TPM_LoadContext_CheckCounterLoaded
  - TPM_LoadContext_CheckNvLoaded
  - TPM_Process_KeyControlOwner
  - TPM_Process_SaveKeyContext
  - TPM_Process_LoadKeyContext
  - TPM_Process_SaveAuthContext
  - TPM_Process_LoadAuthContext
  source_file: /src/libtpms/src/tpm12/tpm_session.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_session.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_time.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_TICK_RATE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/libtpms/src/tpm12/tpm_time.h
      type_or_value: '1       '
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_PermanentFlags_Init
  - TPM_PermanentFlags_Load
  - TPM_PermanentFlags_Store
  - TPM_PermanentFlags_StoreBytes
  - TPM_PermanentFlags_LoadBitmap
  - TPM_PermanentFlags_StoreBitmap
  - TPM_PermanentData_Init
  - TPM_PermanentData_Load
  - TPM_PermanentData_Store
  - TPM_PermanentData_Delete
  - TPM_PermanentData_Zero
  - TPM_PermanentData_InitDaa
  - TPM_PermanentAll_Load
  - TPM_PermanentAll_Store
  - TPM_PermanentAll_NVLoad
  - TPM_PermanentAll_NVStore
  - TPM_PermanentAll_NVDelete
  - TPM_PermanentAll_IsSpace
  - TPM_PermanentAll_GetSpace
  source_file: /src/libtpms/src/tpm12/tpm_permanent.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_secret.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_GetTimeOfDay
  source_file: /src/libtpms/src/tpm12/tpm_time.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_digest.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_delegate.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_Secret_Init
  - TPM_Secret_Load
  - TPM_Secret_Store
  - TPM_Secret_Delete
  - TPM_Secret_Copy
  - TPM_Secret_Compare
  - TPM_Secret_Generate
  - TPM_Secret_XOR
  source_file: /src/libtpms/src/tpm12/tpm_secret.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_crypto.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_svnrevision.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_structures.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_MAJOR
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: TPM_MINOR
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: TPM_MINOR
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: TPM_DIGEST_SIZE
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '20'
    - item_type: preproc_def
      name: TPM_NONCE_SIZE
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '20'
    - item_type: preproc_def
      name: TPM_AUTHDATA_SIZE
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '20'
    - item_type: preproc_def
      name: TPM_SECRET_SIZE
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '20'
    - item_type: preproc_def
      name: TPM_NUM_PCR
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '16          '
    - item_type: preproc_def
      name: TPM_NUM_PCR
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '24          '
    - item_type: preproc_def
      name: TPM_LOC_FOUR
      pos:
        line_end: 374
        line_start: 373
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '0x10    '
    - item_type: preproc_def
      name: TPM_LOC_THREE
      pos:
        line_end: 375
        line_start: 374
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '0x08    '
    - item_type: preproc_def
      name: TPM_LOC_TWO
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '0x04    '
    - item_type: preproc_def
      name: TPM_LOC_ONE
      pos:
        line_end: 377
        line_start: 376
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '0x02    '
    - item_type: preproc_def
      name: TPM_LOC_ZERO
      pos:
        line_end: 378
        line_start: 377
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '0x01    '
    - item_type: preproc_def
      name: TPM_LOC_ALL
      pos:
        line_end: 380
        line_start: 379
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '0x1f    '
    - item_type: preproc_def
      name: TPM_LOC_MAX
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '4       '
    - item_type: preproc_def
      name: TPM_RSA_KEY_LENGTH_MAX
      pos:
        line_end: 619
        line_start: 618
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: TPM_KEY_HANDLES
      pos:
        line_end: 898
        line_start: 897
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '3     '
    - item_type: preproc_def
      name: TPM_OWNER_EVICT_KEY_HANDLES
      pos:
        line_end: 915
        line_start: 914
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: TPM_COUNTER_LABEL_SIZE
      pos:
        line_end: 953
        line_start: 952
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TPM_COUNT_ID_NULL
      pos:
        line_end: 955
        line_start: 953
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '0xffffffff    '
    - item_type: preproc_def
      name: TPM_COUNT_ID_ILLEGAL
      pos:
        line_end: 956
        line_start: 955
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '0xfffffffe '
    - item_type: preproc_def
      name: TPM_SIGN_INFO_FIXED_SIZE
      pos:
        line_end: 980
        line_start: 979
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TPM_DEL_OWNER_BITS
      pos:
        line_end: 1110
        line_start: 1109
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: TPM_DEL_KEY_BITS
      pos:
        line_end: 1111
        line_start: 1110
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: TPM_NUM_FAMILY_TABLE_ENTRY_MIN
      pos:
        line_end: 1184
        line_start: 1183
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '8'
    - item_type: preproc_def
      name: TPM_NUM_DELEGATE_TABLE_ENTRY_MIN
      pos:
        line_end: 1267
        line_start: 1266
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TPM_MIN_TRANS_SESSIONS
      pos:
        line_end: 1416
        line_start: 1415
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TPM_MIN_DAA_SESSIONS
      pos:
        line_end: 1624
        line_start: 1623
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TPM_MIN_COUNTERS
      pos:
        line_end: 1883
        line_start: 1882
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: TPM_DELEGATE_KEY
      pos:
        line_end: 1886
        line_start: 1885
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: 'TPM_KEY '
    - item_type: preproc_def
      name: TPM_MAX_NV_WRITE_NOOWNER
      pos:
        line_end: 1887
        line_start: 1886
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '64 '
    - item_type: preproc_def
      name: TPM_ORDINALS_MAX
      pos:
        line_end: 1892
        line_start: 1891
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '256     '
    - item_type: preproc_def
      name: TPM_AUTHDIR_SIZE
      pos:
        line_end: 1893
        line_start: 1892
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '1       '
    - item_type: preproc_def
      name: TPM_MIN_AUTH_SESSIONS
      pos:
        line_end: 2000
        line_start: 1999
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TPM_MIN_SESSION_LIST
      pos:
        line_end: 2029
        line_start: 2028
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '16'
    - item_type: preproc_def
      name: TPM_CONTEXT_LABEL_SIZE
      pos:
        line_end: 2382
        line_start: 2381
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type_or_value: '16'
    structs:
    - fields:
      - name: size
        type: uint32_t
      - name: '*buffer'
        type: BYTE
      item_type: struct
      name: tdTPM_SIZED_BUFFER
      pos:
        line_end: 101
        line_start: 98
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: '*buffer'
        type: unsigned char
      - name: '*buffer_current'
        type: unsigned char
      - name: '*buffer_end'
        type: unsigned char
      item_type: struct
      name: tdTPM_STORE_BUFFER
      pos:
        line_end: 111
        line_start: 107
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: major
        type: BYTE
      - name: minor
        type: BYTE
      - name: revMajor
        type: BYTE
      - name: revMinor
        type: BYTE
      item_type: struct
      name: tdTPM_STRUCT_VER
      pos:
        line_end: 136
        line_start: 131
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: major
        type: TPM_VERSION_BYTE
      - name: minor
        type: TPM_VERSION_BYTE
      - name: revMajor
        type: BYTE
      - name: revMinor
        type: BYTE
      item_type: struct
      name: tdTPM_VERSION
      pos:
        line_end: 172
        line_start: 165
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: digest[TPM_DIGEST_SIZE]
        type: BYTE
      item_type: struct
      name: tdTPM_DIGEST
      pos:
        line_end: 200
        line_start: 198
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: nonce[TPM_NONCE_SIZE]
        type: BYTE
      item_type: struct
      name: tdTPM_NONCE
      pos:
        line_end: 236
        line_start: 233
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: loaded
        type: uint16_t
      - name: handle[]
        type: TPM_KEY_HANDLE
      item_type: struct
      name: tdTPM_KEY_HANDLE_LIST
      pos:
        line_end: 274
        line_start: 270
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: newAuthSecret
        type: TPM_SECRET
      - name: n1
        type: TPM_NONCE
      item_type: struct
      name: tdTPM_CHANGEAUTH_VALIDATE
      pos:
        line_end: 287
        line_start: 283
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: sizeOfSelect
        type: uint16_t
      - name: pcrSelect[TPM_NUM_PCR/CHAR_BIT]
        type: BYTE
      item_type: struct
      name: tdTPM_PCR_SELECTION
      pos:
        line_end: 322
        line_start: 318
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: select
        type: TPM_PCR_SELECTION
      - name: pcrValue
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_PCR_COMPOSITE
      pos:
        line_end: 340
        line_start: 330
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: pcrSelection
        type: TPM_PCR_SELECTION
      - name: digestAtRelease
        type: TPM_COMPOSITE_HASH
      - name: digestAtCreation
        type: TPM_COMPOSITE_HASH
      item_type: struct
      name: tdTPM_PCR_INFO
      pos:
        line_end: 361
        line_start: 348
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: localityAtCreation
        type: TPM_LOCALITY_SELECTION
      - name: localityAtRelease
        type: TPM_LOCALITY_SELECTION
      - name: creationPCRSelection
        type: TPM_PCR_SELECTION
      - name: releasePCRSelection
        type: TPM_PCR_SELECTION
      - name: digestAtCreation
        type: TPM_COMPOSITE_HASH
      - name: digestAtRelease
        type: TPM_COMPOSITE_HASH
      item_type: struct
      name: tdTPM_PCR_INFO_LONG
      pos:
        line_end: 411
        line_start: 392
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: pcrSelection
        type: TPM_PCR_SELECTION
      - name: localityAtRelease
        type: TPM_LOCALITY_SELECTION
      - name: digestAtRelease
        type: TPM_COMPOSITE_HASH
      item_type: struct
      name: tdTPM_PCR_INFO_SHORT
      pos:
        line_end: 427
        line_start: 419
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: pcrReset
        type: TPM_BOOL
      - name: pcrExtendLocal
        type: TPM_LOCALITY_SELECTION
      - name: pcrResetLocal
        type: TPM_LOCALITY_SELECTION
      item_type: struct
      name: tdTPM_PCR_ATTRIBUTES
      pos:
        line_end: 447
        line_start: 440
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: ver
        type: TPM_STRUCT_VER
      - name: sealInfo
        type: TPM_SIZED_BUFFER
      - name: encData
        type: TPM_SIZED_BUFFER
      - name: '*tpm_seal_info'
        type: TPM_PCR_INFO
      item_type: struct
      name: tdTPM_STORED_DATA
      pos:
        line_end: 486
        line_start: 470
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: tag
        type: TPM_STRUCTURE_TAG
      - name: et
        type: TPM_ENTITY_TYPE
      - name: sealInfo
        type: TPM_SIZED_BUFFER
      - name: encData
        type: TPM_SIZED_BUFFER
      - name: '*tpm_seal_info_long'
        type: TPM_PCR_INFO_LONG
      item_type: struct
      name: tdTPM_STORED_DATA12
      pos:
        line_end: 520
        line_start: 503
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: payload
        type: TPM_PAYLOAD_TYPE
      - name: authData
        type: TPM_SECRET
      - name: tpmProof
        type: TPM_SECRET
      - name: storedDigest
        type: TPM_DIGEST
      - name: data
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_SEALED_DATA
      pos:
        line_end: 545
        line_start: 533
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: algId
        type: TPM_ALGORITHM_ID
      - name: encScheme
        type: TPM_ENC_SCHEME
      - name: size
        type: uint16_t
      - name: '* data'
        type: BYTE
      item_type: struct
      name: tdTPM_SYMMETRIC_KEY
      pos:
        line_end: 561
        line_start: 554
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: ver
        type: TPM_STRUCT_VER
      - name: payload
        type: TPM_PAYLOAD_TYPE
      - name: payloadDataSize
        type: uint32_t
      - name: '*payloadData'
        type: BYTE
      item_type: struct
      name: tdTPM_BOUND_DATA
      pos:
        line_end: 592
        line_start: 587
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: keyLength
        type: uint32_t
      - name: numPrimes
        type: uint32_t
      - name: exponent
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_RSA_KEY_PARMS
      pos:
        line_end: 631
        line_start: 621
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: algorithmID
        type: TPM_ALGORITHM_ID
      - name: encScheme
        type: TPM_ENC_SCHEME
      - name: sigScheme
        type: TPM_SIG_SCHEME
      - name: parms
        type: TPM_SIZED_BUFFER
      - name: '*tpm_rsa_key_parms'
        type: TPM_RSA_KEY_PARMS
      item_type: struct
      name: tdTPM_KEY_PARMS
      pos:
        line_end: 656
        line_start: 640
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: keyLength
        type: uint32_t
      - name: blockSize
        type: uint32_t
      - name: ivSize
        type: uint32_t
      - name: '*IV'
        type: BYTE
      item_type: struct
      name: tdTPM_SYMMETRIC_KEY_PARMS
      pos:
        line_end: 668
        line_start: 663
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: keyLength
        type: uint32_t
      - name: '*key'
        type: BYTE
      item_type: struct
      name: tdTPM_STORE_PUBKEY
      pos:
        line_end: 681
        line_start: 677
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: keyLength
        type: uint32_t
      - name: '* key'
        type: BYTE
      item_type: struct
      name: tdTPM_STORE_PRIVKEY
      pos:
        line_end: 695
        line_start: 691
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: d_key
        type: TPM_SIZED_BUFFER
      - name: p_key
        type: TPM_SIZED_BUFFER
      - name: q_key
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_STORE_PRIVKEY
      pos:
        line_end: 704
        line_start: 700
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: payload
        type: TPM_PAYLOAD_TYPE
      - name: usageAuth
        type: TPM_SECRET
      - name: migrationAuth
        type: TPM_SECRET
      - name: pubDataDigest
        type: TPM_DIGEST
      - name: privKey
        type: TPM_STORE_PRIVKEY
      item_type: struct
      name: tdTPM_STORE_ASYMKEY
      pos:
        line_end: 756
        line_start: 724
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: payload
        type: TPM_PAYLOAD_TYPE
      - name: usageAuth
        type: TPM_SECRET
      - name: pubDataDigest
        type: TPM_DIGEST
      - name: partPrivKey
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_MIGRATE_ASYMKEY
      pos:
        line_end: 786
        line_start: 772
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: ver
        type: TPM_STRUCT_VER
      - name: keyUsage
        type: TPM_KEY_USAGE
      - name: keyFlags
        type: TPM_KEY_FLAGS
      - name: authDataUsage
        type: TPM_AUTH_DATA_USAGE
      - name: algorithmParms
        type: TPM_KEY_PARMS
      - name: pcrInfo
        type: TPM_SIZED_BUFFER
      - name: pubKey
        type: TPM_SIZED_BUFFER
      - name: encData
        type: TPM_SIZED_BUFFER
      - name: '*tpm_pcr_info'
        type: TPM_PCR_INFO
      - name: '*tpm_pcr_info_long'
        type: TPM_PCR_INFO_LONG
      - name: '*tpm_store_asymkey'
        type: TPM_STORE_ASYMKEY
      - name: '*tpm_migrate_asymkey'
        type: TPM_MIGRATE_ASYMKEY
      item_type: struct
      name: tdTPM_KEY
      pos:
        line_end: 832
        line_start: 801
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: tag
        type: TPM_STRUCTURE_TAG
      - name: fill
        type: uint16_t
      - name: keyUsage
        type: TPM_KEY_USAGE
      - name: keyFlags
        type: TPM_KEY_FLAGS
      - name: authDataUsage
        type: TPM_AUTH_DATA_USAGE
      - name: algorithmParms
        type: TPM_KEY_PARMS
      - name: pcrInfo
        type: TPM_SIZED_BUFFER
      - name: pubKey
        type: TPM_SIZED_BUFFER
      - name: encData
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_KEY12
      pos:
        line_end: 866
        line_start: 843
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: algorithmParms
        type: TPM_KEY_PARMS
      - name: pubKey
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_PUBKEY
      pos:
        line_end: 884
        line_start: 878
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: handle
        type: TPM_KEY_HANDLE
      - name: '*key'
        type: TPM_KEY
      - name: parentPCRStatus
        type: TPM_BOOL
      - name: keyControl
        type: TPM_KEY_CONTROL
      item_type: struct
      name: tdTPM_KEY_HANDLE_ENTRY
      pos:
        line_end: 932
        line_start: 926
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: migrationKey
        type: TPM_PUBKEY
      - name: migrationScheme
        type: TPM_MIGRATE_SCHEME
      - name: digest
        type: TPM_DIGEST
      item_type: struct
      name: tdTPM_MIGRATIONKEYAUTH
      pos:
        line_end: 945
        line_start: 940
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: label[TPM_COUNTER_LABEL_SIZE]
        type: BYTE
      - name: counter
        type: TPM_ACTUAL_COUNT
      - name: authData
        type: TPM_SECRET
      - name: valid
        type: TPM_BOOL
      - name: digest
        type: TPM_DIGEST
      item_type: struct
      name: tdTPM_COUNTER_VALUE
      pos:
        line_end: 968
        line_start: 957
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: fixed[TPM_SIGN_INFO_FIXED_SIZE]
        type: BYTE
      - name: replay
        type: TPM_NONCE
      - name: data
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_SIGN_INFO
      pos:
        line_end: 993
        line_start: 981
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: MSAlist
        type: uint32_t
      - name: '*migAuthDigest'
        type: TPM_DIGEST
      item_type: struct
      name: tdTPM_MSA_COMPOSITE
      pos:
        line_end: 1011
        line_start: 1006
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: migrationAuthorityDigest
        type: TPM_DIGEST
      - name: destinationKeyDigest
        type: TPM_DIGEST
      - name: sourceKeyDigest
        type: TPM_DIGEST
      item_type: struct
      name: tdTPM_CMK_AUTH
      pos:
        line_end: 1036
        line_start: 1026
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: major
        type: BYTE
      - name: minor
        type: BYTE
      - name: reqSize
        type: uint16_t
      item_type: struct
      name: tdTPM_SELECT_SIZE
      pos:
        line_end: 1049
        line_start: 1043
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: msaDigest
        type: TPM_DIGEST
      - name: pubKeyDigest
        type: TPM_DIGEST
      item_type: struct
      name: tdTPM_CMK_MIGAUTH
      pos:
        line_end: 1063
        line_start: 1056
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: verKeyDigest
        type: TPM_DIGEST
      - name: signedData
        type: TPM_DIGEST
      item_type: struct
      name: tdTPM_CMK_SIGTICKET
      pos:
        line_end: 1077
        line_start: 1070
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: migrationAuthorityDigest
        type: TPM_DIGEST
      item_type: struct
      name: tdTPM_CMK_MA_APPROVAL
      pos:
        line_end: 1091
        line_start: 1084
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: delegateType
        type: uint32_t
      - name: per1
        type: uint32_t
      - name: per2
        type: uint32_t
      item_type: struct
      name: tdTPM_DELEGATIONS
      pos:
        line_end: 1119
        line_start: 1112
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: label
        type: BYTE
      item_type: struct
      name: tdTPM_FAMILY_LABEL
      pos:
        line_end: 1134
        line_start: 1130
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: familyLabel
        type: TPM_FAMILY_LABEL
      - name: familyID
        type: TPM_FAMILY_ID
      - name: verificationCount
        type: TPM_FAMILY_VERIFICATION
      - name: flags
        type: TPM_FAMILY_FLAGS
      - name: valid
        type: TPM_BOOL
      item_type: struct
      name: tdTPM_FAMILY_TABLE_ENTRY
      pos:
        line_end: 1168
        line_start: 1151
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: famTableRow[TPM_NUM_FAMILY_TABLE_ENTRY_MIN]
        type: TPM_FAMILY_TABLE_ENTRY
      item_type: struct
      name: tdTPM_FAMILY_TABLE
      pos:
        line_end: 1188
        line_start: 1186
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: label
        type: BYTE
      item_type: struct
      name: tdTPM_DELEGATE_LABEL
      pos:
        line_end: 1200
        line_start: 1197
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: rowLabel
        type: TPM_DELEGATE_LABEL
      - name: pcrInfo
        type: TPM_PCR_INFO_SHORT
      - name: permissions
        type: TPM_DELEGATIONS
      - name: familyID
        type: TPM_FAMILY_ID
      - name: verificationCount
        type: TPM_FAMILY_VERIFICATION
      item_type: struct
      name: tdTPM_DELEGATE_PUBLIC
      pos:
        line_end: 1233
        line_start: 1214
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: pub
        type: TPM_DELEGATE_PUBLIC
      - name: authValue
        type: TPM_SECRET
      - name: valid
        type: TPM_BOOL
      item_type: struct
      name: tdTPM_DELEGATE_TABLE_ROW
      pos:
        line_end: 1250
        line_start: 1241
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: delRow[TPM_NUM_DELEGATE_TABLE_ENTRY_MIN]
        type: TPM_DELEGATE_TABLE_ROW
      item_type: struct
      name: tdTPM_DELEGATE_TABLE
      pos:
        line_end: 1272
        line_start: 1270
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: authValue
        type: TPM_SECRET
      item_type: struct
      name: tdTPM_DELEGATE_SENSITIVE
      pos:
        line_end: 1289
        line_start: 1284
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: pub
        type: TPM_DELEGATE_PUBLIC
      - name: integrityDigest
        type: TPM_DIGEST
      - name: additionalArea
        type: TPM_SIZED_BUFFER
      - name: sensitiveArea
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_DELEGATE_OWNER_BLOB
      pos:
        line_end: 1312
        line_start: 1301
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: pub
        type: TPM_DELEGATE_PUBLIC
      - name: integrityDigest
        type: TPM_DIGEST
      - name: pubKeyDigest
        type: TPM_DIGEST
      - name: additionalArea
        type: TPM_SIZED_BUFFER
      - name: sensitiveArea
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_DELEGATE_KEY_BLOB
      pos:
        line_end: 1335
        line_start: 1321
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: sec
        type: uint32_t
      - name: usec
        type: uint32_t
      item_type: struct
      name: tdTPM_UINT64
      pos:
        line_end: 1361
        line_start: 1358
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: currentTicks
        type: TPM_UINT64
      - name: tickRate
        type: uint16_t
      - name: tickNonce
        type: TPM_NONCE
      - name: initialTime
        type: TPM_UINT64
      item_type: struct
      name: tdTPM_CURRENT_TICKS
      pos:
        line_end: 1379
        line_start: 1363
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: transAttributes
        type: TPM_TRANSPORT_ATTRIBUTES
      - name: algId
        type: TPM_ALGORITHM_ID
      - name: encScheme
        type: TPM_ENC_SCHEME
      item_type: struct
      name: tdTPM_TRANSPORT_PUBLIC
      pos:
        line_end: 1399
        line_start: 1390
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: authData
        type: TPM_AUTHDATA
      - name: transPublic
        type: TPM_TRANSPORT_PUBLIC
      - name: transHandle
        type: TPM_TRANSHANDLE
      - name: transNonceEven
        type: TPM_NONCE
      - name: transDigest
        type: TPM_DIGEST
      - name: valid
        type: TPM_BOOL
      item_type: struct
      name: tdTPM_TRANSPORT_INTERNAL
      pos:
        line_end: 1429
        line_start: 1418
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: parameters
        type: TPM_DIGEST
      - name: pubKeyHash
        type: TPM_DIGEST
      item_type: struct
      name: tdTPM_TRANSPORT_LOG_IN
      pos:
        line_end: 1448
        line_start: 1439
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: currentTicks
        type: TPM_CURRENT_TICKS
      - name: parameters
        type: TPM_DIGEST
      - name: locality
        type: TPM_MODIFIER_INDICATOR
      item_type: struct
      name: tdTPM_TRANSPORT_LOG_OUT
      pos:
        line_end: 1471
        line_start: 1460
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: authData
        type: TPM_AUTHDATA
      item_type: struct
      name: tdTPM_TRANSPORT_AUTH
      pos:
        line_end: 1483
        line_start: 1478
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: DAA_digest_R0
        type: TPM_DIGEST
      - name: DAA_digest_R1
        type: TPM_DIGEST
      - name: DAA_digest_S0
        type: TPM_DIGEST
      - name: DAA_digest_S1
        type: TPM_DIGEST
      - name: DAA_digest_n
        type: TPM_DIGEST
      - name: DAA_digest_gamma
        type: TPM_DIGEST
      - name: DAA_generic_q[26]
        type: BYTE
      item_type: struct
      name: tdTPM_DAA_ISSUER
      pos:
        line_end: 1519
        line_start: 1498
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: DAA_digestIssuer
        type: TPM_DIGEST
      - name: DAA_digest_v0
        type: TPM_DIGEST
      - name: DAA_digest_v1
        type: TPM_DIGEST
      - name: DAA_rekey
        type: TPM_DIGEST
      - name: DAA_count
        type: uint32_t
      item_type: struct
      name: tdTPM_DAA_TPM
      pos:
        line_end: 1560
        line_start: 1543
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: DAA_digestContext
        type: TPM_DIGEST
      - name: DAA_digest
        type: TPM_DIGEST
      - name: DAA_contextSeed
        type: TPM_DAA_CONTEXT_SEED
      - name: DAA_scratch[256]
        type: BYTE
      - name: DAA_stage
        type: BYTE
      - name: DAA_scratch_null
        type: TPM_BOOL
      item_type: struct
      name: tdTPM_DAA_CONTEXT
      pos:
        line_end: 1595
        line_start: 1571
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: DAA_join_u0[128]
        type: BYTE
      - name: DAA_join_u1[138]
        type: BYTE
      - name: DAA_digest_n0
        type: TPM_DIGEST
      item_type: struct
      name: tdTPM_DAA_JOINDATA
      pos:
        line_end: 1610
        line_start: 1603
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: DAA_issuerSettings
        type: TPM_DAA_ISSUER
      - name: DAA_tpmSpecific
        type: TPM_DAA_TPM
      - name: DAA_session
        type: TPM_DAA_CONTEXT
      - name: DAA_joinSession
        type: TPM_DAA_JOINDATA
      - name: daaHandle
        type: TPM_HANDLE
      - name: valid
        type: TPM_BOOL
      item_type: struct
      name: tdTPM_DAA_SESSION_DATA
      pos:
        line_end: 1640
        line_start: 1626
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: resourceType
        type: TPM_RESOURCE_TYPE
      - name: label[16]
        type: BYTE
      - name: blobIntegrity
        type: TPM_DIGEST
      - name: additionalData
        type: TPM_SIZED_BUFFER
      - name: sensitiveData
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_DAA_BLOB
      pos:
        line_end: 1671
        line_start: 1647
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: internalData
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_DAA_SENSITIVE
      pos:
        line_end: 1687
        line_start: 1678
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: disable
        type: TPM_BOOL
      - name: ownership
        type: TPM_BOOL
      - name: deactivated
        type: TPM_BOOL
      - name: readPubek
        type: TPM_BOOL
      - name: disableOwnerClear
        type: TPM_BOOL
      - name: allowMaintenance
        type: TPM_BOOL
      - name: physicalPresenceLifetimeLock
        type: TPM_BOOL
      - name: physicalPresenceHWEnable
        type: TPM_BOOL
      - name: physicalPresenceCMDEnable
        type: TPM_BOOL
      - name: CEKPUsed
        type: TPM_BOOL
      - name: TPMpost
        type: TPM_BOOL
      - name: TPMpostLock
        type: TPM_BOOL
      - name: FIPS
        type: TPM_BOOL
      - name: tpmOperator
        type: TPM_BOOL
      - name: enableRevokeEK
        type: TPM_BOOL
      - name: nvLocked
        type: TPM_BOOL
      - name: readSRKPub
        type: TPM_BOOL
      - name: tpmEstablished
        type: TPM_BOOL
      - name: maintenanceDone
        type: TPM_BOOL
      item_type: struct
      name: tdTPM_PERMANENT_FLAGS
      pos:
        line_end: 1793
        line_start: 1704
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: deactivated
        type: TPM_BOOL
      - name: disableForceClear
        type: TPM_BOOL
      - name: physicalPresence
        type: TPM_BOOL
      - name: physicalPresenceLock
        type: TPM_BOOL
      - name: bGlobalLock
        type: TPM_BOOL
      item_type: struct
      name: tdTPM_STCLEAR_FLAGS
      pos:
        line_end: 1827
        line_start: 1801
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: postInitialise
        type: TPM_BOOL
      - name: localityModifier
        type: TPM_MODIFIER_INDICATOR
      - name: transportExclusive
        type: TPM_TRANSHANDLE
      - name: TOSPresent
        type: TPM_BOOL
      - name: stateSaved
        type: TPM_BOOL
      item_type: struct
      name: tdTPM_STANY_FLAGS
      pos:
        line_end: 1864
        line_start: 1835
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: revMajor
        type: BYTE
      - name: revMinor
        type: BYTE
      - name: tpmProof
        type: TPM_SECRET
      - name: EKReset
        type: TPM_NONCE
      - name: ownerAuth
        type: TPM_SECRET
      - name: operatorAuth
        type: TPM_SECRET
      - name: authDIR
        type: TPM_DIRVALUE
      - name: endorsementKey
        type: TPM_KEY
      - name: srk
        type: TPM_KEY
      - name: contextKey
        type: TPM_SYMMETRIC_KEY_TOKEN
      - name: delegateKey
        type: TPM_SYMMETRIC_KEY_TOKEN
      - name: auditMonotonicCounter
        type: TPM_COUNTER_VALUE
      - name: monotonicCounter[TPM_MIN_COUNTERS]
        type: TPM_COUNTER_VALUE
      - name: pcrAttrib[TPM_NUM_PCR]
        type: TPM_PCR_ATTRIBUTES
      - name: ordinalAuditStatus[TPM_ORDINALS_MAX/CHAR_BIT]
        type: BYTE
      - name: familyTable
        type: TPM_FAMILY_TABLE
      - name: delegateTable
        type: TPM_DELEGATE_TABLE
      - name: lastFamilyID
        type: uint32_t
      - name: noOwnerNVWrite
        type: uint32_t
      - name: restrictDelegate
        type: TPM_CMK_DELEGATE
      - name: tpmDAASeed
        type: TPM_DAA_TPM_SEED
      - name: daaProof
        type: TPM_NONCE
      - name: daaBlobKey
        type: TPM_SYMMETRIC_KEY_TOKEN
      - name: ownerInstalled
        type: TPM_BOOL
      - name: tscOrdinalAuditStatus
        type: BYTE
      - name: allowLoadMaintPub
        type: TPM_BOOL
      item_type: struct
      name: tdTPM_PERMANENT_DATA
      pos:
        line_end: 1988
        line_start: 1897
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: handle
        type: TPM_AUTHHANDLE
      - name: protocolID
        type: TPM_PROTOCOL_ID
      - name: entityTypeByte
        type: TPM_ENT_TYPE
      - name: adipEncScheme
        type: TPM_ADIP_ENC_SCHEME
      - name: nonceEven
        type: TPM_NONCE
      - name: sharedSecret
        type: TPM_SECRET
      - name: entityDigest
        type: TPM_DIGEST
      - name: pub
        type: TPM_DELEGATE_PUBLIC
      - name: valid
        type: TPM_BOOL
      item_type: struct
      name: tdTPM_AUTH_SESSION_DATA
      pos:
        line_end: 2016
        line_start: 2004
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: contextNonceKey
        type: TPM_NONCE
      - name: countID
        type: TPM_COUNT_ID
      - name: ownerReference
        type: uint32_t
      - name: disableResetLock
        type: TPM_BOOL
      - name: PCRS[TPM_NUM_PCR]
        type: TPM_PCRVALUE
      - name: authFailCount
        type: uint32_t
      - name: authFailTime
        type: uint32_t
      - name: authSessions[TPM_MIN_AUTH_SESSIONS]
        type: TPM_AUTH_SESSION_DATA
      - name: transSessions[TPM_MIN_TRANS_SESSIONS]
        type: TPM_TRANSPORT_INTERNAL
      - name: daaSessions[TPM_MIN_DAA_SESSIONS]
        type: TPM_DAA_SESSION_DATA
      - name: contextNonceSession
        type: TPM_NONCE
      - name: contextCount
        type: uint32_t
      - name: contextList[TPM_MIN_SESSION_LIST]
        type: uint32_t
      - name: auditDigest
        type: TPM_DIGEST
      - name: ordinalResponse
        type: TPM_STORE_BUFFER
      item_type: struct
      name: tdTPM_STCLEAR_DATA
      pos:
        line_end: 2101
        line_start: 2041
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: currentTicks
        type: TPM_CURRENT_TICKS
      item_type: struct
      name: tdTPM_STANY_DATA
      pos:
        line_end: 2120
        line_start: 2113
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: version
        type: TPM_STRUCT_VER
      - name: keyUsage
        type: TPM_KEY_USAGE
      - name: keyFlags
        type: TPM_KEY_FLAGS
      - name: authDataUsage
        type: TPM_AUTH_DATA_USAGE
      - name: algorithmParms
        type: TPM_KEY_PARMS
      - name: pubkeyDigest
        type: TPM_DIGEST
      - name: data
        type: TPM_NONCE
      - name: parentPCRStatus
        type: TPM_BOOL
      - name: pcrInfo
        type: TPM_SIZED_BUFFER
      - name: '*tpm_pcr_info'
        type: TPM_PCR_INFO
      item_type: struct
      name: tdTPM_CERTIFY_INFO
      pos:
        line_end: 2160
        line_start: 2133
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: fill
        type: BYTE
      - name: payloadType
        type: TPM_PAYLOAD_TYPE
      - name: keyUsage
        type: TPM_KEY_USAGE
      - name: keyFlags
        type: TPM_KEY_FLAGS
      - name: authDataUsage
        type: TPM_AUTH_DATA_USAGE
      - name: algorithmParms
        type: TPM_KEY_PARMS
      - name: pubkeyDigest
        type: TPM_DIGEST
      - name: data
        type: TPM_NONCE
      - name: parentPCRStatus
        type: TPM_BOOL
      - name: pcrInfo
        type: TPM_SIZED_BUFFER
      - name: migrationAuthority
        type: TPM_SIZED_BUFFER
      - name: '*tpm_pcr_info_short'
        type: TPM_PCR_INFO_SHORT
      item_type: struct
      name: tdTPM_CERTIFY_INFO2
      pos:
        line_end: 2212
        line_start: 2171
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: version
        type: TPM_STRUCT_VER
      - name: fixed[4]
        type: BYTE
      - name: digestValue
        type: TPM_COMPOSITE_HASH
      - name: externalData
        type: TPM_NONCE
      item_type: struct
      name: tdTPM_QUOTE_INFO
      pos:
        line_end: 2225
        line_start: 2219
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: fixed[4]
        type: BYTE
      - name: externalData
        type: TPM_NONCE
      - name: infoShort
        type: TPM_PCR_INFO_SHORT
      item_type: struct
      name: tdTPM_QUOTE_INFO2
      pos:
        line_end: 2239
        line_start: 2232
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: ekType
        type: TPM_EK_TYPE
      - name: blob
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_EK_BLOB
      pos:
        line_end: 2257
        line_start: 2247
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: sessionKey
        type: TPM_SYMMETRIC_KEY
      - name: idDigest
        type: TPM_DIGEST
      - name: pcrInfo
        type: TPM_PCR_INFO_SHORT
      item_type: struct
      name: tdTPM_EK_BLOB_ACTIVATE
      pos:
        line_end: 2274
        line_start: 2265
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: authValue
        type: TPM_SECRET
      item_type: struct
      name: tdTPM_EK_BLOB_AUTH
      pos:
        line_end: 2287
        line_start: 2282
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: ver
        type: TPM_STRUCT_VER
      - name: ordinal
        type: uint32_t
      - name: labelPrivCADigest
        type: TPM_CHOSENID_HASH
      - name: identityPubKey
        type: TPM_PUBKEY
      item_type: struct
      name: tdTPM_IDENTITY_CONTENTS
      pos:
        line_end: 2304
        line_start: 2295
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: sessionKey
        type: TPM_SYMMETRIC_KEY
      - name: idDigest
        type: TPM_DIGEST
      item_type: struct
      name: tdTPM_ASYM_CA_CONTENTS
      pos:
        line_end: 2316
        line_start: 2311
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: inputParms
        type: TPM_DIGEST
      - name: auditCount
        type: TPM_COUNTER_VALUE
      item_type: struct
      name: tdTPM_AUDIT_EVENT_IN
      pos:
        line_end: 2338
        line_start: 2328
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: outputParms
        type: TPM_DIGEST
      - name: auditCount
        type: TPM_COUNTER_VALUE
      item_type: struct
      name: tdTPM_AUDIT_EVENT_OUT
      pos:
        line_end: 2356
        line_start: 2346
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: resourceType
        type: TPM_RESOURCE_TYPE
      - name: handle
        type: TPM_HANDLE
      - name: label[TPM_CONTEXT_LABEL_SIZE]
        type: BYTE
      - name: contextCount
        type: uint32_t
      - name: integrityDigest
        type: TPM_DIGEST
      - name: additionalData
        type: TPM_SIZED_BUFFER
      - name: sensitiveData
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_CONTEXT_BLOB
      pos:
        line_end: 2411
        line_start: 2383
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: contextNonce
        type: TPM_NONCE
      - name: internalData
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_CONTEXT_SENSITIVE
      pos:
        line_end: 2432
        line_start: 2420
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: attributes
        type: uint32_t
      item_type: struct
      name: tdTPM_NV_ATTRIBUTES
      pos:
        line_end: 2444
        line_start: 2439
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: nvIndex
        type: TPM_NV_INDEX
      - name: pcrInfoRead
        type: TPM_PCR_INFO_SHORT
      - name: pcrInfoWrite
        type: TPM_PCR_INFO_SHORT
      - name: permission
        type: TPM_NV_ATTRIBUTES
      - name: bReadSTClear
        type: TPM_BOOL
      - name: bWriteSTClear
        type: TPM_BOOL
      - name: bWriteDefine
        type: TPM_BOOL
      - name: dataSize
        type: uint32_t
      item_type: struct
      name: tdTPM_NV_DATA_PUBLIC
      pos:
        line_end: 2474
        line_start: 2459
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: pubInfo
        type: TPM_NV_DATA_PUBLIC
      - name: authValue
        type: TPM_AUTHDATA
      - name: '*data'
        type: BYTE
      - name: digest
        type: TPM_DIGEST
      item_type: struct
      name: tdTPM_NV_DATA_SENSITIVE
      pos:
        line_end: 2492
        line_start: 2482
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: nvIndexCount
        type: uint32_t
      - name: '*tpm_nvindex_entry'
        type: TPM_NV_DATA_SENSITIVE
      item_type: struct
      name: tdTPM_NV_INDEX_ENTRIES
      pos:
        line_end: 2497
        line_start: 2494
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: nvIndex
        type: TPM_NV_INDEX
      - name: bReadSTClear
        type: TPM_BOOL
      - name: bWriteSTClear
        type: TPM_BOOL
      item_type: struct
      name: tdTPM_NV_DATA_ST
      pos:
        line_end: 2508
        line_start: 2504
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: version
        type: TPM_VERSION
      - name: specLevel
        type: uint16_t
      - name: errataRev
        type: BYTE
      - name: tpmVendorID[4]
        type: BYTE
      - name: vendorSpecificSize
        type: uint16_t
      - name: '* vendorSpecific'
        type: BYTE
      item_type: struct
      name: tdTPM_CAP_VERSION_INFO
      pos:
        line_end: 2540
        line_start: 2529
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: tag
        type: TPM_STRUCTURE_TAG
      - name: actions
        type: uint32_t
      item_type: struct
      name: tdTPM_DA_ACTION_TYPE
      pos:
        line_end: 2551
        line_start: 2548
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: state
        type: TPM_DA_STATE
      - name: currentCount
        type: uint16_t
      - name: thresholdCount
        type: uint16_t
      - name: actionAtThreshold
        type: TPM_DA_ACTION_TYPE
      - name: actionDependValue
        type: uint32_t
      - name: vendorData
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_DA_INFO
      pos:
        line_end: 2580
        line_start: 2563
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    - fields:
      - name: state
        type: TPM_DA_STATE
      - name: actionAtThreshold
        type: TPM_DA_ACTION_TYPE
      - name: vendorData
        type: TPM_SIZED_BUFFER
      item_type: struct
      name: tdTPM_DA_INFO_LIMITED
      pos:
        line_end: 2601
        line_start: 2592
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
    typedefs:
    - item_type: typedef
      name: TPM_DIGEST[TPM_DIGEST_SIZE]
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: BYTE
    - item_type: typedef
      name: TPM_CHOSENID_HASH
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: TPM_DIGEST
    - item_type: typedef
      name: TPM_COMPOSITE_HASH
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: TPM_DIGEST
    - item_type: typedef
      name: TPM_DIRVALUE
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: TPM_DIGEST
    - item_type: typedef
      name: TPM_HMAC
      pos:
        line_end: 213
        line_start: 213
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: TPM_DIGEST
    - item_type: typedef
      name: TPM_PCRVALUE
      pos:
        line_end: 215
        line_start: 215
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: TPM_DIGEST
    - item_type: typedef
      name: TPM_AUDITDIGEST
      pos:
        line_end: 217
        line_start: 217
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: TPM_DIGEST
    - item_type: typedef
      name: TPM_NONCE[TPM_NONCE_SIZE]
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: BYTE
    - item_type: typedef
      name: TPM_DAA_TPM_SEED
      pos:
        line_end: 239
        line_start: 239
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: TPM_NONCE
    - item_type: typedef
      name: TPM_DAA_CONTEXT_SEED
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: TPM_NONCE
    - item_type: typedef
      name: TPM_AUTHDATA[TPM_AUTHDATA_SIZE]
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: BYTE
    - item_type: typedef
      name: TPM_SECRET[TPM_SECRET_SIZE]
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: BYTE
    - item_type: typedef
      name: TPM_SECRET
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: TPM_AUTHDATA
    - item_type: typedef
      name: TPM_ENCAUTH
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: TPM_AUTHDATA
    - item_type: typedef
      name: TPM_LOCALITY_SELECTION
      pos:
        line_end: 371
        line_start: 371
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: BYTE
    - item_type: typedef
      name: TPM_FAMILY_LABEL
      pos:
        line_end: 1137
        line_start: 1137
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: BYTE
    - item_type: typedef
      name: TPM_DELEGATE_LABEL
      pos:
        line_end: 1203
        line_start: 1203
        source_file: /src/libtpms/src/tpm12/tpm_structures.h
      type: BYTE
    union: []
- function_names:
  - TPM_MainInit
  - TPM_CheckTypes
  - TPM_StanyFlags_Init
  - TPM_StanyFlags_Load
  - TPM_StanyFlags_Store
  - TPM_StclearFlags_Init
  - TPM_StclearFlags_Load
  - TPM_StclearFlags_Store
  - TPM_StclearFlags_StoreBitmap
  - TPM_StanyData_Init
  - TPM_StanyData_Load
  - TPM_StanyData_Store
  - TPM_StanyData_Delete
  - TPM_StclearData_Init
  - TPM_StclearData_Load
  - TPM_StclearData_Store
  - TPM_StclearData_Delete
  - TPM_StclearData_SessionInit
  - TPM_StclearData_SessionDelete
  - TPM_StclearData_AuthSessionDelete
  - TPM_InitCmd
  - TPM_Handle_GenerateHandle
  - TPM_Process_Init
  source_file: /src/libtpms/src/tpm12/tpm_init.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_Uint64_Init
  - TPM_Uint64_Load
  - TPM_Uint64_Store
  - TPM_Uint64_Copy
  - TPM_Uint64_ConvertFrom
  - TPM_Uint64_ConvertTo
  - TPM_Uint64_Test
  - TPM_CurrentTicks_Init
  - TPM_CurrentTicks_Start
  - TPM_CurrentTicks_LoadAll
  - TPM_CurrentTicks_Store
  - TPM_CurrentTicks_StoreAll
  - TPM_CurrentTicks_Update
  - TPM_CurrentTicks_Copy
  - TPM_Process_GetTicks
  - TPM_Process_TickStampBlob
  source_file: /src/libtpms/src/tpm12/tpm_ticks.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_owner.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_BoundData_Init
  - TPM_BoundData_Load
  - TPM_BoundData_Store
  - TPM_BoundData_Delete
  - TPM_SealedData_Init
  - TPM_SealedData_Load
  - TPM_SealedData_Store
  - TPM_SealedData_Delete
  - TPM_SealedData_GenerateEncData
  - TPM_SealedData_DecryptEncData
  - TPM_StoredData_Init
  - TPM_StoredData_Load
  - TPM_StoredData_StoreClearData
  - TPM_StoredData_Store
  - TPM_StoredData_Delete
  - TPM_StoredData_CheckTag
  - TPM_StoredData_GenerateDigest
  - TPM_SealCryptCommon
  - TPM_Process_Seal
  - TPM_Process_Sealx
  - TPM_Process_Unseal
  - TPM_Process_UnBind
  - TPM_Process_CreateWrapKey
  - TPM_Process_LoadKey
  - TPM_Process_LoadKey2
  - TPM_LoadKeyCommon
  - TPM_Process_GetPubKey
  source_file: /src/libtpms/src/tpm12/tpm_storage.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_Crypto_Init
  - TPM_Crypto_TestSpecific
  - TPM_Random
  - TPM_RandomNonZero
  - TPM_StirRandomCmd
  - TPM_RSAPrivateKeyInit
  - TPM_RSAGenerateKeyPair
  - TPM_RSAGeneratePublicToken
  - TPM_RSAGeneratePrivateToken
  - TPM_RSAPrivateDecrypt
  - TPM_RSAPublicEncrypt
  - TPM_RSAPublicEncryptRaw
  - TPM_RSASign
  - TPM_RSASignSHA1
  - TPM_RSASignDER
  - TPM_RSAVerifySHA1
  - TPM_RSAGetPrivateKey
  - TPM_PKCS1_PaddingType1Add
  - TPM_PKCS1_PaddingType1Check
  - TPM_PKCS1_PaddingType2Add
  - TPM_PKCS1_PaddingType2Check
  - TPM_BN_num_bytes
  - TPM_BN_is_one
  - TPM_BN_mod
  - TPM_BN_mask_bits
  - TPM_BN_rshift
  - TPM_BN_lshift
  - TPM_BN_add
  - TPM_BN_mul
  - TPM_BN_mod_exp
  - TPM_BN_mod_add
  - TPM_BN_mod_mul
  - TPM_BN_new
  - TPM_BN_free
  - TPM_bn2bin
  - TPM_memcpyPad
  - TPM_bin2bn
  - TPM_SHA1InitCmd
  - TPM_SHA1UpdateCmd
  - TPM_SHA1FinalCmd
  - TPM_SHA1Delete
  - TPM_Sha1Context_Load
  - TPM_Sha1Context_Store
  - TPM_SymmetricKeyData_New
  - TPM_SymmetricKeyData_Free
  - TPM_SymmetricKeyData_Init
  - TPM_SymmetricKeyData_Load
  - TPM_SymmetricKeyData_Store
  - TPM_SymmetricKeyData_GenerateKey
  - TPM_SymmetricKeyData_Encrypt
  - TPM_SymmetricKeyData_Decrypt
  - TPM_SymmetricKeyData_CtrCrypt
  - TPM_SymmetricKeyData_OfbCrypt
  source_file: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_AES_BITS
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
      type_or_value: '128'
    - item_type: preproc_def
      name: TPM_AES_BLOCK_SIZE
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
      type_or_value: '16'
    structs:
    - fields:
      - name: tag
        type: TPM_TAG
      - name: valid
        type: TPM_BOOL
      - name: fill
        type: TPM_BOOL
      - name: userKey[TPM_AES_BLOCK_SIZE]
        type: unsigned char
      item_type: struct
      name: tdTPM_SYMMETRIC_KEY_DATA
      pos:
        line_end: 164
        line_start: 159
        source_file: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    - fields:
      - name: u
        type: "union {\n\tPRUint32 w[16];             /* input buffer */\n\tPRUint8
          \ b[64];\n    }"
      - name: size
        type: PRUint64
      - name: H[22]
        type: SHA_HW_t
      item_type: struct
      name: SHA1SaveContextStrtd
      pos:
        line_end: 1879
        line_start: 1871
        source_file: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
    typedefs:
    - item_type: typedef
      name: SHA_HW_t
      pos:
        line_end: 1853
        line_start: 1853
        source_file: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
      type: PRUint64
    - item_type: typedef
      name: SHA_HW_t
      pos:
        line_end: 1861
        line_start: 1861
        source_file: /src/libtpms/src/tpm12/tpm_crypto_freebl.c
      type: PRUint32
    union: []
- function_names:
  - TPM_Nonce_Init
  - TPM_Nonce_Load
  - TPM_Nonce_Store
  - TPM_Nonce_Copy
  - TPM_Nonce_Compare
  - TPM_Nonce_Generate
  - TPM_Nonce_IsZero
  source_file: /src/libtpms/src/tpm12/tpm_nonce.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm12/tpm_maint.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPMA_ALGORITHM_TO_UINT32
  - UINT32_TO_TPMA_ALGORITHM
  - TPMA_ALGORITHM_TO_BYTE_ARRAY
  - BYTE_ARRAY_TO_TPMA_ALGORITHM
  - TPMA_ALGORITHM_INITIALIZER
  - TPMA_ALGORITHM_INITIALIZER
  - TPMA_OBJECT_TO_UINT32
  - UINT32_TO_TPMA_OBJECT
  - TPMA_OBJECT_TO_BYTE_ARRAY
  - BYTE_ARRAY_TO_TPMA_OBJECT
  - TPMA_SESSION_TO_UINT8
  - UINT8_TO_TPMA_SESSION
  - TPMA_SESSION_TO_BYTE_ARRAY
  - BYTE_ARRAY_TO_TPMA_SESSION
  - TPMA_SESSION_INITIALIZER
  - TPMA_SESSION_INITIALIZER
  - TPMA_LOCALITY_TO_UINT8
  - UINT8_TO_TPMA_LOCALITY
  - TPMA_LOCALITY_TO_BYTE_ARRAY
  - BYTE_ARRAY_TO_TPMA_LOCALITY
  - TPMA_LOCALITY_INITIALIZER
  - TPMA_LOCALITY_INITIALIZER
  - TPMA_PERMANENT_TO_UINT32
  - UINT32_TO_TPMA_PERMANENT
  - TPMA_PERMANENT_TO_BYTE_ARRAY
  - BYTE_ARRAY_TO_TPMA_PERMANENT
  - TPMA_PERMANENT_INITIALIZER
  - TPMA_PERMANENT_INITIALIZER
  - TPMA_STARTUP_CLEAR_TO_UINT32
  - UINT32_TO_TPMA_STARTUP_CLEAR
  - TPMA_STARTUP_CLEAR_TO_BYTE_ARRAY
  - BYTE_ARRAY_TO_TPMA_STARTUP_CLEAR
  - TPMA_STARTUP_CLEAR_INITIALIZER
  - TPMA_STARTUP_CLEAR_INITIALIZER
  - TPMA_MEMORY_TO_UINT32
  - UINT32_TO_TPMA_MEMORY
  - TPMA_MEMORY_TO_BYTE_ARRAY
  - BYTE_ARRAY_TO_TPMA_MEMORY
  - TPMA_MEMORY_INITIALIZER
  - TPMA_MEMORY_INITIALIZER
  - TPMA_CC_TO_UINT32
  - UINT32_TO_TPMA_CC
  - TPMA_CC_TO_BYTE_ARRAY
  - BYTE_ARRAY_TO_TPMA_CC
  - TPMA_CC_INITIALIZER
  - TPMA_CC_INITIALIZER
  - TPMA_MODES_TO_UINT32
  - UINT32_TO_TPMA_MODES
  - TPMA_MODES_TO_BYTE_ARRAY
  - BYTE_ARRAY_TO_TPMA_MODES
  - TPMA_MODES_INITIALIZER
  - TPMA_MODES_INITIALIZER
  - TPMA_X509_KEY_USAGE_TO_UINT32
  - UINT32_TO_TPMA_X509_KEY_USAGE
  - TPMA_X509_KEY_USAGE_TO_BYTE_ARRAY
  - BYTE_ARRAY_TO_TPMA_X509_KEY_USAGE
  - TPMA_X509_KEY_USAGE_INITIALIZER
  - TPMA_X509_KEY_USAGE_INITIALIZER
  - TPMA_ACT_TO_UINT32
  - UINT32_TO_TPMA_ACT
  - TPMA_ACT_TO_BYTE_ARRAY
  - BYTE_ARRAY_TO_TPMA_ACT
  - TPMA_ACT_INITIALIZER
  - TPMA_ACT_INITIALIZER
  - TPM_NV_INDEX_TO_UINT32
  - UINT32_TO_TPM_NV_INDEX
  - TPM_NV_INDEX_TO_BYTE_ARRAY
  - BYTE_ARRAY_TO_TPM_NV_INDEX
  - TPM_NV_INDEX_INITIALIZER
  - TPM_NV_INDEX_INITIALIZER
  - TPMA_NV_TO_UINT32
  - UINT32_TO_TPMA_NV
  - TPMA_NV_TO_BYTE_ARRAY
  - BYTE_ARRAY_TO_TPMA_NV
  - TPMA_NV_INITIALIZER
  - TPMA_NV_INITIALIZER
  - TPMA_NV_EXP_TO_UINT64
  - UINT64_TO_TPMA_NV_EXP
  - TPMA_NV_EXP_TO_BYTE_ARRAY
  - BYTE_ARRAY_TO_TPMA_NV_EXP
  - TPMA_NV_EXP_INITIALIZER
  - TPMA_NV_EXP_INITIALIZER
  source_file: /src/libtpms/src/tpm2/TpmTypes.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TYPE_OF_TPM_ALGORITHM_ID
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TYPE_OF_TPM_MODIFIER_INDICATOR
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TYPE_OF_TPM_AUTHORIZATION_SIZE
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TYPE_OF_TPM_PARAMETER_SIZE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TYPE_OF_TPM_KEY_SIZE
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT16
    - item_type: preproc_def
      name: TYPE_OF_TPM_KEY_BITS
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT16
    - item_type: preproc_def
      name: TYPE_OF_TPM_CONSTANTS32
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPM_GENERATED_VALUE
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CONSTANTS32)(0xFF544347)
    - item_type: preproc_def
      name: TPM_MAX_DERIVATION_BITS
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CONSTANTS32)(8192)
    - item_type: preproc_def
      name: TYPE_OF_TPM_ALG_ID
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT16
    - item_type: preproc_def
      name: ALG_ERROR_VALUE
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: TPM_ALG_ERROR
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_ERROR_VALUE)
    - item_type: preproc_def
      name: ALG_RSA_VALUE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: TPM_ALG_RSA
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_RSA_VALUE)
    - item_type: preproc_def
      name: ALG_TDES_VALUE
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0003'
    - item_type: preproc_def
      name: TPM_ALG_TDES
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_TDES_VALUE)
    - item_type: preproc_def
      name: ALG_SHA1_VALUE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: TPM_ALG_SHA1
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SHA1_VALUE)
    - item_type: preproc_def
      name: ALG_HMAC_VALUE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0005'
    - item_type: preproc_def
      name: TPM_ALG_HMAC
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_HMAC_VALUE)
    - item_type: preproc_def
      name: ALG_AES_VALUE
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0006'
    - item_type: preproc_def
      name: TPM_ALG_AES
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_AES_VALUE)
    - item_type: preproc_def
      name: ALG_MGF1_VALUE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0007'
    - item_type: preproc_def
      name: TPM_ALG_MGF1
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_MGF1_VALUE)
    - item_type: preproc_def
      name: ALG_KEYEDHASH_VALUE
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: TPM_ALG_KEYEDHASH
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_KEYEDHASH_VALUE)
    - item_type: preproc_def
      name: ALG_XOR_VALUE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x000A'
    - item_type: preproc_def
      name: TPM_ALG_XOR
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_XOR_VALUE)
    - item_type: preproc_def
      name: ALG_SHA256_VALUE
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x000B'
    - item_type: preproc_def
      name: TPM_ALG_SHA256
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SHA256_VALUE)
    - item_type: preproc_def
      name: ALG_SHA384_VALUE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x000C'
    - item_type: preproc_def
      name: TPM_ALG_SHA384
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SHA384_VALUE)
    - item_type: preproc_def
      name: ALG_SHA512_VALUE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x000D'
    - item_type: preproc_def
      name: TPM_ALG_SHA512
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SHA512_VALUE)
    - item_type: preproc_def
      name: ALG_SHA256_192_VALUE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x000E'
    - item_type: preproc_def
      name: TPM_ALG_SHA256_192
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SHA256_192_VALUE)
    - item_type: preproc_def
      name: ALG_NULL_VALUE
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: TPM_ALG_NULL
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_NULL_VALUE)
    - item_type: preproc_def
      name: ALG_SM3_256_VALUE
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0012'
    - item_type: preproc_def
      name: TPM_ALG_SM3_256
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SM3_256_VALUE)
    - item_type: preproc_def
      name: ALG_SM4_VALUE
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0013'
    - item_type: preproc_def
      name: TPM_ALG_SM4
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SM4_VALUE)
    - item_type: preproc_def
      name: ALG_RSASSA_VALUE
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0014'
    - item_type: preproc_def
      name: TPM_ALG_RSASSA
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_RSASSA_VALUE)
    - item_type: preproc_def
      name: ALG_RSAES_VALUE
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0015'
    - item_type: preproc_def
      name: TPM_ALG_RSAES
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_RSAES_VALUE)
    - item_type: preproc_def
      name: ALG_RSAPSS_VALUE
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0016'
    - item_type: preproc_def
      name: TPM_ALG_RSAPSS
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_RSAPSS_VALUE)
    - item_type: preproc_def
      name: ALG_OAEP_VALUE
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0017'
    - item_type: preproc_def
      name: TPM_ALG_OAEP
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_OAEP_VALUE)
    - item_type: preproc_def
      name: ALG_ECDSA_VALUE
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0018'
    - item_type: preproc_def
      name: TPM_ALG_ECDSA
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_ECDSA_VALUE)
    - item_type: preproc_def
      name: ALG_ECDH_VALUE
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0019'
    - item_type: preproc_def
      name: TPM_ALG_ECDH
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_ECDH_VALUE)
    - item_type: preproc_def
      name: ALG_ECDAA_VALUE
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x001A'
    - item_type: preproc_def
      name: TPM_ALG_ECDAA
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_ECDAA_VALUE)
    - item_type: preproc_def
      name: ALG_SM2_VALUE
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x001B'
    - item_type: preproc_def
      name: TPM_ALG_SM2
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SM2_VALUE)
    - item_type: preproc_def
      name: ALG_ECSCHNORR_VALUE
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x001C'
    - item_type: preproc_def
      name: TPM_ALG_ECSCHNORR
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_ECSCHNORR_VALUE)
    - item_type: preproc_def
      name: ALG_ECMQV_VALUE
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x001D'
    - item_type: preproc_def
      name: TPM_ALG_ECMQV
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_ECMQV_VALUE)
    - item_type: preproc_def
      name: ALG_KDF1_SP800_56A_VALUE
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: TPM_ALG_KDF1_SP800_56A
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_KDF1_SP800_56A_VALUE)
    - item_type: preproc_def
      name: ALG_KDF2_VALUE
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0021'
    - item_type: preproc_def
      name: TPM_ALG_KDF2
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_KDF2_VALUE)
    - item_type: preproc_def
      name: ALG_KDF1_SP800_108_VALUE
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0022'
    - item_type: preproc_def
      name: TPM_ALG_KDF1_SP800_108
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_KDF1_SP800_108_VALUE)
    - item_type: preproc_def
      name: ALG_ECC_VALUE
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0023'
    - item_type: preproc_def
      name: TPM_ALG_ECC
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_ECC_VALUE)
    - item_type: preproc_def
      name: ALG_SYMCIPHER_VALUE
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0025'
    - item_type: preproc_def
      name: TPM_ALG_SYMCIPHER
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SYMCIPHER_VALUE)
    - item_type: preproc_def
      name: ALG_CAMELLIA_VALUE
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0026'
    - item_type: preproc_def
      name: TPM_ALG_CAMELLIA
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_CAMELLIA_VALUE)
    - item_type: preproc_def
      name: ALG_SHA3_256_VALUE
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0027'
    - item_type: preproc_def
      name: TPM_ALG_SHA3_256
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SHA3_256_VALUE)
    - item_type: preproc_def
      name: ALG_SHA3_384_VALUE
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0028'
    - item_type: preproc_def
      name: TPM_ALG_SHA3_384
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SHA3_384_VALUE)
    - item_type: preproc_def
      name: ALG_SHA3_512_VALUE
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0029'
    - item_type: preproc_def
      name: TPM_ALG_SHA3_512
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SHA3_512_VALUE)
    - item_type: preproc_def
      name: ALG_SHAKE128_VALUE
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x002A'
    - item_type: preproc_def
      name: TPM_ALG_SHAKE128
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SHAKE128_VALUE)
    - item_type: preproc_def
      name: ALG_SHAKE256_VALUE
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x002B'
    - item_type: preproc_def
      name: TPM_ALG_SHAKE256
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SHAKE256_VALUE)
    - item_type: preproc_def
      name: ALG_SHAKE256_192_VALUE
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x002C'
    - item_type: preproc_def
      name: TPM_ALG_SHAKE256_192
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SHAKE256_192_VALUE)
    - item_type: preproc_def
      name: ALG_SHAKE256_256_VALUE
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x002D'
    - item_type: preproc_def
      name: TPM_ALG_SHAKE256_256
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SHAKE256_256_VALUE)
    - item_type: preproc_def
      name: ALG_SHAKE256_512_VALUE
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x002E'
    - item_type: preproc_def
      name: TPM_ALG_SHAKE256_512
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_SHAKE256_512_VALUE)
    - item_type: preproc_def
      name: ALG_CMAC_VALUE
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x003F'
    - item_type: preproc_def
      name: TPM_ALG_CMAC
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_CMAC_VALUE)
    - item_type: preproc_def
      name: ALG_CTR_VALUE
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: TPM_ALG_CTR
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_CTR_VALUE)
    - item_type: preproc_def
      name: ALG_OFB_VALUE
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0041'
    - item_type: preproc_def
      name: TPM_ALG_OFB
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_OFB_VALUE)
    - item_type: preproc_def
      name: ALG_CBC_VALUE
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0042'
    - item_type: preproc_def
      name: TPM_ALG_CBC
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_CBC_VALUE)
    - item_type: preproc_def
      name: ALG_CFB_VALUE
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0043'
    - item_type: preproc_def
      name: TPM_ALG_CFB
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_CFB_VALUE)
    - item_type: preproc_def
      name: ALG_ECB_VALUE
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0044'
    - item_type: preproc_def
      name: TPM_ALG_ECB
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_ECB_VALUE)
    - item_type: preproc_def
      name: ALG_CCM_VALUE
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0050'
    - item_type: preproc_def
      name: TPM_ALG_CCM
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_CCM_VALUE)
    - item_type: preproc_def
      name: ALG_GCM_VALUE
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0051'
    - item_type: preproc_def
      name: TPM_ALG_GCM
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_GCM_VALUE)
    - item_type: preproc_def
      name: ALG_KW_VALUE
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0052'
    - item_type: preproc_def
      name: TPM_ALG_KW
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_KW_VALUE)
    - item_type: preproc_def
      name: ALG_KWP_VALUE
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0053'
    - item_type: preproc_def
      name: TPM_ALG_KWP
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_KWP_VALUE)
    - item_type: preproc_def
      name: ALG_EAX_VALUE
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0054'
    - item_type: preproc_def
      name: TPM_ALG_EAX
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_EAX_VALUE)
    - item_type: preproc_def
      name: ALG_EDDSA_VALUE
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0060'
    - item_type: preproc_def
      name: TPM_ALG_EDDSA
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_EDDSA_VALUE)
    - item_type: preproc_def
      name: ALG_EDDSA_PH_VALUE
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0061'
    - item_type: preproc_def
      name: TPM_ALG_EDDSA_PH
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_EDDSA_PH_VALUE)
    - item_type: preproc_def
      name: ALG_LMS_VALUE
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0070'
    - item_type: preproc_def
      name: TPM_ALG_LMS
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_LMS_VALUE)
    - item_type: preproc_def
      name: ALG_XMSS_VALUE
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0071'
    - item_type: preproc_def
      name: TPM_ALG_XMSS
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_XMSS_VALUE)
    - item_type: preproc_def
      name: ALG_FIRST_VALUE
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: TPM_ALG_FIRST
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_FIRST_VALUE)
    - item_type: preproc_def
      name: ALG_LAST_VALUE
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0x0071'
    - item_type: preproc_def
      name: TPM_ALG_LAST
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ALG_ID)(ALG_LAST_VALUE)
    - item_type: preproc_def
      name: TYPE_OF_TPM_ECC_CURVE
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT16
    - item_type: preproc_def
      name: TPM_ECC_NONE
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ECC_CURVE)(0x0000)
    - item_type: preproc_def
      name: TPM_ECC_NIST_P192
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ECC_CURVE)(0x0001)
    - item_type: preproc_def
      name: TPM_ECC_NIST_P224
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ECC_CURVE)(0x0002)
    - item_type: preproc_def
      name: TPM_ECC_NIST_P256
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ECC_CURVE)(0x0003)
    - item_type: preproc_def
      name: TPM_ECC_NIST_P384
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ECC_CURVE)(0x0004)
    - item_type: preproc_def
      name: TPM_ECC_NIST_P521
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ECC_CURVE)(0x0005)
    - item_type: preproc_def
      name: TPM_ECC_BN_P256
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ECC_CURVE)(0x0010)
    - item_type: preproc_def
      name: TPM_ECC_BN_P638
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ECC_CURVE)(0x0011)
    - item_type: preproc_def
      name: TPM_ECC_SM2_P256
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ECC_CURVE)(0x0020)
    - item_type: preproc_def
      name: TPM_ECC_BP_P256_R1
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ECC_CURVE)(0x0030)
    - item_type: preproc_def
      name: TPM_ECC_BP_P384_R1
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ECC_CURVE)(0x0031)
    - item_type: preproc_def
      name: TPM_ECC_BP_P512_R1
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ECC_CURVE)(0x0032)
    - item_type: preproc_def
      name: TPM_ECC_CURVE_25519
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ECC_CURVE)(0x0040)
    - item_type: preproc_def
      name: TPM_ECC_CURVE_448
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ECC_CURVE)(0x0041)
    - item_type: preproc_def
      name: TYPE_OF_TPM_CC
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPM_CC_FIRST
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000011F)
    - item_type: preproc_def
      name: TPM_CC_NV_UndefineSpaceSpecial
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000011F)
    - item_type: preproc_def
      name: TPM_CC_EvictControl
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000120)
    - item_type: preproc_def
      name: TPM_CC_HierarchyControl
      pos:
        line_end: 240
        line_start: 239
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000121)
    - item_type: preproc_def
      name: TPM_CC_NV_UndefineSpace
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000122)
    - item_type: preproc_def
      name: TPM_CC_ChangeEPS
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000124)
    - item_type: preproc_def
      name: TPM_CC_ChangePPS
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000125)
    - item_type: preproc_def
      name: TPM_CC_Clear
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000126)
    - item_type: preproc_def
      name: TPM_CC_ClearControl
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000127)
    - item_type: preproc_def
      name: TPM_CC_ClockSet
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000128)
    - item_type: preproc_def
      name: TPM_CC_HierarchyChangeAuth
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000129)
    - item_type: preproc_def
      name: TPM_CC_NV_DefineSpace
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000012A)
    - item_type: preproc_def
      name: TPM_CC_PCR_Allocate
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000012B)
    - item_type: preproc_def
      name: TPM_CC_PCR_SetAuthPolicy
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000012C)
    - item_type: preproc_def
      name: TPM_CC_PP_Commands
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000012D)
    - item_type: preproc_def
      name: TPM_CC_SetPrimaryPolicy
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000012E)
    - item_type: preproc_def
      name: TPM_CC_FieldUpgradeStart
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000012F)
    - item_type: preproc_def
      name: TPM_CC_ClockRateAdjust
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000130)
    - item_type: preproc_def
      name: TPM_CC_CreatePrimary
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000131)
    - item_type: preproc_def
      name: TPM_CC_NV_GlobalWriteLock
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000132)
    - item_type: preproc_def
      name: TPM_CC_GetCommandAuditDigest
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000133)
    - item_type: preproc_def
      name: TPM_CC_NV_Increment
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000134)
    - item_type: preproc_def
      name: TPM_CC_NV_SetBits
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000135)
    - item_type: preproc_def
      name: TPM_CC_NV_Extend
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000136)
    - item_type: preproc_def
      name: TPM_CC_NV_Write
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000137)
    - item_type: preproc_def
      name: TPM_CC_NV_WriteLock
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000138)
    - item_type: preproc_def
      name: TPM_CC_DictionaryAttackLockReset
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000139)
    - item_type: preproc_def
      name: TPM_CC_DictionaryAttackParameters
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000013A)
    - item_type: preproc_def
      name: TPM_CC_NV_ChangeAuth
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000013B)
    - item_type: preproc_def
      name: TPM_CC_PCR_Event
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000013C)
    - item_type: preproc_def
      name: TPM_CC_PCR_Reset
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000013D)
    - item_type: preproc_def
      name: TPM_CC_SequenceComplete
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000013E)
    - item_type: preproc_def
      name: TPM_CC_SetAlgorithmSet
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000013F)
    - item_type: preproc_def
      name: TPM_CC_SetCommandCodeAuditStatus
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000140)
    - item_type: preproc_def
      name: TPM_CC_FieldUpgradeData
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000141)
    - item_type: preproc_def
      name: TPM_CC_IncrementalSelfTest
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000142)
    - item_type: preproc_def
      name: TPM_CC_SelfTest
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000143)
    - item_type: preproc_def
      name: TPM_CC_Startup
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000144)
    - item_type: preproc_def
      name: TPM_CC_Shutdown
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000145)
    - item_type: preproc_def
      name: TPM_CC_StirRandom
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000146)
    - item_type: preproc_def
      name: TPM_CC_ActivateCredential
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000147)
    - item_type: preproc_def
      name: TPM_CC_Certify
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000148)
    - item_type: preproc_def
      name: TPM_CC_PolicyNV
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000149)
    - item_type: preproc_def
      name: TPM_CC_CertifyCreation
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000014A)
    - item_type: preproc_def
      name: TPM_CC_Duplicate
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000014B)
    - item_type: preproc_def
      name: TPM_CC_GetTime
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000014C)
    - item_type: preproc_def
      name: TPM_CC_GetSessionAuditDigest
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000014D)
    - item_type: preproc_def
      name: TPM_CC_NV_Read
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000014E)
    - item_type: preproc_def
      name: TPM_CC_NV_ReadLock
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000014F)
    - item_type: preproc_def
      name: TPM_CC_ObjectChangeAuth
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000150)
    - item_type: preproc_def
      name: TPM_CC_PolicySecret
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000151)
    - item_type: preproc_def
      name: TPM_CC_Rewrap
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000152)
    - item_type: preproc_def
      name: TPM_CC_Create
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000153)
    - item_type: preproc_def
      name: TPM_CC_ECDH_ZGen
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000154)
    - item_type: preproc_def
      name: TPM_CC_HMAC
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000155)
    - item_type: preproc_def
      name: TPM_CC_MAC
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000155)
    - item_type: preproc_def
      name: TPM_CC_Import
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000156)
    - item_type: preproc_def
      name: TPM_CC_Load
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000157)
    - item_type: preproc_def
      name: TPM_CC_Quote
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000158)
    - item_type: preproc_def
      name: TPM_CC_RSA_Decrypt
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000159)
    - item_type: preproc_def
      name: TPM_CC_HMAC_Start
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000015B)
    - item_type: preproc_def
      name: TPM_CC_MAC_Start
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000015B)
    - item_type: preproc_def
      name: TPM_CC_SequenceUpdate
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000015C)
    - item_type: preproc_def
      name: TPM_CC_Sign
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000015D)
    - item_type: preproc_def
      name: TPM_CC_Unseal
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000015E)
    - item_type: preproc_def
      name: TPM_CC_PolicySigned
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000160)
    - item_type: preproc_def
      name: TPM_CC_ContextLoad
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000161)
    - item_type: preproc_def
      name: TPM_CC_ContextSave
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000162)
    - item_type: preproc_def
      name: TPM_CC_ECDH_KeyGen
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000163)
    - item_type: preproc_def
      name: TPM_CC_EncryptDecrypt
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000164)
    - item_type: preproc_def
      name: TPM_CC_FlushContext
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000165)
    - item_type: preproc_def
      name: TPM_CC_LoadExternal
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000167)
    - item_type: preproc_def
      name: TPM_CC_MakeCredential
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000168)
    - item_type: preproc_def
      name: TPM_CC_NV_ReadPublic
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000169)
    - item_type: preproc_def
      name: TPM_CC_PolicyAuthorize
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000016A)
    - item_type: preproc_def
      name: TPM_CC_PolicyAuthValue
      pos:
        line_end: 312
        line_start: 311
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000016B)
    - item_type: preproc_def
      name: TPM_CC_PolicyCommandCode
      pos:
        line_end: 313
        line_start: 312
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000016C)
    - item_type: preproc_def
      name: TPM_CC_PolicyCounterTimer
      pos:
        line_end: 314
        line_start: 313
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000016D)
    - item_type: preproc_def
      name: TPM_CC_PolicyCpHash
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000016E)
    - item_type: preproc_def
      name: TPM_CC_PolicyLocality
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000016F)
    - item_type: preproc_def
      name: TPM_CC_PolicyNameHash
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000170)
    - item_type: preproc_def
      name: TPM_CC_PolicyOR
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000171)
    - item_type: preproc_def
      name: TPM_CC_PolicyTicket
      pos:
        line_end: 319
        line_start: 318
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000172)
    - item_type: preproc_def
      name: TPM_CC_ReadPublic
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000173)
    - item_type: preproc_def
      name: TPM_CC_RSA_Encrypt
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000174)
    - item_type: preproc_def
      name: TPM_CC_StartAuthSession
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000176)
    - item_type: preproc_def
      name: TPM_CC_VerifySignature
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000177)
    - item_type: preproc_def
      name: TPM_CC_ECC_Parameters
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000178)
    - item_type: preproc_def
      name: TPM_CC_FirmwareRead
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000179)
    - item_type: preproc_def
      name: TPM_CC_GetCapability
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000017A)
    - item_type: preproc_def
      name: TPM_CC_GetRandom
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000017B)
    - item_type: preproc_def
      name: TPM_CC_GetTestResult
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000017C)
    - item_type: preproc_def
      name: TPM_CC_Hash
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000017D)
    - item_type: preproc_def
      name: TPM_CC_PCR_Read
      pos:
        line_end: 330
        line_start: 329
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000017E)
    - item_type: preproc_def
      name: TPM_CC_PolicyPCR
      pos:
        line_end: 331
        line_start: 330
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000017F)
    - item_type: preproc_def
      name: TPM_CC_PolicyRestart
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000180)
    - item_type: preproc_def
      name: TPM_CC_ReadClock
      pos:
        line_end: 333
        line_start: 332
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000181)
    - item_type: preproc_def
      name: TPM_CC_PCR_Extend
      pos:
        line_end: 334
        line_start: 333
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000182)
    - item_type: preproc_def
      name: TPM_CC_PCR_SetAuthValue
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000183)
    - item_type: preproc_def
      name: TPM_CC_NV_Certify
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000184)
    - item_type: preproc_def
      name: TPM_CC_EventSequenceComplete
      pos:
        line_end: 337
        line_start: 336
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000185)
    - item_type: preproc_def
      name: TPM_CC_HashSequenceStart
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000186)
    - item_type: preproc_def
      name: TPM_CC_PolicyPhysicalPresence
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000187)
    - item_type: preproc_def
      name: TPM_CC_PolicyDuplicationSelect
      pos:
        line_end: 340
        line_start: 339
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000188)
    - item_type: preproc_def
      name: TPM_CC_PolicyGetDigest
      pos:
        line_end: 341
        line_start: 340
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000189)
    - item_type: preproc_def
      name: TPM_CC_TestParms
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000018A)
    - item_type: preproc_def
      name: TPM_CC_Commit
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000018B)
    - item_type: preproc_def
      name: TPM_CC_PolicyPassword
      pos:
        line_end: 344
        line_start: 343
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000018C)
    - item_type: preproc_def
      name: TPM_CC_ZGen_2Phase
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000018D)
    - item_type: preproc_def
      name: TPM_CC_EC_Ephemeral
      pos:
        line_end: 346
        line_start: 345
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000018E)
    - item_type: preproc_def
      name: TPM_CC_PolicyNvWritten
      pos:
        line_end: 347
        line_start: 346
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000018F)
    - item_type: preproc_def
      name: TPM_CC_PolicyTemplate
      pos:
        line_end: 348
        line_start: 347
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000190)
    - item_type: preproc_def
      name: TPM_CC_CreateLoaded
      pos:
        line_end: 349
        line_start: 348
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000191)
    - item_type: preproc_def
      name: TPM_CC_PolicyAuthorizeNV
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000192)
    - item_type: preproc_def
      name: TPM_CC_EncryptDecrypt2
      pos:
        line_end: 351
        line_start: 350
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000193)
    - item_type: preproc_def
      name: TPM_CC_AC_GetCapability
      pos:
        line_end: 352
        line_start: 351
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000194)
    - item_type: preproc_def
      name: TPM_CC_AC_Send
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000195)
    - item_type: preproc_def
      name: TPM_CC_Policy_AC_SendSelect
      pos:
        line_end: 354
        line_start: 353
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000196)
    - item_type: preproc_def
      name: TPM_CC_CertifyX509
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000197)
    - item_type: preproc_def
      name: TPM_CC_ACT_SetTimeout
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000198)
    - item_type: preproc_def
      name: TPM_CC_ECC_Encrypt
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x00000199)
    - item_type: preproc_def
      name: TPM_CC_ECC_Decrypt
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000019A)
    - item_type: preproc_def
      name: TPM_CC_PolicyCapability
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000019B)
    - item_type: preproc_def
      name: TPM_CC_PolicyParameters
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000019C)
    - item_type: preproc_def
      name: TPM_CC_NV_DefineSpace2
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000019D)
    - item_type: preproc_def
      name: TPM_CC_NV_ReadPublic2
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000019E)
    - item_type: preproc_def
      name: TPM_CC_SetCapability
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000019F)
    - item_type: preproc_def
      name: TPM_CC_LAST
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x0000019F)
    - item_type: preproc_def
      name: CC_VEND
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x20000000)
    - item_type: preproc_def
      name: TPM_CC_Vendor_TCG_Test
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CC)(0x20000000)
    - item_type: preproc_def
      name: ADD_FILL
      pos:
        line_end: 379
        line_start: 378
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ADD_FILL
      pos:
        line_end: 381
        line_start: 380
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBRARY_COMMAND_ARRAY_SIZE
      pos:
        line_end: 383
        line_start: 382
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '(0 + (ADD_FILL || CC_NV_UndefineSpaceSpecial)    '
    - item_type: preproc_def
      name: COMMAND_COUNT
      pos:
        line_end: 515
        line_start: 514
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (LIBRARY_COMMAND_ARRAY_SIZE + VENDOR_COMMAND_ARRAY_SIZE)
    - item_type: preproc_def
      name: TYPE_OF_TPM_RC
      pos:
        line_end: 519
        line_start: 518
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPM_RC_SUCCESS
      pos:
        line_end: 520
        line_start: 519
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x000)
    - item_type: preproc_def
      name: TPM_RC_BAD_TAG
      pos:
        line_end: 521
        line_start: 520
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x01E)
    - item_type: preproc_def
      name: RC_VER1
      pos:
        line_end: 522
        line_start: 521
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x100)
    - item_type: preproc_def
      name: TPM_RC_INITIALIZE
      pos:
        line_end: 523
        line_start: 522
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x000)
    - item_type: preproc_def
      name: TPM_RC_FAILURE
      pos:
        line_end: 524
        line_start: 523
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x001)
    - item_type: preproc_def
      name: TPM_RC_SEQUENCE
      pos:
        line_end: 525
        line_start: 524
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x003)
    - item_type: preproc_def
      name: TPM_RC_PRIVATE
      pos:
        line_end: 526
        line_start: 525
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x00B)
    - item_type: preproc_def
      name: TPM_RC_HMAC
      pos:
        line_end: 527
        line_start: 526
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x019)
    - item_type: preproc_def
      name: TPM_RC_DISABLED
      pos:
        line_end: 528
        line_start: 527
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x020)
    - item_type: preproc_def
      name: TPM_RC_EXCLUSIVE
      pos:
        line_end: 529
        line_start: 528
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x021)
    - item_type: preproc_def
      name: TPM_RC_AUTH_TYPE
      pos:
        line_end: 530
        line_start: 529
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x024)
    - item_type: preproc_def
      name: TPM_RC_AUTH_MISSING
      pos:
        line_end: 531
        line_start: 530
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x025)
    - item_type: preproc_def
      name: TPM_RC_POLICY
      pos:
        line_end: 532
        line_start: 531
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x026)
    - item_type: preproc_def
      name: TPM_RC_PCR
      pos:
        line_end: 533
        line_start: 532
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x027)
    - item_type: preproc_def
      name: TPM_RC_PCR_CHANGED
      pos:
        line_end: 534
        line_start: 533
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x028)
    - item_type: preproc_def
      name: TPM_RC_UPGRADE
      pos:
        line_end: 535
        line_start: 534
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x02D)
    - item_type: preproc_def
      name: TPM_RC_TOO_MANY_CONTEXTS
      pos:
        line_end: 536
        line_start: 535
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x02E)
    - item_type: preproc_def
      name: TPM_RC_AUTH_UNAVAILABLE
      pos:
        line_end: 537
        line_start: 536
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x02F)
    - item_type: preproc_def
      name: TPM_RC_REBOOT
      pos:
        line_end: 538
        line_start: 537
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x030)
    - item_type: preproc_def
      name: TPM_RC_UNBALANCED
      pos:
        line_end: 539
        line_start: 538
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x031)
    - item_type: preproc_def
      name: TPM_RC_COMMAND_SIZE
      pos:
        line_end: 540
        line_start: 539
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x042)
    - item_type: preproc_def
      name: TPM_RC_COMMAND_CODE
      pos:
        line_end: 541
        line_start: 540
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x043)
    - item_type: preproc_def
      name: TPM_RC_AUTHSIZE
      pos:
        line_end: 542
        line_start: 541
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x044)
    - item_type: preproc_def
      name: TPM_RC_AUTH_CONTEXT
      pos:
        line_end: 543
        line_start: 542
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x045)
    - item_type: preproc_def
      name: TPM_RC_NV_RANGE
      pos:
        line_end: 544
        line_start: 543
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x046)
    - item_type: preproc_def
      name: TPM_RC_NV_SIZE
      pos:
        line_end: 545
        line_start: 544
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x047)
    - item_type: preproc_def
      name: TPM_RC_NV_LOCKED
      pos:
        line_end: 546
        line_start: 545
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x048)
    - item_type: preproc_def
      name: TPM_RC_NV_AUTHORIZATION
      pos:
        line_end: 547
        line_start: 546
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x049)
    - item_type: preproc_def
      name: TPM_RC_NV_UNINITIALIZED
      pos:
        line_end: 548
        line_start: 547
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x04A)
    - item_type: preproc_def
      name: TPM_RC_NV_SPACE
      pos:
        line_end: 549
        line_start: 548
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x04B)
    - item_type: preproc_def
      name: TPM_RC_NV_DEFINED
      pos:
        line_end: 550
        line_start: 549
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x04C)
    - item_type: preproc_def
      name: TPM_RC_BAD_CONTEXT
      pos:
        line_end: 551
        line_start: 550
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x050)
    - item_type: preproc_def
      name: TPM_RC_CPHASH
      pos:
        line_end: 552
        line_start: 551
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x051)
    - item_type: preproc_def
      name: TPM_RC_PARENT
      pos:
        line_end: 553
        line_start: 552
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x052)
    - item_type: preproc_def
      name: TPM_RC_NEEDS_TEST
      pos:
        line_end: 554
        line_start: 553
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x053)
    - item_type: preproc_def
      name: TPM_RC_NO_RESULT
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x054)
    - item_type: preproc_def
      name: TPM_RC_SENSITIVE
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x055)
    - item_type: preproc_def
      name: RC_MAX_FM0
      pos:
        line_end: 557
        line_start: 556
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_VER1 + 0x07F)
    - item_type: preproc_def
      name: RC_FMT1
      pos:
        line_end: 558
        line_start: 557
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x080)
    - item_type: preproc_def
      name: TPM_RC_ASYMMETRIC
      pos:
        line_end: 559
        line_start: 558
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x001)
    - item_type: preproc_def
      name: TPM_RCS_ASYMMETRIC
      pos:
        line_end: 560
        line_start: 559
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x001)
    - item_type: preproc_def
      name: TPM_RC_ATTRIBUTES
      pos:
        line_end: 561
        line_start: 560
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x002)
    - item_type: preproc_def
      name: TPM_RCS_ATTRIBUTES
      pos:
        line_end: 562
        line_start: 561
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x002)
    - item_type: preproc_def
      name: TPM_RC_HASH
      pos:
        line_end: 563
        line_start: 562
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x003)
    - item_type: preproc_def
      name: TPM_RCS_HASH
      pos:
        line_end: 564
        line_start: 563
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x003)
    - item_type: preproc_def
      name: TPM_RC_VALUE
      pos:
        line_end: 565
        line_start: 564
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x004)
    - item_type: preproc_def
      name: TPM_RCS_VALUE
      pos:
        line_end: 566
        line_start: 565
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x004)
    - item_type: preproc_def
      name: TPM_RC_HIERARCHY
      pos:
        line_end: 567
        line_start: 566
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x005)
    - item_type: preproc_def
      name: TPM_RCS_HIERARCHY
      pos:
        line_end: 568
        line_start: 567
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x005)
    - item_type: preproc_def
      name: TPM_RC_KEY_SIZE
      pos:
        line_end: 569
        line_start: 568
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x007)
    - item_type: preproc_def
      name: TPM_RCS_KEY_SIZE
      pos:
        line_end: 570
        line_start: 569
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x007)
    - item_type: preproc_def
      name: TPM_RC_MGF
      pos:
        line_end: 571
        line_start: 570
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x008)
    - item_type: preproc_def
      name: TPM_RCS_MGF
      pos:
        line_end: 572
        line_start: 571
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x008)
    - item_type: preproc_def
      name: TPM_RC_MODE
      pos:
        line_end: 573
        line_start: 572
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x009)
    - item_type: preproc_def
      name: TPM_RCS_MODE
      pos:
        line_end: 574
        line_start: 573
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x009)
    - item_type: preproc_def
      name: TPM_RC_TYPE
      pos:
        line_end: 575
        line_start: 574
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x00A)
    - item_type: preproc_def
      name: TPM_RCS_TYPE
      pos:
        line_end: 576
        line_start: 575
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x00A)
    - item_type: preproc_def
      name: TPM_RC_HANDLE
      pos:
        line_end: 577
        line_start: 576
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x00B)
    - item_type: preproc_def
      name: TPM_RCS_HANDLE
      pos:
        line_end: 578
        line_start: 577
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x00B)
    - item_type: preproc_def
      name: TPM_RC_KDF
      pos:
        line_end: 579
        line_start: 578
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x00C)
    - item_type: preproc_def
      name: TPM_RCS_KDF
      pos:
        line_end: 580
        line_start: 579
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x00C)
    - item_type: preproc_def
      name: TPM_RC_RANGE
      pos:
        line_end: 581
        line_start: 580
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x00D)
    - item_type: preproc_def
      name: TPM_RCS_RANGE
      pos:
        line_end: 582
        line_start: 581
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x00D)
    - item_type: preproc_def
      name: TPM_RC_AUTH_FAIL
      pos:
        line_end: 583
        line_start: 582
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x00E)
    - item_type: preproc_def
      name: TPM_RCS_AUTH_FAIL
      pos:
        line_end: 584
        line_start: 583
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x00E)
    - item_type: preproc_def
      name: TPM_RC_NONCE
      pos:
        line_end: 585
        line_start: 584
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x00F)
    - item_type: preproc_def
      name: TPM_RCS_NONCE
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x00F)
    - item_type: preproc_def
      name: TPM_RC_PP
      pos:
        line_end: 587
        line_start: 586
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x010)
    - item_type: preproc_def
      name: TPM_RCS_PP
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x010)
    - item_type: preproc_def
      name: TPM_RC_SCHEME
      pos:
        line_end: 589
        line_start: 588
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x012)
    - item_type: preproc_def
      name: TPM_RCS_SCHEME
      pos:
        line_end: 590
        line_start: 589
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x012)
    - item_type: preproc_def
      name: TPM_RC_SIZE
      pos:
        line_end: 591
        line_start: 590
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x015)
    - item_type: preproc_def
      name: TPM_RCS_SIZE
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x015)
    - item_type: preproc_def
      name: TPM_RC_SYMMETRIC
      pos:
        line_end: 593
        line_start: 592
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x016)
    - item_type: preproc_def
      name: TPM_RCS_SYMMETRIC
      pos:
        line_end: 594
        line_start: 593
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x016)
    - item_type: preproc_def
      name: TPM_RC_TAG
      pos:
        line_end: 595
        line_start: 594
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x017)
    - item_type: preproc_def
      name: TPM_RCS_TAG
      pos:
        line_end: 596
        line_start: 595
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x017)
    - item_type: preproc_def
      name: TPM_RC_SELECTOR
      pos:
        line_end: 597
        line_start: 596
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x018)
    - item_type: preproc_def
      name: TPM_RCS_SELECTOR
      pos:
        line_end: 598
        line_start: 597
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x018)
    - item_type: preproc_def
      name: TPM_RC_INSUFFICIENT
      pos:
        line_end: 599
        line_start: 598
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x01A)
    - item_type: preproc_def
      name: TPM_RCS_INSUFFICIENT
      pos:
        line_end: 600
        line_start: 599
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x01A)
    - item_type: preproc_def
      name: TPM_RC_SIGNATURE
      pos:
        line_end: 601
        line_start: 600
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x01B)
    - item_type: preproc_def
      name: TPM_RCS_SIGNATURE
      pos:
        line_end: 602
        line_start: 601
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x01B)
    - item_type: preproc_def
      name: TPM_RC_KEY
      pos:
        line_end: 603
        line_start: 602
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x01C)
    - item_type: preproc_def
      name: TPM_RCS_KEY
      pos:
        line_end: 604
        line_start: 603
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x01C)
    - item_type: preproc_def
      name: TPM_RC_POLICY_FAIL
      pos:
        line_end: 605
        line_start: 604
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x01D)
    - item_type: preproc_def
      name: TPM_RCS_POLICY_FAIL
      pos:
        line_end: 606
        line_start: 605
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x01D)
    - item_type: preproc_def
      name: TPM_RC_INTEGRITY
      pos:
        line_end: 607
        line_start: 606
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x01F)
    - item_type: preproc_def
      name: TPM_RCS_INTEGRITY
      pos:
        line_end: 608
        line_start: 607
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x01F)
    - item_type: preproc_def
      name: TPM_RC_TICKET
      pos:
        line_end: 609
        line_start: 608
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x020)
    - item_type: preproc_def
      name: TPM_RCS_TICKET
      pos:
        line_end: 610
        line_start: 609
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x020)
    - item_type: preproc_def
      name: TPM_RC_RESERVED_BITS
      pos:
        line_end: 611
        line_start: 610
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x021)
    - item_type: preproc_def
      name: TPM_RCS_RESERVED_BITS
      pos:
        line_end: 612
        line_start: 611
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x021)
    - item_type: preproc_def
      name: TPM_RC_BAD_AUTH
      pos:
        line_end: 613
        line_start: 612
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x022)
    - item_type: preproc_def
      name: TPM_RCS_BAD_AUTH
      pos:
        line_end: 614
        line_start: 613
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x022)
    - item_type: preproc_def
      name: TPM_RC_EXPIRED
      pos:
        line_end: 615
        line_start: 614
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x023)
    - item_type: preproc_def
      name: TPM_RCS_EXPIRED
      pos:
        line_end: 616
        line_start: 615
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x023)
    - item_type: preproc_def
      name: TPM_RC_POLICY_CC
      pos:
        line_end: 617
        line_start: 616
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x024)
    - item_type: preproc_def
      name: TPM_RCS_POLICY_CC
      pos:
        line_end: 618
        line_start: 617
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x024)
    - item_type: preproc_def
      name: TPM_RC_BINDING
      pos:
        line_end: 619
        line_start: 618
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x025)
    - item_type: preproc_def
      name: TPM_RCS_BINDING
      pos:
        line_end: 620
        line_start: 619
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x025)
    - item_type: preproc_def
      name: TPM_RC_CURVE
      pos:
        line_end: 621
        line_start: 620
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x026)
    - item_type: preproc_def
      name: TPM_RCS_CURVE
      pos:
        line_end: 622
        line_start: 621
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x026)
    - item_type: preproc_def
      name: TPM_RC_ECC_POINT
      pos:
        line_end: 623
        line_start: 622
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x027)
    - item_type: preproc_def
      name: TPM_RCS_ECC_POINT
      pos:
        line_end: 624
        line_start: 623
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x027)
    - item_type: preproc_def
      name: TPM_RC_FW_LIMITED
      pos:
        line_end: 625
        line_start: 624
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x028)
    - item_type: preproc_def
      name: TPM_RC_SVN_LIMITED
      pos:
        line_end: 626
        line_start: 625
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_FMT1 + 0x029)
    - item_type: preproc_def
      name: RC_WARN
      pos:
        line_end: 627
        line_start: 626
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x900)
    - item_type: preproc_def
      name: TPM_RC_CONTEXT_GAP
      pos:
        line_end: 628
        line_start: 627
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x001)
    - item_type: preproc_def
      name: TPM_RC_OBJECT_MEMORY
      pos:
        line_end: 629
        line_start: 628
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x002)
    - item_type: preproc_def
      name: TPM_RC_SESSION_MEMORY
      pos:
        line_end: 630
        line_start: 629
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x003)
    - item_type: preproc_def
      name: TPM_RC_MEMORY
      pos:
        line_end: 631
        line_start: 630
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x004)
    - item_type: preproc_def
      name: TPM_RC_SESSION_HANDLES
      pos:
        line_end: 632
        line_start: 631
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x005)
    - item_type: preproc_def
      name: TPM_RC_OBJECT_HANDLES
      pos:
        line_end: 633
        line_start: 632
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x006)
    - item_type: preproc_def
      name: TPM_RC_LOCALITY
      pos:
        line_end: 634
        line_start: 633
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x007)
    - item_type: preproc_def
      name: TPM_RC_YIELDED
      pos:
        line_end: 635
        line_start: 634
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x008)
    - item_type: preproc_def
      name: TPM_RC_CANCELED
      pos:
        line_end: 636
        line_start: 635
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x009)
    - item_type: preproc_def
      name: TPM_RC_TESTING
      pos:
        line_end: 637
        line_start: 636
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x00A)
    - item_type: preproc_def
      name: TPM_RC_REFERENCE_H0
      pos:
        line_end: 638
        line_start: 637
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x010)
    - item_type: preproc_def
      name: TPM_RC_REFERENCE_H1
      pos:
        line_end: 639
        line_start: 638
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x011)
    - item_type: preproc_def
      name: TPM_RC_REFERENCE_H2
      pos:
        line_end: 640
        line_start: 639
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x012)
    - item_type: preproc_def
      name: TPM_RC_REFERENCE_H3
      pos:
        line_end: 641
        line_start: 640
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x013)
    - item_type: preproc_def
      name: TPM_RC_REFERENCE_H4
      pos:
        line_end: 642
        line_start: 641
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x014)
    - item_type: preproc_def
      name: TPM_RC_REFERENCE_H5
      pos:
        line_end: 643
        line_start: 642
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x015)
    - item_type: preproc_def
      name: TPM_RC_REFERENCE_H6
      pos:
        line_end: 644
        line_start: 643
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x016)
    - item_type: preproc_def
      name: TPM_RC_REFERENCE_S0
      pos:
        line_end: 645
        line_start: 644
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x018)
    - item_type: preproc_def
      name: TPM_RC_REFERENCE_S1
      pos:
        line_end: 646
        line_start: 645
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x019)
    - item_type: preproc_def
      name: TPM_RC_REFERENCE_S2
      pos:
        line_end: 647
        line_start: 646
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x01A)
    - item_type: preproc_def
      name: TPM_RC_REFERENCE_S3
      pos:
        line_end: 648
        line_start: 647
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x01B)
    - item_type: preproc_def
      name: TPM_RC_REFERENCE_S4
      pos:
        line_end: 649
        line_start: 648
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x01C)
    - item_type: preproc_def
      name: TPM_RC_REFERENCE_S5
      pos:
        line_end: 650
        line_start: 649
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x01D)
    - item_type: preproc_def
      name: TPM_RC_REFERENCE_S6
      pos:
        line_end: 651
        line_start: 650
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x01E)
    - item_type: preproc_def
      name: TPM_RC_NV_RATE
      pos:
        line_end: 652
        line_start: 651
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x020)
    - item_type: preproc_def
      name: TPM_RC_LOCKOUT
      pos:
        line_end: 653
        line_start: 652
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x021)
    - item_type: preproc_def
      name: TPM_RC_RETRY
      pos:
        line_end: 654
        line_start: 653
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x022)
    - item_type: preproc_def
      name: TPM_RC_NV_UNAVAILABLE
      pos:
        line_end: 655
        line_start: 654
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x023)
    - item_type: preproc_def
      name: TPM_RC_NOT_USED
      pos:
        line_end: 656
        line_start: 655
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(RC_WARN + 0x7F)
    - item_type: preproc_def
      name: TPM_RC_H
      pos:
        line_end: 657
        line_start: 656
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x000)
    - item_type: preproc_def
      name: TPM_RC_P
      pos:
        line_end: 658
        line_start: 657
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x040)
    - item_type: preproc_def
      name: TPM_RC_S
      pos:
        line_end: 659
        line_start: 658
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x800)
    - item_type: preproc_def
      name: TPM_RC_1
      pos:
        line_end: 660
        line_start: 659
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x100)
    - item_type: preproc_def
      name: TPM_RC_2
      pos:
        line_end: 661
        line_start: 660
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x200)
    - item_type: preproc_def
      name: TPM_RC_3
      pos:
        line_end: 662
        line_start: 661
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x300)
    - item_type: preproc_def
      name: TPM_RC_4
      pos:
        line_end: 663
        line_start: 662
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x400)
    - item_type: preproc_def
      name: TPM_RC_5
      pos:
        line_end: 664
        line_start: 663
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x500)
    - item_type: preproc_def
      name: TPM_RC_6
      pos:
        line_end: 665
        line_start: 664
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x600)
    - item_type: preproc_def
      name: TPM_RC_7
      pos:
        line_end: 666
        line_start: 665
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x700)
    - item_type: preproc_def
      name: TPM_RC_8
      pos:
        line_end: 667
        line_start: 666
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x800)
    - item_type: preproc_def
      name: TPM_RC_9
      pos:
        line_end: 668
        line_start: 667
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0x900)
    - item_type: preproc_def
      name: TPM_RC_A
      pos:
        line_end: 669
        line_start: 668
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0xA00)
    - item_type: preproc_def
      name: TPM_RC_B
      pos:
        line_end: 670
        line_start: 669
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0xB00)
    - item_type: preproc_def
      name: TPM_RC_C
      pos:
        line_end: 671
        line_start: 670
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0xC00)
    - item_type: preproc_def
      name: TPM_RC_D
      pos:
        line_end: 672
        line_start: 671
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0xD00)
    - item_type: preproc_def
      name: TPM_RC_E
      pos:
        line_end: 673
        line_start: 672
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0xE00)
    - item_type: preproc_def
      name: TPM_RC_F
      pos:
        line_end: 674
        line_start: 673
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0xF00)
    - item_type: preproc_def
      name: TPM_RC_N_MASK
      pos:
        line_end: 675
        line_start: 674
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RC)(0xF00)
    - item_type: preproc_def
      name: TYPE_OF_TPM_CLOCK_ADJUST
      pos:
        line_end: 679
        line_start: 678
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: INT8
    - item_type: preproc_def
      name: TPM_CLOCK_COARSE_SLOWER
      pos:
        line_end: 680
        line_start: 679
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CLOCK_ADJUST)(-3)
    - item_type: preproc_def
      name: TPM_CLOCK_MEDIUM_SLOWER
      pos:
        line_end: 681
        line_start: 680
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CLOCK_ADJUST)(-2)
    - item_type: preproc_def
      name: TPM_CLOCK_FINE_SLOWER
      pos:
        line_end: 682
        line_start: 681
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CLOCK_ADJUST)(-1)
    - item_type: preproc_def
      name: TPM_CLOCK_NO_CHANGE
      pos:
        line_end: 683
        line_start: 682
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CLOCK_ADJUST)(0)
    - item_type: preproc_def
      name: TPM_CLOCK_FINE_FASTER
      pos:
        line_end: 684
        line_start: 683
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CLOCK_ADJUST)(1)
    - item_type: preproc_def
      name: TPM_CLOCK_MEDIUM_FASTER
      pos:
        line_end: 685
        line_start: 684
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CLOCK_ADJUST)(2)
    - item_type: preproc_def
      name: TPM_CLOCK_COARSE_FASTER
      pos:
        line_end: 686
        line_start: 685
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CLOCK_ADJUST)(3)
    - item_type: preproc_def
      name: TYPE_OF_TPM_EO
      pos:
        line_end: 690
        line_start: 689
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT16
    - item_type: preproc_def
      name: TPM_EO_EQ
      pos:
        line_end: 691
        line_start: 690
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_EO)(0x0000)
    - item_type: preproc_def
      name: TPM_EO_NEQ
      pos:
        line_end: 692
        line_start: 691
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_EO)(0x0001)
    - item_type: preproc_def
      name: TPM_EO_SIGNED_GT
      pos:
        line_end: 693
        line_start: 692
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_EO)(0x0002)
    - item_type: preproc_def
      name: TPM_EO_UNSIGNED_GT
      pos:
        line_end: 694
        line_start: 693
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_EO)(0x0003)
    - item_type: preproc_def
      name: TPM_EO_SIGNED_LT
      pos:
        line_end: 695
        line_start: 694
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_EO)(0x0004)
    - item_type: preproc_def
      name: TPM_EO_UNSIGNED_LT
      pos:
        line_end: 696
        line_start: 695
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_EO)(0x0005)
    - item_type: preproc_def
      name: TPM_EO_SIGNED_GE
      pos:
        line_end: 697
        line_start: 696
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_EO)(0x0006)
    - item_type: preproc_def
      name: TPM_EO_UNSIGNED_GE
      pos:
        line_end: 698
        line_start: 697
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_EO)(0x0007)
    - item_type: preproc_def
      name: TPM_EO_SIGNED_LE
      pos:
        line_end: 699
        line_start: 698
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_EO)(0x0008)
    - item_type: preproc_def
      name: TPM_EO_UNSIGNED_LE
      pos:
        line_end: 700
        line_start: 699
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_EO)(0x0009)
    - item_type: preproc_def
      name: TPM_EO_BITSET
      pos:
        line_end: 701
        line_start: 700
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_EO)(0x000A)
    - item_type: preproc_def
      name: TPM_EO_BITCLEAR
      pos:
        line_end: 702
        line_start: 701
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_EO)(0x000B)
    - item_type: preproc_def
      name: TYPE_OF_TPM_ST
      pos:
        line_end: 706
        line_start: 705
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT16
    - item_type: preproc_def
      name: TPM_ST_RSP_COMMAND
      pos:
        line_end: 707
        line_start: 706
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x00C4)
    - item_type: preproc_def
      name: TPM_ST_NULL
      pos:
        line_end: 708
        line_start: 707
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x8000)
    - item_type: preproc_def
      name: TPM_ST_NO_SESSIONS
      pos:
        line_end: 709
        line_start: 708
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x8001)
    - item_type: preproc_def
      name: TPM_ST_SESSIONS
      pos:
        line_end: 710
        line_start: 709
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x8002)
    - item_type: preproc_def
      name: TPM_ST_ATTEST_NV
      pos:
        line_end: 711
        line_start: 710
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x8014)
    - item_type: preproc_def
      name: TPM_ST_ATTEST_COMMAND_AUDIT
      pos:
        line_end: 712
        line_start: 711
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x8015)
    - item_type: preproc_def
      name: TPM_ST_ATTEST_SESSION_AUDIT
      pos:
        line_end: 713
        line_start: 712
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x8016)
    - item_type: preproc_def
      name: TPM_ST_ATTEST_CERTIFY
      pos:
        line_end: 714
        line_start: 713
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x8017)
    - item_type: preproc_def
      name: TPM_ST_ATTEST_QUOTE
      pos:
        line_end: 715
        line_start: 714
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x8018)
    - item_type: preproc_def
      name: TPM_ST_ATTEST_TIME
      pos:
        line_end: 716
        line_start: 715
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x8019)
    - item_type: preproc_def
      name: TPM_ST_ATTEST_CREATION
      pos:
        line_end: 717
        line_start: 716
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x801A)
    - item_type: preproc_def
      name: TPM_ST_ATTEST_NV_DIGEST
      pos:
        line_end: 718
        line_start: 717
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x801C)
    - item_type: preproc_def
      name: TPM_ST_CREATION
      pos:
        line_end: 719
        line_start: 718
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x8021)
    - item_type: preproc_def
      name: TPM_ST_VERIFIED
      pos:
        line_end: 720
        line_start: 719
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x8022)
    - item_type: preproc_def
      name: TPM_ST_AUTH_SECRET
      pos:
        line_end: 721
        line_start: 720
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x8023)
    - item_type: preproc_def
      name: TPM_ST_HASHCHECK
      pos:
        line_end: 722
        line_start: 721
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x8024)
    - item_type: preproc_def
      name: TPM_ST_AUTH_SIGNED
      pos:
        line_end: 723
        line_start: 722
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x8025)
    - item_type: preproc_def
      name: TPM_ST_FU_MANIFEST
      pos:
        line_end: 724
        line_start: 723
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_ST)(0x8029)
    - item_type: preproc_def
      name: TYPE_OF_TPM_SU
      pos:
        line_end: 728
        line_start: 727
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT16
    - item_type: preproc_def
      name: TPM_SU_CLEAR
      pos:
        line_end: 729
        line_start: 728
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_SU)(0x0000)
    - item_type: preproc_def
      name: TPM_SU_STATE
      pos:
        line_end: 730
        line_start: 729
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_SU)(0x0001)
    - item_type: preproc_def
      name: TYPE_OF_TPM_SE
      pos:
        line_end: 734
        line_start: 733
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT8
    - item_type: preproc_def
      name: TPM_SE_HMAC
      pos:
        line_end: 735
        line_start: 734
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_SE)(0x00)
    - item_type: preproc_def
      name: TPM_SE_POLICY
      pos:
        line_end: 736
        line_start: 735
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_SE)(0x01)
    - item_type: preproc_def
      name: TPM_SE_TRIAL
      pos:
        line_end: 737
        line_start: 736
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_SE)(0x03)
    - item_type: preproc_def
      name: TYPE_OF_TPM_CAP
      pos:
        line_end: 741
        line_start: 740
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPM_CAP_FIRST
      pos:
        line_end: 742
        line_start: 741
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CAP)(0x00000000)
    - item_type: preproc_def
      name: TPM_CAP_ALGS
      pos:
        line_end: 743
        line_start: 742
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CAP)(0x00000000)
    - item_type: preproc_def
      name: TPM_CAP_HANDLES
      pos:
        line_end: 744
        line_start: 743
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CAP)(0x00000001)
    - item_type: preproc_def
      name: TPM_CAP_COMMANDS
      pos:
        line_end: 745
        line_start: 744
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CAP)(0x00000002)
    - item_type: preproc_def
      name: TPM_CAP_PP_COMMANDS
      pos:
        line_end: 746
        line_start: 745
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CAP)(0x00000003)
    - item_type: preproc_def
      name: TPM_CAP_AUDIT_COMMANDS
      pos:
        line_end: 747
        line_start: 746
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CAP)(0x00000004)
    - item_type: preproc_def
      name: TPM_CAP_PCRS
      pos:
        line_end: 748
        line_start: 747
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CAP)(0x00000005)
    - item_type: preproc_def
      name: TPM_CAP_TPM_PROPERTIES
      pos:
        line_end: 749
        line_start: 748
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CAP)(0x00000006)
    - item_type: preproc_def
      name: TPM_CAP_PCR_PROPERTIES
      pos:
        line_end: 750
        line_start: 749
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CAP)(0x00000007)
    - item_type: preproc_def
      name: TPM_CAP_ECC_CURVES
      pos:
        line_end: 751
        line_start: 750
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CAP)(0x00000008)
    - item_type: preproc_def
      name: TPM_CAP_AUTH_POLICIES
      pos:
        line_end: 752
        line_start: 751
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CAP)(0x00000009)
    - item_type: preproc_def
      name: TPM_CAP_ACT
      pos:
        line_end: 753
        line_start: 752
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CAP)(0x0000000A)
    - item_type: preproc_def
      name: TPM_CAP_LAST
      pos:
        line_end: 754
        line_start: 753
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CAP)(0x0000000A)
    - item_type: preproc_def
      name: TPM_CAP_VENDOR_PROPERTY
      pos:
        line_end: 755
        line_start: 754
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_CAP)(0x00000100)
    - item_type: preproc_def
      name: TYPE_OF_TPM_PT
      pos:
        line_end: 759
        line_start: 758
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPM_PT_NONE
      pos:
        line_end: 760
        line_start: 759
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(0x00000000)
    - item_type: preproc_def
      name: PT_GROUP
      pos:
        line_end: 761
        line_start: 760
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(0x00000100)
    - item_type: preproc_def
      name: PT_FIXED
      pos:
        line_end: 762
        line_start: 761
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_GROUP * 1)
    - item_type: preproc_def
      name: TPM_PT_FAMILY_INDICATOR
      pos:
        line_end: 763
        line_start: 762
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 0)
    - item_type: preproc_def
      name: TPM_PT_LEVEL
      pos:
        line_end: 764
        line_start: 763
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 1)
    - item_type: preproc_def
      name: TPM_PT_REVISION
      pos:
        line_end: 765
        line_start: 764
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 2)
    - item_type: preproc_def
      name: TPM_PT_DAY_OF_YEAR
      pos:
        line_end: 766
        line_start: 765
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 3)
    - item_type: preproc_def
      name: TPM_PT_YEAR
      pos:
        line_end: 767
        line_start: 766
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 4)
    - item_type: preproc_def
      name: TPM_PT_MANUFACTURER
      pos:
        line_end: 768
        line_start: 767
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 5)
    - item_type: preproc_def
      name: TPM_PT_VENDOR_STRING_1
      pos:
        line_end: 769
        line_start: 768
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 6)
    - item_type: preproc_def
      name: TPM_PT_VENDOR_STRING_2
      pos:
        line_end: 770
        line_start: 769
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 7)
    - item_type: preproc_def
      name: TPM_PT_VENDOR_STRING_3
      pos:
        line_end: 771
        line_start: 770
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 8)
    - item_type: preproc_def
      name: TPM_PT_VENDOR_STRING_4
      pos:
        line_end: 772
        line_start: 771
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 9)
    - item_type: preproc_def
      name: TPM_PT_VENDOR_TPM_TYPE
      pos:
        line_end: 773
        line_start: 772
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 10)
    - item_type: preproc_def
      name: TPM_PT_FIRMWARE_VERSION_1
      pos:
        line_end: 774
        line_start: 773
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 11)
    - item_type: preproc_def
      name: TPM_PT_FIRMWARE_VERSION_2
      pos:
        line_end: 775
        line_start: 774
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 12)
    - item_type: preproc_def
      name: TPM_PT_INPUT_BUFFER
      pos:
        line_end: 776
        line_start: 775
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 13)
    - item_type: preproc_def
      name: TPM_PT_HR_TRANSIENT_MIN
      pos:
        line_end: 777
        line_start: 776
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 14)
    - item_type: preproc_def
      name: TPM_PT_HR_PERSISTENT_MIN
      pos:
        line_end: 778
        line_start: 777
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 15)
    - item_type: preproc_def
      name: TPM_PT_HR_LOADED_MIN
      pos:
        line_end: 779
        line_start: 778
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 16)
    - item_type: preproc_def
      name: TPM_PT_ACTIVE_SESSIONS_MAX
      pos:
        line_end: 780
        line_start: 779
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 17)
    - item_type: preproc_def
      name: TPM_PT_PCR_COUNT
      pos:
        line_end: 781
        line_start: 780
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 18)
    - item_type: preproc_def
      name: TPM_PT_PCR_SELECT_MIN
      pos:
        line_end: 782
        line_start: 781
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 19)
    - item_type: preproc_def
      name: TPM_PT_CONTEXT_GAP_MAX
      pos:
        line_end: 783
        line_start: 782
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 20)
    - item_type: preproc_def
      name: TPM_PT_NV_COUNTERS_MAX
      pos:
        line_end: 784
        line_start: 783
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 22)
    - item_type: preproc_def
      name: TPM_PT_NV_INDEX_MAX
      pos:
        line_end: 785
        line_start: 784
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 23)
    - item_type: preproc_def
      name: TPM_PT_MEMORY
      pos:
        line_end: 786
        line_start: 785
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 24)
    - item_type: preproc_def
      name: TPM_PT_CLOCK_UPDATE
      pos:
        line_end: 787
        line_start: 786
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 25)
    - item_type: preproc_def
      name: TPM_PT_CONTEXT_HASH
      pos:
        line_end: 788
        line_start: 787
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 26)
    - item_type: preproc_def
      name: TPM_PT_CONTEXT_SYM
      pos:
        line_end: 789
        line_start: 788
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 27)
    - item_type: preproc_def
      name: TPM_PT_CONTEXT_SYM_SIZE
      pos:
        line_end: 790
        line_start: 789
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 28)
    - item_type: preproc_def
      name: TPM_PT_ORDERLY_COUNT
      pos:
        line_end: 791
        line_start: 790
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 29)
    - item_type: preproc_def
      name: TPM_PT_MAX_COMMAND_SIZE
      pos:
        line_end: 792
        line_start: 791
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 30)
    - item_type: preproc_def
      name: TPM_PT_MAX_RESPONSE_SIZE
      pos:
        line_end: 793
        line_start: 792
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 31)
    - item_type: preproc_def
      name: TPM_PT_MAX_DIGEST
      pos:
        line_end: 794
        line_start: 793
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 32)
    - item_type: preproc_def
      name: TPM_PT_MAX_OBJECT_CONTEXT
      pos:
        line_end: 795
        line_start: 794
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 33)
    - item_type: preproc_def
      name: TPM_PT_MAX_SESSION_CONTEXT
      pos:
        line_end: 796
        line_start: 795
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 34)
    - item_type: preproc_def
      name: TPM_PT_PS_FAMILY_INDICATOR
      pos:
        line_end: 797
        line_start: 796
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 35)
    - item_type: preproc_def
      name: TPM_PT_PS_LEVEL
      pos:
        line_end: 798
        line_start: 797
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 36)
    - item_type: preproc_def
      name: TPM_PT_PS_REVISION
      pos:
        line_end: 799
        line_start: 798
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 37)
    - item_type: preproc_def
      name: TPM_PT_PS_DAY_OF_YEAR
      pos:
        line_end: 800
        line_start: 799
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 38)
    - item_type: preproc_def
      name: TPM_PT_PS_YEAR
      pos:
        line_end: 801
        line_start: 800
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 39)
    - item_type: preproc_def
      name: TPM_PT_SPLIT_MAX
      pos:
        line_end: 802
        line_start: 801
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 40)
    - item_type: preproc_def
      name: TPM_PT_TOTAL_COMMANDS
      pos:
        line_end: 803
        line_start: 802
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 41)
    - item_type: preproc_def
      name: TPM_PT_LIBRARY_COMMANDS
      pos:
        line_end: 804
        line_start: 803
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 42)
    - item_type: preproc_def
      name: TPM_PT_VENDOR_COMMANDS
      pos:
        line_end: 805
        line_start: 804
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 43)
    - item_type: preproc_def
      name: TPM_PT_NV_BUFFER_MAX
      pos:
        line_end: 806
        line_start: 805
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 44)
    - item_type: preproc_def
      name: TPM_PT_MODES
      pos:
        line_end: 807
        line_start: 806
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 45)
    - item_type: preproc_def
      name: TPM_PT_MAX_CAP_BUFFER
      pos:
        line_end: 808
        line_start: 807
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 46)
    - item_type: preproc_def
      name: TPM_PT_FIRMWARE_SVN
      pos:
        line_end: 809
        line_start: 808
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 47)
    - item_type: preproc_def
      name: TPM_PT_FIRMWARE_MAX_SVN
      pos:
        line_end: 810
        line_start: 809
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_FIXED + 48)
    - item_type: preproc_def
      name: PT_VAR
      pos:
        line_end: 811
        line_start: 810
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_GROUP * 2)
    - item_type: preproc_def
      name: TPM_PT_PERMANENT
      pos:
        line_end: 812
        line_start: 811
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 0)
    - item_type: preproc_def
      name: TPM_PT_STARTUP_CLEAR
      pos:
        line_end: 813
        line_start: 812
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 1)
    - item_type: preproc_def
      name: TPM_PT_HR_NV_INDEX
      pos:
        line_end: 814
        line_start: 813
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 2)
    - item_type: preproc_def
      name: TPM_PT_HR_LOADED
      pos:
        line_end: 815
        line_start: 814
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 3)
    - item_type: preproc_def
      name: TPM_PT_HR_LOADED_AVAIL
      pos:
        line_end: 816
        line_start: 815
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 4)
    - item_type: preproc_def
      name: TPM_PT_HR_ACTIVE
      pos:
        line_end: 817
        line_start: 816
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 5)
    - item_type: preproc_def
      name: TPM_PT_HR_ACTIVE_AVAIL
      pos:
        line_end: 818
        line_start: 817
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 6)
    - item_type: preproc_def
      name: TPM_PT_HR_TRANSIENT_AVAIL
      pos:
        line_end: 819
        line_start: 818
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 7)
    - item_type: preproc_def
      name: TPM_PT_HR_PERSISTENT
      pos:
        line_end: 820
        line_start: 819
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 8)
    - item_type: preproc_def
      name: TPM_PT_HR_PERSISTENT_AVAIL
      pos:
        line_end: 821
        line_start: 820
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 9)
    - item_type: preproc_def
      name: TPM_PT_NV_COUNTERS
      pos:
        line_end: 822
        line_start: 821
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 10)
    - item_type: preproc_def
      name: TPM_PT_NV_COUNTERS_AVAIL
      pos:
        line_end: 823
        line_start: 822
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 11)
    - item_type: preproc_def
      name: TPM_PT_ALGORITHM_SET
      pos:
        line_end: 824
        line_start: 823
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 12)
    - item_type: preproc_def
      name: TPM_PT_LOADED_CURVES
      pos:
        line_end: 825
        line_start: 824
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 13)
    - item_type: preproc_def
      name: TPM_PT_LOCKOUT_COUNTER
      pos:
        line_end: 826
        line_start: 825
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 14)
    - item_type: preproc_def
      name: TPM_PT_MAX_AUTH_FAIL
      pos:
        line_end: 827
        line_start: 826
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 15)
    - item_type: preproc_def
      name: TPM_PT_LOCKOUT_INTERVAL
      pos:
        line_end: 828
        line_start: 827
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 16)
    - item_type: preproc_def
      name: TPM_PT_LOCKOUT_RECOVERY
      pos:
        line_end: 829
        line_start: 828
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 17)
    - item_type: preproc_def
      name: TPM_PT_NV_WRITE_RECOVERY
      pos:
        line_end: 830
        line_start: 829
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 18)
    - item_type: preproc_def
      name: TPM_PT_AUDIT_COUNTER_0
      pos:
        line_end: 831
        line_start: 830
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 19)
    - item_type: preproc_def
      name: TPM_PT_AUDIT_COUNTER_1
      pos:
        line_end: 832
        line_start: 831
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT)(PT_VAR + 20)
    - item_type: preproc_def
      name: TYPE_OF_TPM_PT_PCR
      pos:
        line_end: 836
        line_start: 835
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPM_PT_PCR_FIRST
      pos:
        line_end: 837
        line_start: 836
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x00000000)
    - item_type: preproc_def
      name: TPM_PT_PCR_SAVE
      pos:
        line_end: 838
        line_start: 837
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x00000000)
    - item_type: preproc_def
      name: TPM_PT_PCR_EXTEND_L0
      pos:
        line_end: 839
        line_start: 838
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x00000001)
    - item_type: preproc_def
      name: TPM_PT_PCR_RESET_L0
      pos:
        line_end: 840
        line_start: 839
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x00000002)
    - item_type: preproc_def
      name: TPM_PT_PCR_EXTEND_L1
      pos:
        line_end: 841
        line_start: 840
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x00000003)
    - item_type: preproc_def
      name: TPM_PT_PCR_RESET_L1
      pos:
        line_end: 842
        line_start: 841
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x00000004)
    - item_type: preproc_def
      name: TPM_PT_PCR_EXTEND_L2
      pos:
        line_end: 843
        line_start: 842
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x00000005)
    - item_type: preproc_def
      name: TPM_PT_PCR_RESET_L2
      pos:
        line_end: 844
        line_start: 843
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x00000006)
    - item_type: preproc_def
      name: TPM_PT_PCR_EXTEND_L3
      pos:
        line_end: 845
        line_start: 844
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x00000007)
    - item_type: preproc_def
      name: TPM_PT_PCR_RESET_L3
      pos:
        line_end: 846
        line_start: 845
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x00000008)
    - item_type: preproc_def
      name: TPM_PT_PCR_EXTEND_L4
      pos:
        line_end: 847
        line_start: 846
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x00000009)
    - item_type: preproc_def
      name: TPM_PT_PCR_RESET_L4
      pos:
        line_end: 848
        line_start: 847
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x0000000A)
    - item_type: preproc_def
      name: TPM_PT_PCR_NO_INCREMENT
      pos:
        line_end: 849
        line_start: 848
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x00000011)
    - item_type: preproc_def
      name: TPM_PT_PCR_DRTM_RESET
      pos:
        line_end: 850
        line_start: 849
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x00000012)
    - item_type: preproc_def
      name: TPM_PT_PCR_POLICY
      pos:
        line_end: 851
        line_start: 850
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x00000013)
    - item_type: preproc_def
      name: TPM_PT_PCR_AUTH
      pos:
        line_end: 852
        line_start: 851
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x00000014)
    - item_type: preproc_def
      name: TPM_PT_PCR_LAST
      pos:
        line_end: 853
        line_start: 852
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PT_PCR)(0x00000014)
    - item_type: preproc_def
      name: TYPE_OF_TPM_PS
      pos:
        line_end: 857
        line_start: 856
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPM_PS_MAIN
      pos:
        line_end: 858
        line_start: 857
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PS)(0x00000000)
    - item_type: preproc_def
      name: TPM_PS_PC
      pos:
        line_end: 859
        line_start: 858
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PS)(0x00000001)
    - item_type: preproc_def
      name: TPM_PS_PDA
      pos:
        line_end: 860
        line_start: 859
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PS)(0x00000002)
    - item_type: preproc_def
      name: TPM_PS_CELL_PHONE
      pos:
        line_end: 861
        line_start: 860
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PS)(0x00000003)
    - item_type: preproc_def
      name: TPM_PS_SERVER
      pos:
        line_end: 862
        line_start: 861
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PS)(0x00000004)
    - item_type: preproc_def
      name: TPM_PS_PERIPHERAL
      pos:
        line_end: 863
        line_start: 862
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PS)(0x00000005)
    - item_type: preproc_def
      name: TPM_PS_TSS
      pos:
        line_end: 864
        line_start: 863
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PS)(0x00000006)
    - item_type: preproc_def
      name: TPM_PS_STORAGE
      pos:
        line_end: 865
        line_start: 864
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PS)(0x00000007)
    - item_type: preproc_def
      name: TPM_PS_AUTHENTICATION
      pos:
        line_end: 866
        line_start: 865
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PS)(0x00000008)
    - item_type: preproc_def
      name: TPM_PS_EMBEDDED
      pos:
        line_end: 867
        line_start: 866
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PS)(0x00000009)
    - item_type: preproc_def
      name: TPM_PS_HARDCOPY
      pos:
        line_end: 868
        line_start: 867
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PS)(0x0000000A)
    - item_type: preproc_def
      name: TPM_PS_INFRASTRUCTURE
      pos:
        line_end: 869
        line_start: 868
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PS)(0x0000000B)
    - item_type: preproc_def
      name: TPM_PS_VIRTUALIZATION
      pos:
        line_end: 870
        line_start: 869
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PS)(0x0000000C)
    - item_type: preproc_def
      name: TPM_PS_TNC
      pos:
        line_end: 871
        line_start: 870
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PS)(0x0000000D)
    - item_type: preproc_def
      name: TPM_PS_MULTI_TENANT
      pos:
        line_end: 872
        line_start: 871
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PS)(0x0000000E)
    - item_type: preproc_def
      name: TPM_PS_TC
      pos:
        line_end: 873
        line_start: 872
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_PS)(0x0000000F)
    - item_type: preproc_def
      name: TYPE_OF_TPM_HANDLE
      pos:
        line_end: 877
        line_start: 876
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TYPE_OF_TPM_HT
      pos:
        line_end: 881
        line_start: 880
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT8
    - item_type: preproc_def
      name: TPM_HT_PCR
      pos:
        line_end: 882
        line_start: 881
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HT)(0x00)
    - item_type: preproc_def
      name: TPM_HT_NV_INDEX
      pos:
        line_end: 883
        line_start: 882
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HT)(0x01)
    - item_type: preproc_def
      name: TPM_HT_HMAC_SESSION
      pos:
        line_end: 884
        line_start: 883
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HT)(0x02)
    - item_type: preproc_def
      name: TPM_HT_LOADED_SESSION
      pos:
        line_end: 885
        line_start: 884
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HT)(0x02)
    - item_type: preproc_def
      name: TPM_HT_POLICY_SESSION
      pos:
        line_end: 886
        line_start: 885
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HT)(0x03)
    - item_type: preproc_def
      name: TPM_HT_SAVED_SESSION
      pos:
        line_end: 887
        line_start: 886
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HT)(0x03)
    - item_type: preproc_def
      name: TPM_HT_EXTERNAL_NV
      pos:
        line_end: 888
        line_start: 887
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HT)(0x11)
    - item_type: preproc_def
      name: TPM_HT_PERMANENT_NV
      pos:
        line_end: 889
        line_start: 888
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HT)(0x12)
    - item_type: preproc_def
      name: TPM_HT_PERMANENT
      pos:
        line_end: 890
        line_start: 889
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HT)(0x40)
    - item_type: preproc_def
      name: TPM_HT_TRANSIENT
      pos:
        line_end: 891
        line_start: 890
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HT)(0x80)
    - item_type: preproc_def
      name: TPM_HT_PERSISTENT
      pos:
        line_end: 892
        line_start: 891
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HT)(0x81)
    - item_type: preproc_def
      name: TPM_HT_AC
      pos:
        line_end: 893
        line_start: 892
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HT)(0x90)
    - item_type: preproc_def
      name: TYPE_OF_TPM_RH
      pos:
        line_end: 897
        line_start: 896
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPM_HANDLE
    - item_type: preproc_def
      name: TPM_RH_FIRST
      pos:
        line_end: 898
        line_start: 897
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000000)
    - item_type: preproc_def
      name: TPM_RH_SRK
      pos:
        line_end: 899
        line_start: 898
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000000)
    - item_type: preproc_def
      name: TPM_RH_OWNER
      pos:
        line_end: 900
        line_start: 899
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000001)
    - item_type: preproc_def
      name: TPM_RH_REVOKE
      pos:
        line_end: 901
        line_start: 900
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000002)
    - item_type: preproc_def
      name: TPM_RH_TRANSPORT
      pos:
        line_end: 902
        line_start: 901
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000003)
    - item_type: preproc_def
      name: TPM_RH_OPERATOR
      pos:
        line_end: 903
        line_start: 902
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000004)
    - item_type: preproc_def
      name: TPM_RH_ADMIN
      pos:
        line_end: 904
        line_start: 903
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000005)
    - item_type: preproc_def
      name: TPM_RH_EK
      pos:
        line_end: 905
        line_start: 904
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000006)
    - item_type: preproc_def
      name: TPM_RH_NULL
      pos:
        line_end: 906
        line_start: 905
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000007)
    - item_type: preproc_def
      name: TPM_RH_UNASSIGNED
      pos:
        line_end: 907
        line_start: 906
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000008)
    - item_type: preproc_def
      name: TPM_RS_PW
      pos:
        line_end: 908
        line_start: 907
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000009)
    - item_type: preproc_def
      name: TPM_RH_LOCKOUT
      pos:
        line_end: 909
        line_start: 908
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x4000000A)
    - item_type: preproc_def
      name: TPM_RH_ENDORSEMENT
      pos:
        line_end: 910
        line_start: 909
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x4000000B)
    - item_type: preproc_def
      name: TPM_RH_PLATFORM
      pos:
        line_end: 911
        line_start: 910
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x4000000C)
    - item_type: preproc_def
      name: TPM_RH_PLATFORM_NV
      pos:
        line_end: 912
        line_start: 911
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x4000000D)
    - item_type: preproc_def
      name: TPM_RH_AUTH_00
      pos:
        line_end: 913
        line_start: 912
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000010)
    - item_type: preproc_def
      name: TPM_RH_AUTH_FF
      pos:
        line_end: 914
        line_start: 913
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x4000010F)
    - item_type: preproc_def
      name: TPM_RH_ACT_0
      pos:
        line_end: 915
        line_start: 914
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000110)
    - item_type: preproc_def
      name: TPM_RH_ACT_F
      pos:
        line_end: 916
        line_start: 915
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x4000011F)
    - item_type: preproc_def
      name: TPM_RH_FW_OWNER
      pos:
        line_end: 917
        line_start: 916
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000140)
    - item_type: preproc_def
      name: TPM_RH_FW_ENDORSEMENT
      pos:
        line_end: 918
        line_start: 917
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000141)
    - item_type: preproc_def
      name: TPM_RH_FW_PLATFORM
      pos:
        line_end: 919
        line_start: 918
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000142)
    - item_type: preproc_def
      name: TPM_RH_FW_NULL
      pos:
        line_end: 920
        line_start: 919
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40000143)
    - item_type: preproc_def
      name: TPM_RH_SVN_OWNER_BASE
      pos:
        line_end: 921
        line_start: 920
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40010000)
    - item_type: preproc_def
      name: TPM_RH_SVN_ENDORSEMENT_BASE
      pos:
        line_end: 922
        line_start: 921
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40020000)
    - item_type: preproc_def
      name: TPM_RH_SVN_PLATFORM_BASE
      pos:
        line_end: 923
        line_start: 922
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40030000)
    - item_type: preproc_def
      name: TPM_RH_SVN_NULL_BASE
      pos:
        line_end: 924
        line_start: 923
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x40040000)
    - item_type: preproc_def
      name: TPM_RH_LAST
      pos:
        line_end: 925
        line_start: 924
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_RH)(0x4004FFFF)
    - item_type: preproc_def
      name: TYPE_OF_TPM_HC
      pos:
        line_end: 933
        line_start: 932
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPM_HANDLE
    - item_type: preproc_def
      name: HR_HANDLE_MASK
      pos:
        line_end: 934
        line_start: 933
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)(0x00FFFFFF)
    - item_type: preproc_def
      name: HR_RANGE_MASK
      pos:
        line_end: 935
        line_start: 934
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)(0xFF000000)
    - item_type: preproc_def
      name: HR_SHIFT
      pos:
        line_end: 936
        line_start: 935
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)(24)
    - item_type: preproc_def
      name: HR_PCR
      pos:
        line_end: 937
        line_start: 936
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((TPM_HT_PCR << HR_SHIFT))
    - item_type: preproc_def
      name: HR_HMAC_SESSION
      pos:
        line_end: 938
        line_start: 937
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((TPM_HT_HMAC_SESSION << HR_SHIFT))
    - item_type: preproc_def
      name: HR_POLICY_SESSION
      pos:
        line_end: 939
        line_start: 938
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((TPM_HT_POLICY_SESSION << HR_SHIFT))
    - item_type: preproc_def
      name: HR_TRANSIENT
      pos:
        line_end: 940
        line_start: 939
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: "(TPM_HC)(((UINT32)TPM_HT_TRANSIENT << HR_SHIFT))\t// libtpms
        changed: UBSAN"
    - item_type: preproc_def
      name: HR_PERSISTENT
      pos:
        line_end: 941
        line_start: 940
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: "(TPM_HC)(((UINT32)TPM_HT_PERSISTENT << HR_SHIFT))\t// libtpms
        changed: UBSAN"
    - item_type: preproc_def
      name: HR_NV_INDEX
      pos:
        line_end: 942
        line_start: 941
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((TPM_HT_NV_INDEX << HR_SHIFT))
    - item_type: preproc_def
      name: HR_EXTERNAL_NV
      pos:
        line_end: 943
        line_start: 942
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((TPM_HT_EXTERNAL_NV << HR_SHIFT))
    - item_type: preproc_def
      name: HR_PERMANENT_NV
      pos:
        line_end: 944
        line_start: 943
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((TPM_HT_PERMANENT_NV << HR_SHIFT))
    - item_type: preproc_def
      name: HR_PERMANENT
      pos:
        line_end: 945
        line_start: 944
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((TPM_HT_PERMANENT << HR_SHIFT))
    - item_type: preproc_def
      name: PCR_FIRST
      pos:
        line_end: 946
        line_start: 945
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((HR_PCR + 0))
    - item_type: preproc_def
      name: PCR_LAST
      pos:
        line_end: 947
        line_start: 946
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((PCR_FIRST + IMPLEMENTATION_PCR - 1))
    - item_type: preproc_def
      name: HMAC_SESSION_FIRST
      pos:
        line_end: 948
        line_start: 947
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((HR_HMAC_SESSION + 0))
    - item_type: preproc_def
      name: HMAC_SESSION_LAST
      pos:
        line_end: 949
        line_start: 948
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((HMAC_SESSION_FIRST + MAX_ACTIVE_SESSIONS - 1))
    - item_type: preproc_def
      name: LOADED_SESSION_FIRST
      pos:
        line_end: 950
        line_start: 949
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)(HMAC_SESSION_FIRST)
    - item_type: preproc_def
      name: LOADED_SESSION_LAST
      pos:
        line_end: 951
        line_start: 950
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)(HMAC_SESSION_LAST)
    - item_type: preproc_def
      name: POLICY_SESSION_FIRST
      pos:
        line_end: 952
        line_start: 951
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((HR_POLICY_SESSION + 0))
    - item_type: preproc_def
      name: POLICY_SESSION_LAST
      pos:
        line_end: 953
        line_start: 952
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((POLICY_SESSION_FIRST + MAX_ACTIVE_SESSIONS - 1))
    - item_type: preproc_def
      name: TRANSIENT_FIRST
      pos:
        line_end: 954
        line_start: 953
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((HR_TRANSIENT + 0))
    - item_type: preproc_def
      name: ACTIVE_SESSION_FIRST
      pos:
        line_end: 955
        line_start: 954
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)(POLICY_SESSION_FIRST)
    - item_type: preproc_def
      name: ACTIVE_SESSION_LAST
      pos:
        line_end: 956
        line_start: 955
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)(POLICY_SESSION_LAST)
    - item_type: preproc_def
      name: TRANSIENT_LAST
      pos:
        line_end: 957
        line_start: 956
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((TRANSIENT_FIRST + MAX_LOADED_OBJECTS - 1))
    - item_type: preproc_def
      name: PERSISTENT_FIRST
      pos:
        line_end: 958
        line_start: 957
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((HR_PERSISTENT + 0))
    - item_type: preproc_def
      name: PERSISTENT_LAST
      pos:
        line_end: 959
        line_start: 958
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((PERSISTENT_FIRST + 0x00FFFFFF))
    - item_type: preproc_def
      name: SVN_OWNER_FIRST
      pos:
        line_end: 960
        line_start: 959
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((TPM_RH_SVN_OWNER_BASE + 0x0000))
    - item_type: preproc_def
      name: SVN_OWNER_LAST
      pos:
        line_end: 961
        line_start: 960
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((TPM_RH_SVN_OWNER_BASE + 0xFFFF))
    - item_type: preproc_def
      name: SVN_ENDORSEMENT_FIRST
      pos:
        line_end: 962
        line_start: 961
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((TPM_RH_SVN_ENDORSEMENT_BASE + 0x0000))
    - item_type: preproc_def
      name: SVN_ENDORSEMENT_LAST
      pos:
        line_end: 963
        line_start: 962
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((TPM_RH_SVN_ENDORSEMENT_BASE + 0xFFFF))
    - item_type: preproc_def
      name: SVN_PLATFORM_FIRST
      pos:
        line_end: 964
        line_start: 963
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((TPM_RH_SVN_PLATFORM_BASE + 0x0000))
    - item_type: preproc_def
      name: SVN_PLATFORM_LAST
      pos:
        line_end: 965
        line_start: 964
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((TPM_RH_SVN_PLATFORM_BASE + 0xFFFF))
    - item_type: preproc_def
      name: SVN_NULL_FIRST
      pos:
        line_end: 966
        line_start: 965
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((TPM_RH_SVN_NULL_BASE + 0x0000))
    - item_type: preproc_def
      name: SVN_NULL_LAST
      pos:
        line_end: 967
        line_start: 966
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((TPM_RH_SVN_NULL_BASE + 0xFFFF))
    - item_type: preproc_def
      name: PLATFORM_PERSISTENT
      pos:
        line_end: 968
        line_start: 967
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((PERSISTENT_FIRST + 0x00800000))
    - item_type: preproc_def
      name: NV_INDEX_FIRST
      pos:
        line_end: 969
        line_start: 968
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((HR_NV_INDEX + 0))
    - item_type: preproc_def
      name: NV_INDEX_LAST
      pos:
        line_end: 970
        line_start: 969
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((NV_INDEX_FIRST + 0x00FFFFFF))
    - item_type: preproc_def
      name: EXTERNAL_NV_FIRST
      pos:
        line_end: 971
        line_start: 970
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((HR_EXTERNAL_NV + 0))
    - item_type: preproc_def
      name: EXTERNAL_NV_LAST
      pos:
        line_end: 972
        line_start: 971
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((EXTERNAL_NV_FIRST + 0x00FFFFFF))
    - item_type: preproc_def
      name: PERMANENT_NV_FIRST
      pos:
        line_end: 973
        line_start: 972
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((HR_PERMANENT_NV + 0))
    - item_type: preproc_def
      name: PERMANENT_NV_LAST
      pos:
        line_end: 974
        line_start: 973
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((PERMANENT_NV_FIRST + 0x00FFFFFF))
    - item_type: preproc_def
      name: PERMANENT_FIRST
      pos:
        line_end: 975
        line_start: 974
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)(TPM_RH_FIRST)
    - item_type: preproc_def
      name: PERMANENT_LAST
      pos:
        line_end: 976
        line_start: 975
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)(TPM_RH_LAST)
    - item_type: preproc_def
      name: HR_NV_AC
      pos:
        line_end: 977
        line_start: 976
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)(((TPM_HT_NV_INDEX << HR_SHIFT) + 0xD00000))
    - item_type: preproc_def
      name: NV_AC_FIRST
      pos:
        line_end: 978
        line_start: 977
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((HR_NV_AC + 0))
    - item_type: preproc_def
      name: NV_AC_LAST
      pos:
        line_end: 979
        line_start: 978
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((HR_NV_AC + 0x0000FFFF))
    - item_type: preproc_def
      name: HR_AC
      pos:
        line_end: 980
        line_start: 979
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: "(TPM_HC)(((UINT32)TPM_HT_AC << HR_SHIFT))\t\t// libtpms changed:
        UBSAN"
    - item_type: preproc_def
      name: AC_FIRST
      pos:
        line_end: 981
        line_start: 980
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((HR_AC + 0))
    - item_type: preproc_def
      name: AC_LAST
      pos:
        line_end: 982
        line_start: 981
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_HC)((HR_AC + 0x0000FFFF))
    - item_type: preproc_def
      name: TYPE_OF_TPMA_ALGORITHM
      pos:
        line_end: 985
        line_start: 984
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPMA_ALGORITHM_asymmetric
      pos:
        line_end: 1027
        line_start: 1026
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_ALGORITHM)(1 << 0)
    - item_type: preproc_def
      name: TPMA_ALGORITHM_symmetric
      pos:
        line_end: 1028
        line_start: 1027
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_ALGORITHM)(1 << 1)
    - item_type: preproc_def
      name: TPMA_ALGORITHM_hash
      pos:
        line_end: 1029
        line_start: 1028
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_ALGORITHM)(1 << 2)
    - item_type: preproc_def
      name: TPMA_ALGORITHM_object
      pos:
        line_end: 1030
        line_start: 1029
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_ALGORITHM)(1 << 3)
    - item_type: preproc_def
      name: TPMA_ALGORITHM_signing
      pos:
        line_end: 1031
        line_start: 1030
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_ALGORITHM)(1 << 8)
    - item_type: preproc_def
      name: TPMA_ALGORITHM_encrypting
      pos:
        line_end: 1032
        line_start: 1031
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_ALGORITHM)(1 << 9)
    - item_type: preproc_def
      name: TPMA_ALGORITHM_method
      pos:
        line_end: 1033
        line_start: 1032
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_ALGORITHM)(1 << 10)
    - item_type: preproc_def
      name: TPMA_ALGORITHM_reserved
      pos:
        line_end: 1034
        line_start: 1033
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: "0xfffff8f0\t\t\t// libtpms added"
    - item_type: preproc_def
      name: TYPE_OF_TPMA_OBJECT
      pos:
        line_end: 1053
        line_start: 1052
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPMA_OBJECT_fixedTPM
      pos:
        line_end: 1090
        line_start: 1089
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_OBJECT)(1 << 1)
    - item_type: preproc_def
      name: TPMA_OBJECT_stClear
      pos:
        line_end: 1091
        line_start: 1090
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_OBJECT)(1 << 2)
    - item_type: preproc_def
      name: TPMA_OBJECT_fixedParent
      pos:
        line_end: 1092
        line_start: 1091
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_OBJECT)(1 << 4)
    - item_type: preproc_def
      name: TPMA_OBJECT_sensitiveDataOrigin
      pos:
        line_end: 1093
        line_start: 1092
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_OBJECT)(1 << 5)
    - item_type: preproc_def
      name: TPMA_OBJECT_userWithAuth
      pos:
        line_end: 1094
        line_start: 1093
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_OBJECT)(1 << 6)
    - item_type: preproc_def
      name: TPMA_OBJECT_adminWithPolicy
      pos:
        line_end: 1095
        line_start: 1094
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_OBJECT)(1 << 7)
    - item_type: preproc_def
      name: TPMA_OBJECT_firmwareLimited
      pos:
        line_end: 1096
        line_start: 1095
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_OBJECT)(1 << 8)
    - item_type: preproc_def
      name: TPMA_OBJECT_svnLimited
      pos:
        line_end: 1097
        line_start: 1096
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_OBJECT)(1 << 9)
    - item_type: preproc_def
      name: TPMA_OBJECT_noDA
      pos:
        line_end: 1098
        line_start: 1097
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_OBJECT)(1 << 10)
    - item_type: preproc_def
      name: TPMA_OBJECT_encryptedDuplication
      pos:
        line_end: 1099
        line_start: 1098
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_OBJECT)(1 << 11)
    - item_type: preproc_def
      name: TPMA_OBJECT_restricted
      pos:
        line_end: 1100
        line_start: 1099
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_OBJECT)(1 << 16)
    - item_type: preproc_def
      name: TPMA_OBJECT_decrypt
      pos:
        line_end: 1101
        line_start: 1100
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_OBJECT)(1 << 17)
    - item_type: preproc_def
      name: TPMA_OBJECT_sign
      pos:
        line_end: 1102
        line_start: 1101
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_OBJECT)(1 << 18)
    - item_type: preproc_def
      name: TPMA_OBJECT_x509sign
      pos:
        line_end: 1103
        line_start: 1102
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_OBJECT)(1 << 19)
    - item_type: preproc_def
      name: TPMA_OBJECT_reserved
      pos:
        line_end: 1104
        line_start: 1103
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: "((TPMA_OBJECT)0xfff0f009)\t\t// libtpms added"
    - item_type: preproc_def
      name: TYPE_OF_TPMA_SESSION
      pos:
        line_end: 1109
        line_start: 1108
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT8
    - item_type: preproc_def
      name: TPMA_SESSION_continueSession
      pos:
        line_end: 1147
        line_start: 1146
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_SESSION)(1 << 0)
    - item_type: preproc_def
      name: TPMA_SESSION_auditExclusive
      pos:
        line_end: 1148
        line_start: 1147
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_SESSION)(1 << 1)
    - item_type: preproc_def
      name: TPMA_SESSION_auditReset
      pos:
        line_end: 1149
        line_start: 1148
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_SESSION)(1 << 2)
    - item_type: preproc_def
      name: TPMA_SESSION_decrypt
      pos:
        line_end: 1150
        line_start: 1149
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_SESSION)(1 << 5)
    - item_type: preproc_def
      name: TPMA_SESSION_encrypt
      pos:
        line_end: 1151
        line_start: 1150
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_SESSION)(1 << 6)
    - item_type: preproc_def
      name: TPMA_SESSION_audit
      pos:
        line_end: 1152
        line_start: 1151
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_SESSION)(1 << 7)
    - item_type: preproc_def
      name: TPMA_SESSION_reserved
      pos:
        line_end: 1153
        line_start: 1152
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: "0x18\t\t\t// libtpms added"
    - item_type: preproc_def
      name: TYPE_OF_TPMA_LOCALITY
      pos:
        line_end: 1170
        line_start: 1169
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT8
    - item_type: preproc_def
      name: TPMA_LOCALITY_TPM_LOC_ZERO
      pos:
        line_end: 1202
        line_start: 1201
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_LOCALITY)(1 << 0)
    - item_type: preproc_def
      name: TPMA_LOCALITY_TPM_LOC_ONE
      pos:
        line_end: 1203
        line_start: 1202
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_LOCALITY)(1 << 1)
    - item_type: preproc_def
      name: TPMA_LOCALITY_TPM_LOC_TWO
      pos:
        line_end: 1204
        line_start: 1203
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_LOCALITY)(1 << 2)
    - item_type: preproc_def
      name: TPMA_LOCALITY_TPM_LOC_THREE
      pos:
        line_end: 1205
        line_start: 1204
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_LOCALITY)(1 << 3)
    - item_type: preproc_def
      name: TPMA_LOCALITY_TPM_LOC_FOUR
      pos:
        line_end: 1206
        line_start: 1205
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_LOCALITY)(1 << 4)
    - item_type: preproc_def
      name: TPMA_LOCALITY_Extended
      pos:
        line_end: 1207
        line_start: 1206
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_LOCALITY)(7 << 5)
    - item_type: preproc_def
      name: TPMA_LOCALITY_Extended_SHIFT
      pos:
        line_end: 1208
        line_start: 1207
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '5'
    - item_type: preproc_def
      name: TYPE_OF_TPMA_PERMANENT
      pos:
        line_end: 1220
        line_start: 1219
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPMA_PERMANENT_ownerAuthSet
      pos:
        line_end: 1260
        line_start: 1259
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_PERMANENT)(1 << 0)
    - item_type: preproc_def
      name: TPMA_PERMANENT_endorsementAuthSet
      pos:
        line_end: 1261
        line_start: 1260
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_PERMANENT)(1 << 1)
    - item_type: preproc_def
      name: TPMA_PERMANENT_lockoutAuthSet
      pos:
        line_end: 1262
        line_start: 1261
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_PERMANENT)(1 << 2)
    - item_type: preproc_def
      name: TPMA_PERMANENT_disableClear
      pos:
        line_end: 1263
        line_start: 1262
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_PERMANENT)(1 << 8)
    - item_type: preproc_def
      name: TPMA_PERMANENT_inLockout
      pos:
        line_end: 1264
        line_start: 1263
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_PERMANENT)(1 << 9)
    - item_type: preproc_def
      name: TPMA_PERMANENT_tpmGeneratedEPS
      pos:
        line_end: 1265
        line_start: 1264
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_PERMANENT)(1 << 10)
    - item_type: preproc_def
      name: TYPE_OF_TPMA_STARTUP_CLEAR
      pos:
        line_end: 1283
        line_start: 1282
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPMA_STARTUP_CLEAR_phEnable
      pos:
        line_end: 1314
        line_start: 1313
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_STARTUP_CLEAR)(1 << 0)
    - item_type: preproc_def
      name: TPMA_STARTUP_CLEAR_shEnable
      pos:
        line_end: 1315
        line_start: 1314
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_STARTUP_CLEAR)(1 << 1)
    - item_type: preproc_def
      name: TPMA_STARTUP_CLEAR_ehEnable
      pos:
        line_end: 1316
        line_start: 1315
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_STARTUP_CLEAR)(1 << 2)
    - item_type: preproc_def
      name: TPMA_STARTUP_CLEAR_phEnableNV
      pos:
        line_end: 1317
        line_start: 1316
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_STARTUP_CLEAR)(1 << 3)
    - item_type: preproc_def
      name: TPMA_STARTUP_CLEAR_orderly
      pos:
        line_end: 1318
        line_start: 1317
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: "(TPMA_STARTUP_CLEAR)((UINT32)1 << 31)\t// libtpms changed: UBSAN"
    - item_type: preproc_def
      name: TYPE_OF_TPMA_MEMORY
      pos:
        line_end: 1329
        line_start: 1328
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPMA_MEMORY_sharedRAM
      pos:
        line_end: 1357
        line_start: 1356
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_MEMORY)(1 << 0)
    - item_type: preproc_def
      name: TPMA_MEMORY_sharedNV
      pos:
        line_end: 1358
        line_start: 1357
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_MEMORY)(1 << 1)
    - item_type: preproc_def
      name: TPMA_MEMORY_objectCopiedToRam
      pos:
        line_end: 1359
        line_start: 1358
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_MEMORY)(1 << 2)
    - item_type: preproc_def
      name: TYPE_OF_TPMA_CC
      pos:
        line_end: 1368
        line_start: 1367
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPMA_CC_commandIndex
      pos:
        line_end: 1409
        line_start: 1408
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_CC)(0xFFFF << 0)
    - item_type: preproc_def
      name: TPMA_CC_commandIndex_SHIFT
      pos:
        line_end: 1410
        line_start: 1409
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TPMA_CC_nv
      pos:
        line_end: 1411
        line_start: 1410
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_CC)(1 << 22)
    - item_type: preproc_def
      name: TPMA_CC_extensive
      pos:
        line_end: 1412
        line_start: 1411
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_CC)(1 << 23)
    - item_type: preproc_def
      name: TPMA_CC_flushed
      pos:
        line_end: 1413
        line_start: 1412
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_CC)(1 << 24)
    - item_type: preproc_def
      name: TPMA_CC_cHandles
      pos:
        line_end: 1414
        line_start: 1413
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_CC)(7 << 25)
    - item_type: preproc_def
      name: TPMA_CC_cHandles_SHIFT
      pos:
        line_end: 1415
        line_start: 1414
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '25'
    - item_type: preproc_def
      name: TPMA_CC_rHandle
      pos:
        line_end: 1416
        line_start: 1415
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_CC)(1 << 28)
    - item_type: preproc_def
      name: TPMA_CC_V
      pos:
        line_end: 1417
        line_start: 1416
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_CC)(1 << 29)
    - item_type: preproc_def
      name: TPMA_CC_reserved
      pos:
        line_end: 1418
        line_start: 1417
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: "0xc03f0000\t\t\t\t// libtpms added"
    - item_type: preproc_def
      name: TYPE_OF_TPMA_MODES
      pos:
        line_end: 1436
        line_start: 1435
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPMA_MODES_FIPS_140_2
      pos:
        line_end: 1465
        line_start: 1464
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_MODES)(1 << 0)
    - item_type: preproc_def
      name: TPMA_MODES_FIPS_140_3
      pos:
        line_end: 1466
        line_start: 1465
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_MODES)(1 << 1)
    - item_type: preproc_def
      name: TPMA_MODES_FIPS_140_3_INDICATOR
      pos:
        line_end: 1467
        line_start: 1466
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_MODES)(3 << 2)
    - item_type: preproc_def
      name: TPMA_MODES_FIPS_140_3_INDICATOR_SHIFT
      pos:
        line_end: 1468
        line_start: 1467
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TYPE_OF_TPMA_X509_KEY_USAGE
      pos:
        line_end: 1479
        line_start: 1478
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPMA_X509_KEY_USAGE_ALLOWED_BITS
      pos:
        line_end: 1489
        line_start: 1488
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (0xff800000)
    - item_type: preproc_def
      name: TPMA_X509_KEY_USAGE_decipherOnly
      pos:
        line_end: 1524
        line_start: 1523
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_X509_KEY_USAGE)(1 << 23)
    - item_type: preproc_def
      name: TPMA_X509_KEY_USAGE_encipherOnly
      pos:
        line_end: 1525
        line_start: 1524
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_X509_KEY_USAGE)(1 << 24)
    - item_type: preproc_def
      name: TPMA_X509_KEY_USAGE_cRLSign
      pos:
        line_end: 1526
        line_start: 1525
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_X509_KEY_USAGE)(1 << 25)
    - item_type: preproc_def
      name: TPMA_X509_KEY_USAGE_keyCertSign
      pos:
        line_end: 1527
        line_start: 1526
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_X509_KEY_USAGE)(1 << 26)
    - item_type: preproc_def
      name: TPMA_X509_KEY_USAGE_keyAgreement
      pos:
        line_end: 1528
        line_start: 1527
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_X509_KEY_USAGE)(1 << 27)
    - item_type: preproc_def
      name: TPMA_X509_KEY_USAGE_dataEncipherment
      pos:
        line_end: 1529
        line_start: 1528
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_X509_KEY_USAGE)(1 << 28)
    - item_type: preproc_def
      name: TPMA_X509_KEY_USAGE_keyEncipherment
      pos:
        line_end: 1530
        line_start: 1529
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_X509_KEY_USAGE)(1 << 29)
    - item_type: preproc_def
      name: TPMA_X509_KEY_USAGE_nonrepudiation
      pos:
        line_end: 1531
        line_start: 1530
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_X509_KEY_USAGE)(1 << 30)
    - item_type: preproc_def
      name: TPMA_X509_KEY_USAGE_digitalSignature
      pos:
        line_end: 1532
        line_start: 1531
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: "(TPMA_X509_KEY_USAGE)((UINT32)1 << 31)\t// libtpms changed:
        UBSAN"
    - item_type: preproc_def
      name: TYPE_OF_TPMA_ACT
      pos:
        line_end: 1554
        line_start: 1553
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPMA_ACT_signaled
      pos:
        line_end: 1581
        line_start: 1580
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_ACT)(1 << 0)
    - item_type: preproc_def
      name: TPMA_ACT_preserveSignaled
      pos:
        line_end: 1582
        line_start: 1581
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_ACT)(1 << 1)
    - item_type: preproc_def
      name: TYPE_OF_TPM2B_NONCE
      pos:
        line_end: 1706
        line_start: 1705
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPM2B_DIGEST
    - item_type: preproc_def
      name: TYPE_OF_TPM2B_AUTH
      pos:
        line_end: 1710
        line_start: 1709
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPM2B_DIGEST
    - item_type: preproc_def
      name: TYPE_OF_TPM2B_OPERAND
      pos:
        line_end: 1714
        line_start: 1713
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPM2B_DIGEST
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SCHEME_HMAC
      pos:
        line_end: 2243
        line_start: 2242
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_HASH
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SIG_SCHEME_RSAPSS
      pos:
        line_end: 2269
        line_start: 2268
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_HASH
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SIG_SCHEME_RSASSA
      pos:
        line_end: 2271
        line_start: 2270
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_HASH
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SIG_SCHEME_ECDAA
      pos:
        line_end: 2275
        line_start: 2274
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_ECDAA
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SIG_SCHEME_ECDSA
      pos:
        line_end: 2277
        line_start: 2276
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_HASH
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SIG_SCHEME_ECSCHNORR
      pos:
        line_end: 2279
        line_start: 2278
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_HASH
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SIG_SCHEME_EDDSA
      pos:
        line_end: 2281
        line_start: 2280
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_HASH
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SIG_SCHEME_EDDSA_PH
      pos:
        line_end: 2283
        line_start: 2282
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_HASH
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SIG_SCHEME_SM2
      pos:
        line_end: 2285
        line_start: 2284
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_HASH
    - item_type: preproc_def
      name: TYPE_OF_TPMS_ENC_SCHEME_RSAES
      pos:
        line_end: 2333
        line_start: 2332
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_EMPTY
    - item_type: preproc_def
      name: TYPE_OF_TPMS_ENC_SCHEME_OAEP
      pos:
        line_end: 2335
        line_start: 2334
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_HASH
    - item_type: preproc_def
      name: TYPE_OF_TPMS_KEY_SCHEME_ECDH
      pos:
        line_end: 2339
        line_start: 2338
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_HASH
    - item_type: preproc_def
      name: TYPE_OF_TPMS_KEY_SCHEME_ECMQV
      pos:
        line_end: 2341
        line_start: 2340
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_HASH
    - item_type: preproc_def
      name: TYPE_OF_TPMS_KEY_SCHEME_SM2
      pos:
        line_end: 2343
        line_start: 2342
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_HASH
    - item_type: preproc_def
      name: TYPE_OF_TPMS_KDF_SCHEME_KDF1_SP800_108
      pos:
        line_end: 2347
        line_start: 2346
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_HASH
    - item_type: preproc_def
      name: TYPE_OF_TPMS_KDF_SCHEME_KDF1_SP800_56A
      pos:
        line_end: 2349
        line_start: 2348
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_HASH
    - item_type: preproc_def
      name: TYPE_OF_TPMS_KDF_SCHEME_KDF2
      pos:
        line_end: 2351
        line_start: 2350
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_HASH
    - item_type: preproc_def
      name: TYPE_OF_TPMS_KDF_SCHEME_MGF1
      pos:
        line_end: 2353
        line_start: 2352
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SCHEME_HASH
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SIGNATURE_RSAPSS
      pos:
        line_end: 2520
        line_start: 2519
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SIGNATURE_RSA
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SIGNATURE_RSASSA
      pos:
        line_end: 2522
        line_start: 2521
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SIGNATURE_RSA
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SIGNATURE_ECDAA
      pos:
        line_end: 2533
        line_start: 2532
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SIGNATURE_ECC
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SIGNATURE_ECDSA
      pos:
        line_end: 2535
        line_start: 2534
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SIGNATURE_ECC
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SIGNATURE_ECSCHNORR
      pos:
        line_end: 2537
        line_start: 2536
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SIGNATURE_ECC
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SIGNATURE_EDDSA
      pos:
        line_end: 2539
        line_start: 2538
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SIGNATURE_ECC
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SIGNATURE_EDDSA_PH
      pos:
        line_end: 2541
        line_start: 2540
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SIGNATURE_ECC
    - item_type: preproc_def
      name: TYPE_OF_TPMS_SIGNATURE_SM2
      pos:
        line_end: 2543
        line_start: 2542
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: TPMS_SIGNATURE_ECC
    - item_type: preproc_def
      name: TYPE_OF_TPM_NV_INDEX
      pos:
        line_end: 2784
        line_start: 2783
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPM_NV_INDEX_index
      pos:
        line_end: 2810
        line_start: 2809
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_NV_INDEX)(0xFFFFFF << 0)
    - item_type: preproc_def
      name: TPM_NV_INDEX_index_SHIFT
      pos:
        line_end: 2811
        line_start: 2810
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TPM_NV_INDEX_RH_NV
      pos:
        line_end: 2812
        line_start: 2811
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: "(TPM_NV_INDEX)((UINT32)0xFF << 24)\t// libtpms changed: UBSAN"
    - item_type: preproc_def
      name: TPM_NV_INDEX_RH_NV_SHIFT
      pos:
        line_end: 2813
        line_start: 2812
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '24'
    - item_type: preproc_def
      name: TYPE_OF_TPM_NT
      pos:
        line_end: 2823
        line_start: 2822
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPM_NT_ORDINARY
      pos:
        line_end: 2824
        line_start: 2823
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_NT)(0x0)
    - item_type: preproc_def
      name: TPM_NT_COUNTER
      pos:
        line_end: 2825
        line_start: 2824
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_NT)(0x1)
    - item_type: preproc_def
      name: TPM_NT_BITS
      pos:
        line_end: 2826
        line_start: 2825
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_NT)(0x2)
    - item_type: preproc_def
      name: TPM_NT_EXTEND
      pos:
        line_end: 2827
        line_start: 2826
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_NT)(0x4)
    - item_type: preproc_def
      name: TPM_NT_PIN_FAIL
      pos:
        line_end: 2828
        line_start: 2827
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_NT)(0x8)
    - item_type: preproc_def
      name: TPM_NT_PIN_PASS
      pos:
        line_end: 2829
        line_start: 2828
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_NT)(0x9)
    - item_type: preproc_def
      name: TYPE_OF_TPMA_NV
      pos:
        line_end: 2838
        line_start: 2837
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPMA_NV_PPWRITE
      pos:
        line_end: 2912
        line_start: 2911
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 0)
    - item_type: preproc_def
      name: TPMA_NV_OWNERWRITE
      pos:
        line_end: 2913
        line_start: 2912
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 1)
    - item_type: preproc_def
      name: TPMA_NV_AUTHWRITE
      pos:
        line_end: 2914
        line_start: 2913
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 2)
    - item_type: preproc_def
      name: TPMA_NV_POLICYWRITE
      pos:
        line_end: 2915
        line_start: 2914
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 3)
    - item_type: preproc_def
      name: TPMA_NV_TPM_NT
      pos:
        line_end: 2916
        line_start: 2915
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(0xF << 4)
    - item_type: preproc_def
      name: TPMA_NV_TPM_NT_SHIFT
      pos:
        line_end: 2917
        line_start: 2916
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TPMA_NV_POLICY_DELETE
      pos:
        line_end: 2918
        line_start: 2917
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 10)
    - item_type: preproc_def
      name: TPMA_NV_WRITELOCKED
      pos:
        line_end: 2919
        line_start: 2918
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 11)
    - item_type: preproc_def
      name: TPMA_NV_WRITEALL
      pos:
        line_end: 2920
        line_start: 2919
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 12)
    - item_type: preproc_def
      name: TPMA_NV_WRITEDEFINE
      pos:
        line_end: 2921
        line_start: 2920
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 13)
    - item_type: preproc_def
      name: TPMA_NV_WRITE_STCLEAR
      pos:
        line_end: 2922
        line_start: 2921
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 14)
    - item_type: preproc_def
      name: TPMA_NV_GLOBALLOCK
      pos:
        line_end: 2923
        line_start: 2922
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 15)
    - item_type: preproc_def
      name: TPMA_NV_PPREAD
      pos:
        line_end: 2924
        line_start: 2923
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 16)
    - item_type: preproc_def
      name: TPMA_NV_OWNERREAD
      pos:
        line_end: 2925
        line_start: 2924
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 17)
    - item_type: preproc_def
      name: TPMA_NV_AUTHREAD
      pos:
        line_end: 2926
        line_start: 2925
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 18)
    - item_type: preproc_def
      name: TPMA_NV_POLICYREAD
      pos:
        line_end: 2927
        line_start: 2926
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 19)
    - item_type: preproc_def
      name: TPMA_NV_NO_DA
      pos:
        line_end: 2928
        line_start: 2927
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 25)
    - item_type: preproc_def
      name: TPMA_NV_ORDERLY
      pos:
        line_end: 2929
        line_start: 2928
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 26)
    - item_type: preproc_def
      name: TPMA_NV_CLEAR_STCLEAR
      pos:
        line_end: 2930
        line_start: 2929
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 27)
    - item_type: preproc_def
      name: TPMA_NV_READLOCKED
      pos:
        line_end: 2931
        line_start: 2930
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 28)
    - item_type: preproc_def
      name: TPMA_NV_WRITTEN
      pos:
        line_end: 2932
        line_start: 2931
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 29)
    - item_type: preproc_def
      name: TPMA_NV_PLATFORMCREATE
      pos:
        line_end: 2933
        line_start: 2932
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV)(1 << 30)
    - item_type: preproc_def
      name: TPMA_NV_READ_STCLEAR
      pos:
        line_end: 2934
        line_start: 2933
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: "(TPMA_NV)((UINT32)1 << 31)\t\t\t// libtpms changed: UBSAN"
    - item_type: preproc_def
      name: TPMA_NV_RESERVED
      pos:
        line_end: 2935
        line_start: 2934
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: "(0x00000300 | 0x01f00000)\t\t\t// libtpms added"
    - item_type: preproc_def
      name: TYPE_OF_TPMA_NV_EXP
      pos:
        line_end: 2974
        line_start: 2973
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT64
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_PPWRITE
      pos:
        line_end: 3061
        line_start: 3060
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 0)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_OWNERWRITE
      pos:
        line_end: 3062
        line_start: 3061
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 1)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_AUTHWRITE
      pos:
        line_end: 3063
        line_start: 3062
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 2)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_POLICYWRITE
      pos:
        line_end: 3064
        line_start: 3063
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 3)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPM_NT
      pos:
        line_end: 3065
        line_start: 3064
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(0xF << 4)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPM_NT_SHIFT
      pos:
        line_end: 3066
        line_start: 3065
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_POLICY_DELETE
      pos:
        line_end: 3067
        line_start: 3066
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 10)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_WRITELOCKED
      pos:
        line_end: 3068
        line_start: 3067
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 11)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_WRITEALL
      pos:
        line_end: 3069
        line_start: 3068
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 12)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_WRITEDEFINE
      pos:
        line_end: 3070
        line_start: 3069
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 13)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_WRITE_STCLEAR
      pos:
        line_end: 3071
        line_start: 3070
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 14)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_GLOBALLOCK
      pos:
        line_end: 3072
        line_start: 3071
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 15)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_PPREAD
      pos:
        line_end: 3073
        line_start: 3072
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 16)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_OWNERREAD
      pos:
        line_end: 3074
        line_start: 3073
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 17)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_AUTHREAD
      pos:
        line_end: 3075
        line_start: 3074
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 18)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_POLICYREAD
      pos:
        line_end: 3076
        line_start: 3075
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 19)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_NO_DA
      pos:
        line_end: 3077
        line_start: 3076
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 25)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_ORDERLY
      pos:
        line_end: 3078
        line_start: 3077
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 26)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_CLEAR_STCLEAR
      pos:
        line_end: 3079
        line_start: 3078
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 27)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_READLOCKED
      pos:
        line_end: 3080
        line_start: 3079
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 28)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_WRITTEN
      pos:
        line_end: 3081
        line_start: 3080
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 29)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_PLATFORMCREATE
      pos:
        line_end: 3082
        line_start: 3081
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)(1 << 30)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_NV_READ_STCLEAR
      pos:
        line_end: 3083
        line_start: 3082
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: "(TPMA_NV_EXP)((UINT64)1 << 31)\t// libtpms changed begin: UBSAN"
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_EXTERNAL_NV_ENCRYPTION
      pos:
        line_end: 3084
        line_start: 3083
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)((UINT64)1 << 32)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_EXTERNAL_NV_INTEGRITY
      pos:
        line_end: 3085
        line_start: 3084
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPMA_NV_EXP)((UINT64)1 << 33)
    - item_type: preproc_def
      name: TPMA_NV_EXP_TPMA_EXTERNAL_NV_ANTIROLLBACK
      pos:
        line_end: 3086
        line_start: 3085
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: "(TPMA_NV_EXP)((UINT64)1 << 34)\t// libtpms changed end"
    - item_type: preproc_def
      name: TPMA_NV_EXP_reserved
      pos:
        line_end: 3087
        line_start: 3086
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: "0xfffffff800000000L\t\t\t// libtpms added"
    - item_type: preproc_def
      name: TYPE_OF_TPM_AT
      pos:
        line_end: 3231
        line_start: 3230
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPM_AT_ANY
      pos:
        line_end: 3232
        line_start: 3231
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_AT)(0x00000000)
    - item_type: preproc_def
      name: TPM_AT_ERROR
      pos:
        line_end: 3233
        line_start: 3232
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_AT)(0x00000001)
    - item_type: preproc_def
      name: TPM_AT_PV1
      pos:
        line_end: 3234
        line_start: 3233
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_AT)(0x00000002)
    - item_type: preproc_def
      name: TPM_AT_VEND
      pos:
        line_end: 3235
        line_start: 3234
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_AT)(0x80000000)
    - item_type: preproc_def
      name: TYPE_OF_TPM_AE
      pos:
        line_end: 3239
        line_start: 3238
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: UINT32
    - item_type: preproc_def
      name: TPM_AE_NONE
      pos:
        line_end: 3240
        line_start: 3239
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type_or_value: (TPM_AE)(0x00000000)
    structs:
    - fields:
      - name: asymmetric
        type: unsigned
      - name: symmetric
        type: unsigned
      - name: hash
        type: unsigned
      - name: object
        type: unsigned
      - name: Reserved_bits_at_4
        type: unsigned
      - name: signing
        type: unsigned
      - name: encrypting
        type: unsigned
      - name: method
        type: unsigned
      - name: Reserved_bits_at_11
        type: unsigned
      item_type: struct
      name: TPMA_ALGORITHM
      pos:
        line_end: 1006
        line_start: 995
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: Reserved_bit_at_0
        type: unsigned
      - name: fixedTPM
        type: unsigned
      - name: stClear
        type: unsigned
      - name: Reserved_bit_at_3
        type: unsigned
      - name: fixedParent
        type: unsigned
      - name: sensitiveDataOrigin
        type: unsigned
      - name: userWithAuth
        type: unsigned
      - name: adminWithPolicy
        type: unsigned
      - name: firmwareLimited
        type: unsigned
      - name: svnLimited
        type: unsigned
      - name: noDA
        type: unsigned
      - name: encryptedDuplication
        type: unsigned
      - name: Reserved_bits_at_12
        type: unsigned
      - name: restricted
        type: unsigned
      - name: decrypt
        type: unsigned
      - name: sign
        type: unsigned
      - name: x509sign
        type: unsigned
      - name: Reserved_bits_at_20
        type: unsigned
      item_type: struct
      name: TPMA_OBJECT
      pos:
        line_end: 1083
        line_start: 1063
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: continueSession
        type: unsigned
      - name: auditExclusive
        type: unsigned
      - name: auditReset
        type: unsigned
      - name: Reserved_bits_at_3
        type: unsigned
      - name: decrypt
        type: unsigned
      - name: encrypt
        type: unsigned
      - name: audit
        type: unsigned
      item_type: struct
      name: TPMA_SESSION
      pos:
        line_end: 1128
        line_start: 1119
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: TPM_LOC_ZERO
        type: unsigned
      - name: TPM_LOC_ONE
        type: unsigned
      - name: TPM_LOC_TWO
        type: unsigned
      - name: TPM_LOC_THREE
        type: unsigned
      - name: TPM_LOC_FOUR
        type: unsigned
      - name: Extended
        type: unsigned
      item_type: struct
      name: TPMA_LOCALITY
      pos:
        line_end: 1188
        line_start: 1180
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: ownerAuthSet
        type: unsigned
      - name: endorsementAuthSet
        type: unsigned
      - name: lockoutAuthSet
        type: unsigned
      - name: Reserved_bits_at_3
        type: unsigned
      - name: disableClear
        type: unsigned
      - name: inLockout
        type: unsigned
      - name: tpmGeneratedEPS
        type: unsigned
      - name: Reserved_bits_at_11
        type: unsigned
      item_type: struct
      name: TPMA_PERMANENT
      pos:
        line_end: 1240
        line_start: 1230
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: phEnable
        type: unsigned
      - name: shEnable
        type: unsigned
      - name: ehEnable
        type: unsigned
      - name: phEnableNV
        type: unsigned
      - name: Reserved_bits_at_4
        type: unsigned
      - name: orderly
        type: unsigned
      item_type: struct
      name: TPMA_STARTUP_CLEAR
      pos:
        line_end: 1301
        line_start: 1293
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: sharedRAM
        type: unsigned
      - name: sharedNV
        type: unsigned
      - name: objectCopiedToRam
        type: unsigned
      - name: Reserved_bits_at_3
        type: unsigned
      item_type: struct
      name: TPMA_MEMORY
      pos:
        line_end: 1345
        line_start: 1339
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: commandIndex
        type: unsigned
      - name: Reserved_bits_at_16
        type: unsigned
      - name: nv
        type: unsigned
      - name: extensive
        type: unsigned
      - name: flushed
        type: unsigned
      - name: cHandles
        type: unsigned
      - name: rHandle
        type: unsigned
      - name: V
        type: unsigned
      - name: Reserved_bits_at_30
        type: unsigned
      item_type: struct
      name: TPMA_CC
      pos:
        line_end: 1388
        line_start: 1377
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: FIPS_140_2
        type: unsigned
      - name: FIPS_140_3
        type: unsigned
      - name: FIPS_140_3_INDICATOR
        type: unsigned
      - name: Reserved_bits_at_4
        type: unsigned
      item_type: struct
      name: TPMA_MODES
      pos:
        line_end: 1452
        line_start: 1446
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: Reserved_bits_at_0
        type: unsigned
      - name: decipherOnly
        type: unsigned
      - name: encipherOnly
        type: unsigned
      - name: cRLSign
        type: unsigned
      - name: keyCertSign
        type: unsigned
      - name: keyAgreement
        type: unsigned
      - name: dataEncipherment
        type: unsigned
      - name: keyEncipherment
        type: unsigned
      - name: nonrepudiation
        type: unsigned
      - name: digitalSignature
        type: unsigned
      item_type: struct
      name: TPMA_X509_KEY_USAGE
      pos:
        line_end: 1502
        line_start: 1490
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: signaled
        type: unsigned
      - name: preserveSignaled
        type: unsigned
      - name: Reserved_bits_at_2
        type: unsigned
      item_type: struct
      name: TPMA_ACT
      pos:
        line_end: 1569
        line_start: 1564
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: alg
        type: TPM_ALG_ID
      - name: attributes
        type: TPMA_ALGORITHM
      item_type: struct
      name: TPMS_ALGORITHM_DESCRIPTION
      pos:
        line_end: 1635
        line_start: 1631
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: hashAlg
        type: TPMI_ALG_HASH
      - name: digest
        type: TPMU_HA
      item_type: struct
      name: TPMT_HA
      pos:
        line_end: 1681
        line_start: 1677
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: sizeofSelect
        type: UINT8
      - name: pcrSelect[PCR_SELECT_MAX]
        type: BYTE
      item_type: struct
      name: TPMS_PCR_SELECT
      pos:
        line_end: 1795
        line_start: 1791
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: hash
        type: TPMI_ALG_HASH
      - name: sizeofSelect
        type: UINT8
      - name: pcrSelect[PCR_SELECT_MAX]
        type: BYTE
      item_type: struct
      name: TPMS_PCR_SELECTION
      pos:
        line_end: 1802
        line_start: 1797
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: tag
        type: TPM_ST
      - name: hierarchy
        type: TPMI_RH_HIERARCHY
      - name: digest
        type: TPM2B_DIGEST
      item_type: struct
      name: TPMT_TK_CREATION
      pos:
        line_end: 1809
        line_start: 1804
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: tag
        type: TPM_ST
      - name: hierarchy
        type: TPMI_RH_HIERARCHY
      - name: digest
        type: TPM2B_DIGEST
      item_type: struct
      name: TPMT_TK_VERIFIED
      pos:
        line_end: 1816
        line_start: 1811
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: tag
        type: TPM_ST
      - name: hierarchy
        type: TPMI_RH_HIERARCHY
      - name: digest
        type: TPM2B_DIGEST
      item_type: struct
      name: TPMT_TK_AUTH
      pos:
        line_end: 1823
        line_start: 1818
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: tag
        type: TPM_ST
      - name: hierarchy
        type: TPMI_RH_HIERARCHY
      - name: digest
        type: TPM2B_DIGEST
      item_type: struct
      name: TPMT_TK_HASHCHECK
      pos:
        line_end: 1830
        line_start: 1825
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: alg
        type: TPM_ALG_ID
      - name: algProperties
        type: TPMA_ALGORITHM
      item_type: struct
      name: TPMS_ALG_PROPERTY
      pos:
        line_end: 1836
        line_start: 1832
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: property
        type: TPM_PT
      - name: value
        type: UINT32
      item_type: struct
      name: TPMS_TAGGED_PROPERTY
      pos:
        line_end: 1842
        line_start: 1838
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: tag
        type: TPM_PT_PCR
      - name: sizeofSelect
        type: UINT8
      - name: pcrSelect[PCR_SELECT_MAX]
        type: BYTE
      item_type: struct
      name: TPMS_TAGGED_PCR_SELECT
      pos:
        line_end: 1849
        line_start: 1844
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: handle
        type: TPM_HANDLE
      - name: policyHash
        type: TPMT_HA
      item_type: struct
      name: TPMS_TAGGED_POLICY
      pos:
        line_end: 1855
        line_start: 1851
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: handle
        type: TPM_HANDLE
      - name: timeout
        type: UINT32
      - name: attributes
        type: TPMA_ACT
      item_type: struct
      name: TPMS_ACT_DATA
      pos:
        line_end: 1862
        line_start: 1857
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: count
        type: UINT32
      - name: commandCodes[MAX_CAP_CC]
        type: TPM_CC
      item_type: struct
      name: TPML_CC
      pos:
        line_end: 1868
        line_start: 1864
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: count
        type: UINT32
      - name: commandAttributes[MAX_CAP_CC]
        type: TPMA_CC
      item_type: struct
      name: TPML_CCA
      pos:
        line_end: 1874
        line_start: 1870
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: count
        type: UINT32
      - name: algorithms[MAX_ALG_LIST_SIZE]
        type: TPM_ALG_ID
      item_type: struct
      name: TPML_ALG
      pos:
        line_end: 1880
        line_start: 1876
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: count
        type: UINT32
      - name: handle[MAX_CAP_HANDLES]
        type: TPM_HANDLE
      item_type: struct
      name: TPML_HANDLE
      pos:
        line_end: 1886
        line_start: 1882
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: count
        type: UINT32
      - name: digests[8]
        type: TPM2B_DIGEST
      item_type: struct
      name: TPML_DIGEST
      pos:
        line_end: 1892
        line_start: 1888
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: count
        type: UINT32
      - name: digests[HASH_COUNT]
        type: TPMT_HA
      item_type: struct
      name: TPML_DIGEST_VALUES
      pos:
        line_end: 1898
        line_start: 1894
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: count
        type: UINT32
      - name: pcrSelections[HASH_COUNT]
        type: TPMS_PCR_SELECTION
      item_type: struct
      name: TPML_PCR_SELECTION
      pos:
        line_end: 1904
        line_start: 1900
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: count
        type: UINT32
      - name: algProperties[MAX_CAP_ALGS]
        type: TPMS_ALG_PROPERTY
      item_type: struct
      name: TPML_ALG_PROPERTY
      pos:
        line_end: 1910
        line_start: 1906
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: count
        type: UINT32
      - name: tpmProperty[MAX_TPM_PROPERTIES]
        type: TPMS_TAGGED_PROPERTY
      item_type: struct
      name: TPML_TAGGED_TPM_PROPERTY
      pos:
        line_end: 1916
        line_start: 1912
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: count
        type: UINT32
      - name: pcrProperty[MAX_PCR_PROPERTIES]
        type: TPMS_TAGGED_PCR_SELECT
      item_type: struct
      name: TPML_TAGGED_PCR_PROPERTY
      pos:
        line_end: 1922
        line_start: 1918
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: count
        type: UINT32
      - name: eccCurves[MAX_ECC_CURVES]
        type: TPM_ECC_CURVE
      item_type: struct
      name: TPML_ECC_CURVE
      pos:
        line_end: 1928
        line_start: 1924
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: count
        type: UINT32
      - name: policies[MAX_TAGGED_POLICIES]
        type: TPMS_TAGGED_POLICY
      item_type: struct
      name: TPML_TAGGED_POLICY
      pos:
        line_end: 1934
        line_start: 1930
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: count
        type: UINT32
      - name: actData[MAX_ACT_DATA]
        type: TPMS_ACT_DATA
      item_type: struct
      name: TPML_ACT_DATA
      pos:
        line_end: 1940
        line_start: 1936
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: count
        type: UINT32
      - name: vendorData[MAX_VENDOR_PROPERTY]
        type: TPM2B_VENDOR_PROPERTY
      item_type: struct
      name: TPML_VENDOR_PROPERTY
      pos:
        line_end: 1946
        line_start: 1942
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: capability
        type: TPM_CAP
      - name: data
        type: TPMU_CAPABILITIES
      item_type: struct
      name: TPMS_CAPABILITY_DATA
      pos:
        line_end: 1969
        line_start: 1965
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: setCapability
        type: TPM_CAP
      - name: data
        type: TPMU_SET_CAPABILITIES
      item_type: struct
      name: TPMS_SET_CAPABILITY_DATA
      pos:
        line_end: 1981
        line_start: 1977
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: size
        type: UINT16
      - name: setCapabilityData
        type: TPMS_SET_CAPABILITY_DATA
      item_type: struct
      name: TPM2B_SET_CAPABILITY_DATA
      pos:
        line_end: 1987
        line_start: 1983
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: clock
        type: UINT64
      - name: resetCount
        type: UINT32
      - name: restartCount
        type: UINT32
      - name: safe
        type: TPMI_YES_NO
      item_type: struct
      name: TPMS_CLOCK_INFO
      pos:
        line_end: 1995
        line_start: 1989
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: time
        type: UINT64
      - name: clockInfo
        type: TPMS_CLOCK_INFO
      item_type: struct
      name: TPMS_TIME_INFO
      pos:
        line_end: 2001
        line_start: 1997
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: time
        type: TPMS_TIME_INFO
      - name: firmwareVersion
        type: UINT64
      item_type: struct
      name: TPMS_TIME_ATTEST_INFO
      pos:
        line_end: 2007
        line_start: 2003
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: name
        type: TPM2B_NAME
      - name: qualifiedName
        type: TPM2B_NAME
      item_type: struct
      name: TPMS_CERTIFY_INFO
      pos:
        line_end: 2013
        line_start: 2009
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: pcrSelect
        type: TPML_PCR_SELECTION
      - name: pcrDigest
        type: TPM2B_DIGEST
      item_type: struct
      name: TPMS_QUOTE_INFO
      pos:
        line_end: 2019
        line_start: 2015
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: auditCounter
        type: UINT64
      - name: digestAlg
        type: TPM_ALG_ID
      - name: auditDigest
        type: TPM2B_DIGEST
      - name: commandDigest
        type: TPM2B_DIGEST
      item_type: struct
      name: TPMS_COMMAND_AUDIT_INFO
      pos:
        line_end: 2027
        line_start: 2021
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: exclusiveSession
        type: TPMI_YES_NO
      - name: sessionDigest
        type: TPM2B_DIGEST
      item_type: struct
      name: TPMS_SESSION_AUDIT_INFO
      pos:
        line_end: 2033
        line_start: 2029
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: objectName
        type: TPM2B_NAME
      - name: creationHash
        type: TPM2B_DIGEST
      item_type: struct
      name: TPMS_CREATION_INFO
      pos:
        line_end: 2039
        line_start: 2035
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: indexName
        type: TPM2B_NAME
      - name: offset
        type: UINT16
      - name: nvContents
        type: TPM2B_MAX_NV_BUFFER
      item_type: struct
      name: TPMS_NV_CERTIFY_INFO
      pos:
        line_end: 2046
        line_start: 2041
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: indexName
        type: TPM2B_NAME
      - name: nvDigest
        type: TPM2B_DIGEST
      item_type: struct
      name: TPMS_NV_DIGEST_CERTIFY_INFO
      pos:
        line_end: 2052
        line_start: 2048
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: magic
        type: TPM_CONSTANTS32
      - name: type
        type: TPMI_ST_ATTEST
      - name: qualifiedSigner
        type: TPM2B_NAME
      - name: extraData
        type: TPM2B_DATA
      - name: clockInfo
        type: TPMS_CLOCK_INFO
      - name: firmwareVersion
        type: UINT64
      - name: attested
        type: TPMU_ATTEST
      item_type: struct
      name: TPMS_ATTEST
      pos:
        line_end: 2076
        line_start: 2067
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: sessionHandle
        type: TPMI_SH_AUTH_SESSION
      - name: nonce
        type: TPM2B_NONCE
      - name: sessionAttributes
        type: TPMA_SESSION
      - name: hmac
        type: TPM2B_AUTH
      item_type: struct
      name: TPMS_AUTH_COMMAND
      pos:
        line_end: 2094
        line_start: 2088
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: nonce
        type: TPM2B_NONCE
      - name: sessionAttributes
        type: TPMA_SESSION
      - name: hmac
        type: TPM2B_AUTH
      item_type: struct
      name: TPMS_AUTH_RESPONSE
      pos:
        line_end: 2101
        line_start: 2096
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: algorithm
        type: TPMI_ALG_SYM
      - name: keyBits
        type: TPMU_SYM_KEY_BITS
      - name: mode
        type: TPMU_SYM_MODE
      item_type: struct
      name: TPMT_SYM_DEF
      pos:
        line_end: 2149
        line_start: 2144
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: algorithm
        type: TPMI_ALG_SYM_OBJECT
      - name: keyBits
        type: TPMU_SYM_KEY_BITS
      - name: mode
        type: TPMU_SYM_MODE
      item_type: struct
      name: TPMT_SYM_DEF_OBJECT
      pos:
        line_end: 2156
        line_start: 2151
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: sym
        type: TPMT_SYM_DEF_OBJECT
      item_type: struct
      name: TPMS_SYMCIPHER_PARMS
      pos:
        line_end: 2171
        line_start: 2168
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: label
        type: TPM2B_LABEL
      - name: context
        type: TPM2B_LABEL
      item_type: struct
      name: TPMS_DERIVE
      pos:
        line_end: 2187
        line_start: 2183
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: userAuth
        type: TPM2B_AUTH
      - name: data
        type: TPM2B_SENSITIVE_DATA
      item_type: struct
      name: TPMS_SENSITIVE_CREATE
      pos:
        line_end: 2219
        line_start: 2215
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: size
        type: UINT16
      - name: sensitive
        type: TPMS_SENSITIVE_CREATE
      item_type: struct
      name: TPM2B_SENSITIVE_CREATE
      pos:
        line_end: 2225
        line_start: 2221
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: hashAlg
        type: TPMI_ALG_HASH
      item_type: struct
      name: TPMS_SCHEME_HASH
      pos:
        line_end: 2230
        line_start: 2227
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: hashAlg
        type: TPMI_ALG_HASH
      - name: count
        type: UINT16
      item_type: struct
      name: TPMS_SCHEME_ECDAA
      pos:
        line_end: 2236
        line_start: 2232
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: hashAlg
        type: TPMI_ALG_HASH
      - name: kdf
        type: TPMI_ALG_KDF
      item_type: struct
      name: TPMS_SCHEME_XOR
      pos:
        line_end: 2248
        line_start: 2244
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: scheme
        type: TPMI_ALG_KEYEDHASH_SCHEME
      - name: details
        type: TPMU_SCHEME_KEYEDHASH
      item_type: struct
      name: TPMT_KEYEDHASH_SCHEME
      pos:
        line_end: 2264
        line_start: 2260
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: scheme
        type: TPMI_ALG_SIG_SCHEME
      - name: details
        type: TPMU_SIG_SCHEME
      item_type: struct
      name: TPMT_SIG_SCHEME
      pos:
        line_end: 2328
        line_start: 2324
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: scheme
        type: TPMI_ALG_KDF
      - name: details
        type: TPMU_KDF_SCHEME
      item_type: struct
      name: TPMT_KDF_SCHEME
      pos:
        line_end: 2375
        line_start: 2371
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: scheme
        type: TPMI_ALG_ASYM_SCHEME
      - name: details
        type: TPMU_ASYM_SCHEME
      item_type: struct
      name: TPMT_ASYM_SCHEME
      pos:
        line_end: 2429
        line_start: 2425
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: scheme
        type: TPMI_ALG_RSA_SCHEME
      - name: details
        type: TPMU_ASYM_SCHEME
      item_type: struct
      name: TPMT_RSA_SCHEME
      pos:
        line_end: 2436
        line_start: 2432
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: scheme
        type: TPMI_ALG_RSA_DECRYPT
      - name: details
        type: TPMU_ASYM_SCHEME
      item_type: struct
      name: TPMT_RSA_DECRYPT
      pos:
        line_end: 2443
        line_start: 2439
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: x
        type: TPM2B_ECC_PARAMETER
      - name: y
        type: TPM2B_ECC_PARAMETER
      item_type: struct
      name: TPMS_ECC_POINT
      pos:
        line_end: 2480
        line_start: 2476
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: size
        type: UINT16
      - name: point
        type: TPMS_ECC_POINT
      item_type: struct
      name: TPM2B_ECC_POINT
      pos:
        line_end: 2486
        line_start: 2482
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: scheme
        type: TPMI_ALG_ECC_SCHEME
      - name: details
        type: TPMU_ASYM_SCHEME
      item_type: struct
      name: TPMT_ECC_SCHEME
      pos:
        line_end: 2494
        line_start: 2490
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: curveID
        type: TPM_ECC_CURVE
      - name: keySize
        type: UINT16
      - name: kdf
        type: TPMT_KDF_SCHEME
      - name: sign
        type: TPMT_ECC_SCHEME
      - name: p
        type: TPM2B_ECC_PARAMETER
      - name: a
        type: TPM2B_ECC_PARAMETER
      - name: b
        type: TPM2B_ECC_PARAMETER
      - name: gX
        type: TPM2B_ECC_PARAMETER
      - name: gY
        type: TPM2B_ECC_PARAMETER
      - name: n
        type: TPM2B_ECC_PARAMETER
      - name: h
        type: TPM2B_ECC_PARAMETER
      item_type: struct
      name: TPMS_ALGORITHM_DETAIL_ECC
      pos:
        line_end: 2509
        line_start: 2496
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: hash
        type: TPMI_ALG_HASH
      - name: sig
        type: TPM2B_PUBLIC_KEY_RSA
      item_type: struct
      name: TPMS_SIGNATURE_RSA
      pos:
        line_end: 2515
        line_start: 2511
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: hash
        type: TPMI_ALG_HASH
      - name: signatureR
        type: TPM2B_ECC_PARAMETER
      - name: signatureS
        type: TPM2B_ECC_PARAMETER
      item_type: struct
      name: TPMS_SIGNATURE_ECC
      pos:
        line_end: 2528
        line_start: 2523
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: sigAlg
        type: TPMI_ALG_SIG_SCHEME
      - name: signature
        type: TPMU_SIGNATURE
      item_type: struct
      name: TPMT_SIGNATURE
      pos:
        line_end: 2586
        line_start: 2582
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: scheme
        type: TPMT_KEYEDHASH_SCHEME
      item_type: struct
      name: TPMS_KEYEDHASH_PARMS
      pos:
        line_end: 2635
        line_start: 2632
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: symmetric
        type: TPMT_SYM_DEF_OBJECT
      - name: scheme
        type: TPMT_ASYM_SCHEME
      item_type: struct
      name: TPMS_ASYM_PARMS
      pos:
        line_end: 2641
        line_start: 2637
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: symmetric
        type: TPMT_SYM_DEF_OBJECT
      - name: scheme
        type: TPMT_RSA_SCHEME
      - name: keyBits
        type: TPMI_RSA_KEY_BITS
      - name: exponent
        type: UINT32
      item_type: struct
      name: TPMS_RSA_PARMS
      pos:
        line_end: 2649
        line_start: 2643
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: symmetric
        type: TPMT_SYM_DEF_OBJECT
      - name: scheme
        type: TPMT_ECC_SCHEME
      - name: curveID
        type: TPMI_ECC_CURVE
      - name: kdf
        type: TPMT_KDF_SCHEME
      item_type: struct
      name: TPMS_ECC_PARMS
      pos:
        line_end: 2657
        line_start: 2651
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: type
        type: TPMI_ALG_PUBLIC
      - name: parameters
        type: TPMU_PUBLIC_PARMS
      item_type: struct
      name: TPMT_PUBLIC_PARMS
      pos:
        line_end: 2680
        line_start: 2676
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: type
        type: TPMI_ALG_PUBLIC
      - name: nameAlg
        type: TPMI_ALG_HASH
      - name: objectAttributes
        type: TPMA_OBJECT
      - name: authPolicy
        type: TPM2B_DIGEST
      - name: parameters
        type: TPMU_PUBLIC_PARMS
      - name: unique
        type: TPMU_PUBLIC_ID
      item_type: struct
      name: TPMT_PUBLIC
      pos:
        line_end: 2690
        line_start: 2682
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: size
        type: UINT16
      - name: publicArea
        type: TPMT_PUBLIC
      item_type: struct
      name: TPM2B_PUBLIC
      pos:
        line_end: 2696
        line_start: 2692
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: sensitiveType
        type: TPMI_ALG_PUBLIC
      - name: authValue
        type: TPM2B_AUTH
      - name: seedValue
        type: TPM2B_DIGEST
      - name: sensitive
        type: TPMU_SENSITIVE_COMPOSITE
      item_type: struct
      name: TPMT_SENSITIVE
      pos:
        line_end: 2741
        line_start: 2735
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: size
        type: UINT16
      - name: sensitiveArea
        type: TPMT_SENSITIVE
      item_type: struct
      name: TPM2B_SENSITIVE
      pos:
        line_end: 2747
        line_start: 2743
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: integrityOuter
        type: TPM2B_DIGEST
      - name: integrityInner
        type: TPM2B_DIGEST
      - name: sensitive
        type: TPM2B_SENSITIVE
      item_type: struct
      name: _PRIVATE
      pos:
        line_end: 2754
        line_start: 2749
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: integrityHMAC
        type: TPM2B_DIGEST
      - name: encIdentity
        type: TPM2B_DIGEST
      item_type: struct
      name: TPMS_ID_OBJECT
      pos:
        line_end: 2770
        line_start: 2766
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: index
        type: unsigned
      - name: RH_NV
        type: unsigned
      item_type: struct
      name: TPM_NV_INDEX
      pos:
        line_end: 2798
        line_start: 2794
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: pinCount
        type: UINT32
      - name: pinLimit
        type: UINT32
      item_type: struct
      name: TPMS_NV_PIN_COUNTER_PARAMETERS
      pos:
        line_end: 2834
        line_start: 2830
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: PPWRITE
        type: unsigned
      - name: OWNERWRITE
        type: unsigned
      - name: AUTHWRITE
        type: unsigned
      - name: POLICYWRITE
        type: unsigned
      - name: TPM_NT
        type: unsigned
      - name: Reserved_bits_at_8
        type: unsigned
      - name: POLICY_DELETE
        type: unsigned
      - name: WRITELOCKED
        type: unsigned
      - name: WRITEALL
        type: unsigned
      - name: WRITEDEFINE
        type: unsigned
      - name: WRITE_STCLEAR
        type: unsigned
      - name: GLOBALLOCK
        type: unsigned
      - name: PPREAD
        type: unsigned
      - name: OWNERREAD
        type: unsigned
      - name: AUTHREAD
        type: unsigned
      - name: POLICYREAD
        type: unsigned
      - name: Reserved_bits_at_20
        type: unsigned
      - name: NO_DA
        type: unsigned
      - name: ORDERLY
        type: unsigned
      - name: CLEAR_STCLEAR
        type: unsigned
      - name: READLOCKED
        type: unsigned
      - name: WRITTEN
        type: unsigned
      - name: PLATFORMCREATE
        type: unsigned
      - name: READ_STCLEAR
        type: unsigned
      item_type: struct
      name: TPMA_NV
      pos:
        line_end: 2873
        line_start: 2847
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: TPMA_NV_PPWRITE
        type: unsigned
      - name: TPMA_NV_OWNERWRITE
        type: unsigned
      - name: TPMA_NV_AUTHWRITE
        type: unsigned
      - name: TPMA_NV_POLICYWRITE
        type: unsigned
      - name: TPM_NT
        type: unsigned
      - name: Reserved_bits_at_8
        type: unsigned
      - name: TPMA_NV_POLICY_DELETE
        type: unsigned
      - name: TPMA_NV_WRITELOCKED
        type: unsigned
      - name: TPMA_NV_WRITEALL
        type: unsigned
      - name: TPMA_NV_WRITEDEFINE
        type: unsigned
      - name: TPMA_NV_WRITE_STCLEAR
        type: unsigned
      - name: TPMA_NV_GLOBALLOCK
        type: unsigned
      - name: TPMA_NV_PPREAD
        type: unsigned
      - name: TPMA_NV_OWNERREAD
        type: unsigned
      - name: TPMA_NV_AUTHREAD
        type: unsigned
      - name: TPMA_NV_POLICYREAD
        type: unsigned
      - name: Reserved_bits_at_20
        type: unsigned
      - name: TPMA_NV_NO_DA
        type: unsigned
      - name: TPMA_NV_ORDERLY
        type: unsigned
      - name: TPMA_NV_CLEAR_STCLEAR
        type: unsigned
      - name: TPMA_NV_READLOCKED
        type: unsigned
      - name: TPMA_NV_WRITTEN
        type: unsigned
      - name: TPMA_NV_PLATFORMCREATE
        type: unsigned
      - name: TPMA_NV_READ_STCLEAR
        type: unsigned
      - name: TPMA_EXTERNAL_NV_ENCRYPTION
        type: unsigned
      - name: TPMA_EXTERNAL_NV_INTEGRITY
        type: unsigned
      - name: TPMA_EXTERNAL_NV_ANTIROLLBACK
        type: unsigned
      - name: Reserved_bits_at_35
        type: unsigned
      item_type: struct
      name: TPMA_NV_EXP
      pos:
        line_end: 3014
        line_start: 2984
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: nvIndex
        type: TPMI_RH_NV_LEGACY_INDEX
      - name: nameAlg
        type: TPMI_ALG_HASH
      - name: attributes
        type: TPMA_NV
      - name: authPolicy
        type: TPM2B_DIGEST
      - name: dataSize
        type: UINT16
      item_type: struct
      name: TPMS_NV_PUBLIC
      pos:
        line_end: 3141
        line_start: 3134
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: size
        type: UINT16
      - name: nvPublic
        type: TPMS_NV_PUBLIC
      item_type: struct
      name: TPM2B_NV_PUBLIC
      pos:
        line_end: 3147
        line_start: 3143
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: nvIndex
        type: TPMI_RH_NV_EXP_INDEX
      - name: nameAlg
        type: TPMI_ALG_HASH
      - name: attributes
        type: TPMA_NV_EXP
      - name: authPolicy
        type: TPM2B_DIGEST
      - name: dataSize
        type: UINT16
      item_type: struct
      name: TPMS_NV_PUBLIC_EXP_ATTR
      pos:
        line_end: 3156
        line_start: 3149
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: handleType
        type: TPM_HT
      - name: nvPublic2
        type: TPMU_NV_PUBLIC_2
      item_type: struct
      name: TPMT_NV_PUBLIC_2
      pos:
        line_end: 3169
        line_start: 3165
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: size
        type: UINT16
      - name: nvPublic2
        type: TPMT_NV_PUBLIC_2
      item_type: struct
      name: TPM2B_NV_PUBLIC_2
      pos:
        line_end: 3175
        line_start: 3171
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: integrity
        type: TPM2B_DIGEST
      - name: encrypted
        type: TPM2B_CONTEXT_SENSITIVE
      item_type: struct
      name: TPMS_CONTEXT_DATA
      pos:
        line_end: 3191
        line_start: 3187
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: sequence
        type: UINT64
      - name: savedHandle
        type: TPMI_DH_SAVED
      - name: hierarchy
        type: TPMI_RH_HIERARCHY
      - name: contextBlob
        type: TPM2B_CONTEXT_DATA
      item_type: struct
      name: TPMS_CONTEXT
      pos:
        line_end: 3209
        line_start: 3203
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: pcrSelect
        type: TPML_PCR_SELECTION
      - name: pcrDigest
        type: TPM2B_DIGEST
      - name: locality
        type: TPMA_LOCALITY
      - name: parentNameAlg
        type: TPM_ALG_ID
      - name: parentName
        type: TPM2B_NAME
      - name: parentQualifiedName
        type: TPM2B_NAME
      - name: outsideInfo
        type: TPM2B_DATA
      item_type: struct
      name: TPMS_CREATION_DATA
      pos:
        line_end: 3220
        line_start: 3211
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: size
        type: UINT16
      - name: creationData
        type: TPMS_CREATION_DATA
      item_type: struct
      name: TPM2B_CREATION_DATA
      pos:
        line_end: 3226
        line_start: 3222
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: tag
        type: TPM_AT
      - name: data
        type: UINT32
      item_type: struct
      name: TPMS_AC_OUTPUT
      pos:
        line_end: 3245
        line_start: 3241
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: count
        type: UINT32
      - name: acCapabilities[MAX_AC_CAPABILITIES]
        type: TPMS_AC_OUTPUT
      item_type: struct
      name: TPML_AC_CAPABILITIES
      pos:
        line_end: 3251
        line_start: 3247
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    typedefs:
    - item_type: typedef
      name: TPM_ALGORITHM_ID
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPM_MODIFIER_INDICATOR
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPM_AUTHORIZATION_SIZE
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPM_PARAMETER_SIZE
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPM_KEY_SIZE
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT16
    - item_type: typedef
      name: TPM_KEY_BITS
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT16
    - item_type: typedef
      name: TPM_CONSTANTS32
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPM_ALG_ID
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT16
    - item_type: typedef
      name: TPM_ECC_CURVE
      pos:
        line_end: 214
        line_start: 214
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT16
    - item_type: typedef
      name: TPM_CC
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPM_RC
      pos:
        line_end: 517
        line_start: 517
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPM_CLOCK_ADJUST
      pos:
        line_end: 677
        line_start: 677
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: INT8
    - item_type: typedef
      name: TPM_EO
      pos:
        line_end: 688
        line_start: 688
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT16
    - item_type: typedef
      name: TPM_ST
      pos:
        line_end: 704
        line_start: 704
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT16
    - item_type: typedef
      name: TPM_SU
      pos:
        line_end: 726
        line_start: 726
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT16
    - item_type: typedef
      name: TPM_SE
      pos:
        line_end: 732
        line_start: 732
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT8
    - item_type: typedef
      name: TPM_CAP
      pos:
        line_end: 739
        line_start: 739
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPM_PT
      pos:
        line_end: 757
        line_start: 757
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPM_PT_PCR
      pos:
        line_end: 834
        line_start: 834
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPM_PS
      pos:
        line_end: 855
        line_start: 855
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPM_HANDLE
      pos:
        line_end: 875
        line_start: 875
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPM_HT
      pos:
        line_end: 879
        line_start: 879
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT8
    - item_type: typedef
      name: TPM_RH
      pos:
        line_end: 895
        line_start: 895
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPM_HC
      pos:
        line_end: 931
        line_start: 931
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMA_ALGORITHM
      pos:
        line_end: 1025
        line_start: 1025
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPMA_OBJECT
      pos:
        line_end: 1088
        line_start: 1088
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPMA_SESSION
      pos:
        line_end: 1145
        line_start: 1145
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT8
    - item_type: typedef
      name: TPMA_LOCALITY
      pos:
        line_end: 1200
        line_start: 1200
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT8
    - item_type: typedef
      name: TPMA_PERMANENT
      pos:
        line_end: 1258
        line_start: 1258
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPMA_STARTUP_CLEAR
      pos:
        line_end: 1312
        line_start: 1312
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPMA_MEMORY
      pos:
        line_end: 1355
        line_start: 1355
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPMA_CC
      pos:
        line_end: 1407
        line_start: 1407
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_CC
    - item_type: typedef
      name: TPMA_MODES
      pos:
        line_end: 1463
        line_start: 1463
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPMA_X509_KEY_USAGE
      pos:
        line_end: 1522
        line_start: 1522
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPMA_ACT
      pos:
        line_end: 1579
        line_start: 1579
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPMI_YES_NO
      pos:
        line_end: 1589
        line_start: 1589
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: BYTE
    - item_type: typedef
      name: TPMI_DH_OBJECT
      pos:
        line_end: 1590
        line_start: 1590
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_DH_PARENT
      pos:
        line_end: 1591
        line_start: 1591
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_DH_PERSISTENT
      pos:
        line_end: 1592
        line_start: 1592
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_DH_ENTITY
      pos:
        line_end: 1593
        line_start: 1593
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_DH_PCR
      pos:
        line_end: 1594
        line_start: 1594
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_SH_AUTH_SESSION
      pos:
        line_end: 1595
        line_start: 1595
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_SH_HMAC
      pos:
        line_end: 1596
        line_start: 1596
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_SH_POLICY
      pos:
        line_end: 1597
        line_start: 1597
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_DH_CONTEXT
      pos:
        line_end: 1598
        line_start: 1598
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_DH_SAVED
      pos:
        line_end: 1599
        line_start: 1599
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_HIERARCHY
      pos:
        line_end: 1600
        line_start: 1600
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_ENABLES
      pos:
        line_end: 1601
        line_start: 1601
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_HIERARCHY_AUTH
      pos:
        line_end: 1602
        line_start: 1602
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_HIERARCHY_POLICY
      pos:
        line_end: 1603
        line_start: 1603
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_BASE_HIERARCHY
      pos:
        line_end: 1604
        line_start: 1604
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_PLATFORM
      pos:
        line_end: 1605
        line_start: 1605
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_OWNER
      pos:
        line_end: 1606
        line_start: 1606
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_ENDORSEMENT
      pos:
        line_end: 1607
        line_start: 1607
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_PROVISION
      pos:
        line_end: 1608
        line_start: 1608
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_CLEAR
      pos:
        line_end: 1609
        line_start: 1609
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_NV_AUTH
      pos:
        line_end: 1610
        line_start: 1610
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_LOCKOUT
      pos:
        line_end: 1611
        line_start: 1611
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_NV_INDEX
      pos:
        line_end: 1612
        line_start: 1612
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_NV_DEFINED_INDEX
      pos:
        line_end: 1613
        line_start: 1613
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_NV_LEGACY_INDEX
      pos:
        line_end: 1614
        line_start: 1614
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_NV_EXP_INDEX
      pos:
        line_end: 1615
        line_start: 1615
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_AC
      pos:
        line_end: 1616
        line_start: 1616
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_RH_ACT
      pos:
        line_end: 1617
        line_start: 1617
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_HANDLE
    - item_type: typedef
      name: TPMI_ALG_HASH
      pos:
        line_end: 1618
        line_start: 1618
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ALG_ID
    - item_type: typedef
      name: TPMI_ALG_ASYM
      pos:
        line_end: 1619
        line_start: 1619
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ALG_ID
    - item_type: typedef
      name: TPMI_ALG_SYM
      pos:
        line_end: 1620
        line_start: 1620
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ALG_ID
    - item_type: typedef
      name: TPMI_ALG_SYM_OBJECT
      pos:
        line_end: 1621
        line_start: 1621
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ALG_ID
    - item_type: typedef
      name: TPMI_ALG_SYM_MODE
      pos:
        line_end: 1622
        line_start: 1622
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ALG_ID
    - item_type: typedef
      name: TPMI_ALG_KDF
      pos:
        line_end: 1623
        line_start: 1623
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ALG_ID
    - item_type: typedef
      name: TPMI_ALG_SIG_SCHEME
      pos:
        line_end: 1624
        line_start: 1624
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ALG_ID
    - item_type: typedef
      name: TPMI_ECC_KEY_EXCHANGE
      pos:
        line_end: 1625
        line_start: 1625
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ALG_ID
    - item_type: typedef
      name: TPMI_ST_COMMAND_TAG
      pos:
        line_end: 1626
        line_start: 1626
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ST
    - item_type: typedef
      name: TPMI_ALG_MAC_SCHEME
      pos:
        line_end: 1627
        line_start: 1627
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ALG_ID
    - item_type: typedef
      name: TPMI_ALG_CIPHER_MODE
      pos:
        line_end: 1628
        line_start: 1628
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ALG_ID
    - item_type: typedef
      name: TPMS_EMPTY
      pos:
        line_end: 1629
        line_start: 1629
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: BYTE
    - item_type: typedef
      name: TPM2B_NONCE
      pos:
        line_end: 1704
        line_start: 1704
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM2B_DIGEST
    - item_type: typedef
      name: TPM2B_AUTH
      pos:
        line_end: 1708
        line_start: 1708
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM2B_DIGEST
    - item_type: typedef
      name: TPM2B_OPERAND
      pos:
        line_end: 1712
        line_start: 1712
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM2B_DIGEST
    - item_type: typedef
      name: TPMI_ST_ATTEST
      pos:
        line_end: 2054
        line_start: 2054
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ST
    - item_type: typedef
      name: TPMI_TDES_KEY_BITS
      pos:
        line_end: 2103
        line_start: 2103
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_KEY_BITS
    - item_type: typedef
      name: TPMI_AES_KEY_BITS
      pos:
        line_end: 2104
        line_start: 2104
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_KEY_BITS
    - item_type: typedef
      name: TPMI_SM4_KEY_BITS
      pos:
        line_end: 2105
        line_start: 2105
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_KEY_BITS
    - item_type: typedef
      name: TPMI_CAMELLIA_KEY_BITS
      pos:
        line_end: 2106
        line_start: 2106
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_KEY_BITS
    - item_type: typedef
      name: TPMI_ALG_KEYEDHASH_SCHEME
      pos:
        line_end: 2238
        line_start: 2238
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ALG_ID
    - item_type: typedef
      name: TPMS_SCHEME_HMAC
      pos:
        line_end: 2241
        line_start: 2241
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_HASH
    - item_type: typedef
      name: TPMS_SIG_SCHEME_RSAPSS
      pos:
        line_end: 2267
        line_start: 2267
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_HASH
    - item_type: typedef
      name: TPMS_SIG_SCHEME_RSASSA
      pos:
        line_end: 2269
        line_start: 2269
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_HASH
    - item_type: typedef
      name: TPMS_SIG_SCHEME_ECDAA
      pos:
        line_end: 2273
        line_start: 2273
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_ECDAA
    - item_type: typedef
      name: TPMS_SIG_SCHEME_ECDSA
      pos:
        line_end: 2275
        line_start: 2275
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_HASH
    - item_type: typedef
      name: TPMS_SIG_SCHEME_ECSCHNORR
      pos:
        line_end: 2277
        line_start: 2277
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_HASH
    - item_type: typedef
      name: TPMS_SIG_SCHEME_EDDSA
      pos:
        line_end: 2279
        line_start: 2279
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_HASH
    - item_type: typedef
      name: TPMS_SIG_SCHEME_EDDSA_PH
      pos:
        line_end: 2281
        line_start: 2281
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_HASH
    - item_type: typedef
      name: TPMS_SIG_SCHEME_SM2
      pos:
        line_end: 2283
        line_start: 2283
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_HASH
    - item_type: typedef
      name: TPMS_ENC_SCHEME_RSAES
      pos:
        line_end: 2331
        line_start: 2331
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_EMPTY
    - item_type: typedef
      name: TPMS_ENC_SCHEME_OAEP
      pos:
        line_end: 2333
        line_start: 2333
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_HASH
    - item_type: typedef
      name: TPMS_KEY_SCHEME_ECDH
      pos:
        line_end: 2337
        line_start: 2337
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_HASH
    - item_type: typedef
      name: TPMS_KEY_SCHEME_ECMQV
      pos:
        line_end: 2339
        line_start: 2339
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_HASH
    - item_type: typedef
      name: TPMS_KEY_SCHEME_SM2
      pos:
        line_end: 2341
        line_start: 2341
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_HASH
    - item_type: typedef
      name: TPMS_KDF_SCHEME_KDF1_SP800_108
      pos:
        line_end: 2345
        line_start: 2345
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_HASH
    - item_type: typedef
      name: TPMS_KDF_SCHEME_KDF1_SP800_56A
      pos:
        line_end: 2347
        line_start: 2347
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_HASH
    - item_type: typedef
      name: TPMS_KDF_SCHEME_KDF2
      pos:
        line_end: 2349
        line_start: 2349
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_HASH
    - item_type: typedef
      name: TPMS_KDF_SCHEME_MGF1
      pos:
        line_end: 2351
        line_start: 2351
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SCHEME_HASH
    - item_type: typedef
      name: TPMI_ALG_ASYM_SCHEME
      pos:
        line_end: 2377
        line_start: 2377
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ALG_ID
    - item_type: typedef
      name: TPMI_ALG_RSA_SCHEME
      pos:
        line_end: 2431
        line_start: 2431
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ALG_ID
    - item_type: typedef
      name: TPMI_ALG_RSA_DECRYPT
      pos:
        line_end: 2438
        line_start: 2438
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ALG_ID
    - item_type: typedef
      name: TPMI_RSA_KEY_BITS
      pos:
        line_end: 2455
        line_start: 2455
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_KEY_BITS
    - item_type: typedef
      name: TPMI_ALG_ECC_SCHEME
      pos:
        line_end: 2488
        line_start: 2488
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ALG_ID
    - item_type: typedef
      name: TPMI_ECC_CURVE
      pos:
        line_end: 2489
        line_start: 2489
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ECC_CURVE
    - item_type: typedef
      name: TPMS_SIGNATURE_RSAPSS
      pos:
        line_end: 2518
        line_start: 2518
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SIGNATURE_RSA
    - item_type: typedef
      name: TPMS_SIGNATURE_RSASSA
      pos:
        line_end: 2520
        line_start: 2520
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SIGNATURE_RSA
    - item_type: typedef
      name: TPMS_SIGNATURE_ECDAA
      pos:
        line_end: 2531
        line_start: 2531
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SIGNATURE_ECC
    - item_type: typedef
      name: TPMS_SIGNATURE_ECDSA
      pos:
        line_end: 2533
        line_start: 2533
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SIGNATURE_ECC
    - item_type: typedef
      name: TPMS_SIGNATURE_ECSCHNORR
      pos:
        line_end: 2535
        line_start: 2535
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SIGNATURE_ECC
    - item_type: typedef
      name: TPMS_SIGNATURE_EDDSA
      pos:
        line_end: 2537
        line_start: 2537
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SIGNATURE_ECC
    - item_type: typedef
      name: TPMS_SIGNATURE_EDDSA_PH
      pos:
        line_end: 2539
        line_start: 2539
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SIGNATURE_ECC
    - item_type: typedef
      name: TPMS_SIGNATURE_SM2
      pos:
        line_end: 2541
        line_start: 2541
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPMS_SIGNATURE_ECC
    - item_type: typedef
      name: TPMI_ALG_PUBLIC
      pos:
        line_end: 2614
        line_start: 2614
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: TPM_ALG_ID
    - item_type: typedef
      name: TPM_NV_INDEX
      pos:
        line_end: 2808
        line_start: 2808
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPM_NT
      pos:
        line_end: 2821
        line_start: 2821
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPMA_NV
      pos:
        line_end: 2910
        line_start: 2910
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPMA_NV_EXP
      pos:
        line_end: 3059
        line_start: 3059
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT64
    - item_type: typedef
      name: TPM_AT
      pos:
        line_end: 3229
        line_start: 3229
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    - item_type: typedef
      name: TPM_AE
      pos:
        line_end: 3237
        line_start: 3237
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
      type: UINT32
    union:
    - fields: []
      item_type: union
      name: TPMU_HA
      pos:
        line_end: 1675
        line_start: 1637
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[sizeof(TPMU_HA)];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_DIGEST
      pos:
        line_end: 1691
        line_start: 1683
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[sizeof(TPMT_HA)];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_DATA
      pos:
        line_end: 1701
        line_start: 1693
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[1024];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_EVENT
      pos:
        line_end: 1723
        line_start: 1715
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[MAX_DIGEST_BUFFER];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_MAX_BUFFER
      pos:
        line_end: 1733
        line_start: 1725
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[MAX_NV_BUFFER_SIZE];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_MAX_NV_BUFFER
      pos:
        line_end: 1743
        line_start: 1735
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[sizeof(UINT64)];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_TIMEOUT
      pos:
        line_end: 1753
        line_start: 1745
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[MAX_SYM_BLOCK_SIZE];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_IV
      pos:
        line_end: 1763
        line_start: 1755
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[512];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_VENDOR_PROPERTY
      pos:
        line_end: 1773
        line_start: 1765
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: digest
        type: TPMT_HA
      - name: handle
        type: TPM_HANDLE
      item_type: union
      name: TPMU_NAME
      pos:
        line_end: 1779
        line_start: 1775
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   name[sizeof(TPMU_NAME)];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_NAME
      pos:
        line_end: 1789
        line_start: 1781
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: algorithms
        type: TPML_ALG_PROPERTY
      - name: handles
        type: TPML_HANDLE
      - name: command
        type: TPML_CCA
      - name: ppCommands
        type: TPML_CC
      - name: auditCommands
        type: TPML_CC
      - name: assignedPCR
        type: TPML_PCR_SELECTION
      - name: tpmProperties
        type: TPML_TAGGED_TPM_PROPERTY
      - name: pcrProperties
        type: TPML_TAGGED_PCR_PROPERTY
      - name: authPolicies
        type: TPML_TAGGED_POLICY
      - name: actData
        type: TPML_ACT_DATA
      item_type: union
      name: TPMU_CAPABILITIES
      pos:
        line_end: 1963
        line_start: 1948
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: reserved
        type: UINT32
      item_type: union
      name: TPMU_SET_CAPABILITIES
      pos:
        line_end: 1975
        line_start: 1971
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: certify
        type: TPMS_CERTIFY_INFO
      - name: creation
        type: TPMS_CREATION_INFO
      - name: quote
        type: TPMS_QUOTE_INFO
      - name: commandAudit
        type: TPMS_COMMAND_AUDIT_INFO
      - name: sessionAudit
        type: TPMS_SESSION_AUDIT_INFO
      - name: time
        type: TPMS_TIME_ATTEST_INFO
      - name: nv
        type: TPMS_NV_CERTIFY_INFO
      - name: nvDigest
        type: TPMS_NV_DIGEST_CERTIFY_INFO
      item_type: union
      name: TPMU_ATTEST
      pos:
        line_end: 2065
        line_start: 2055
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   attestationData[sizeof(TPMS_ATTEST)];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_ATTEST
      pos:
        line_end: 2086
        line_start: 2078
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: sym
        type: TPM_KEY_BITS
      item_type: union
      name: TPMU_SYM_KEY_BITS
      pos:
        line_end: 2125
        line_start: 2107
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: sym
        type: TPMI_ALG_SYM_MODE
      item_type: union
      name: TPMU_SYM_MODE
      pos:
        line_end: 2142
        line_start: 2127
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[MAX_SYM_KEY_BYTES];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_SYM_KEY
      pos:
        line_end: 2166
        line_start: 2158
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[LABEL_MAX_BUFFER];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_LABEL
      pos:
        line_end: 2181
        line_start: 2173
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[sizeof(TPMS_DERIVE)];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_DERIVE
      pos:
        line_end: 2197
        line_start: 2189
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: create[MAX_SYM_DATA]
        type: BYTE
      - name: derive
        type: TPMS_DERIVE
      item_type: union
      name: TPMU_SENSITIVE_CREATE
      pos:
        line_end: 2203
        line_start: 2199
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[sizeof(TPMU_SENSITIVE_CREATE)];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_SENSITIVE_DATA
      pos:
        line_end: 2213
        line_start: 2205
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields: []
      item_type: union
      name: TPMU_SCHEME_KEYEDHASH
      pos:
        line_end: 2258
        line_start: 2250
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: any
        type: TPMS_SCHEME_HASH
      item_type: union
      name: TPMU_SIG_SCHEME
      pos:
        line_end: 2322
        line_start: 2286
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: anyKdf
        type: TPMS_SCHEME_HASH
      item_type: union
      name: TPMU_KDF_SCHEME
      pos:
        line_end: 2369
        line_start: 2354
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: anySig
        type: TPMS_SCHEME_HASH
      item_type: union
      name: TPMU_ASYM_SCHEME
      pos:
        line_end: 2423
        line_start: 2378
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[MAX_RSA_KEY_BYTES];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_PUBLIC_KEY_RSA
      pos:
        line_end: 2453
        line_start: 2445
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[RSA_PRIVATE_SIZE];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_PRIVATE_KEY_RSA
      pos:
        line_end: 2464
        line_start: 2456
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[MAX_ECC_KEY_BYTES];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_ECC_PARAMETER
      pos:
        line_end: 2474
        line_start: 2466
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: any
        type: TPMS_SCHEME_HASH
      item_type: union
      name: TPMU_SIGNATURE
      pos:
        line_end: 2580
        line_start: 2544
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields: []
      item_type: union
      name: TPMU_ENCRYPTED_SECRET
      pos:
        line_end: 2602
        line_start: 2588
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   secret[sizeof(TPMU_ENCRYPTED_SECRET)];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_ENCRYPTED_SECRET
      pos:
        line_end: 2612
        line_start: 2604
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: derive
        type: TPMS_DERIVE
      item_type: union
      name: TPMU_PUBLIC_ID
      pos:
        line_end: 2630
        line_start: 2615
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: asymDetail
        type: TPMS_ASYM_PARMS
      item_type: union
      name: TPMU_PUBLIC_PARMS
      pos:
        line_end: 2674
        line_start: 2659
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[sizeof(TPMT_PUBLIC)];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_TEMPLATE
      pos:
        line_end: 2706
        line_start: 2698
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[PRIVATE_VENDOR_SPECIFIC_BYTES];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_PRIVATE_VENDOR_SPECIFIC
      pos:
        line_end: 2716
        line_start: 2708
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: any
        type: TPM2B_PRIVATE_VENDOR_SPECIFIC
      item_type: union
      name: TPMU_SENSITIVE_COMPOSITE
      pos:
        line_end: 2733
        line_start: 2718
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[sizeof(_PRIVATE)];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_PRIVATE
      pos:
        line_end: 2764
        line_start: 2756
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   credential[sizeof(TPMS_ID_OBJECT)];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_ID_OBJECT
      pos:
        line_end: 2780
        line_start: 2772
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: nvIndex
        type: TPMS_NV_PUBLIC
      - name: externalNV
        type: TPMS_NV_PUBLIC_EXP_ATTR
      - name: permanentNV
        type: TPMS_NV_PUBLIC
      item_type: union
      name: TPMU_NV_PUBLIC_2
      pos:
        line_end: 3163
        line_start: 3158
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[MAX_CONTEXT_SIZE];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_CONTEXT_SENSITIVE
      pos:
        line_end: 3185
        line_start: 3177
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
    - fields:
      - name: t
        type: "struct\n    {\n        UINT16 size;\n        BYTE   buffer[sizeof(TPMS_CONTEXT_DATA)];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: TPM2B_CONTEXT_DATA
      pos:
        line_end: 3201
        line_start: 3193
        source_file: /src/libtpms/src/tpm2/TpmTypes.h
- function_names: []
  source_file: /src/libtpms/src/tpm2/TcpServerPosix_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Simulator_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RuntimeAttributesFree
  - RuntimeAttributesInit
  - RuntimeAttributesSetProfile
  - RuntimeAttributesSwitchProfile
  - RuntimeAttributesGet
  - RuntimeAttributeCheckRequired
  source_file: /src/libtpms/src/tpm2/RuntimeAttributes.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ATTR_SEPARATOR_C
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libtpms/src/tpm2/RuntimeAttributes.c
      type_or_value: ''','''
    - item_type: preproc_def
      name: ATTR_SEPARATOR_STR
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/libtpms/src/tpm2/RuntimeAttributes.c
      type_or_value: '","'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: attributeFlags
        type: unsigned int
      - name: stateFormatLevel
        type: unsigned int
      item_type: struct
      name: "s_AttributeProperties[NUM_ENTRIES_ATTRIBUTE_PROPERTIES] = {\n#define
        ATTRIBUTE(NAME, FLAGS, SFL) \\\n    { .name = NAME, .attributeFlags = FLAGS,
        .stateFormatLevel = SFL }\n    ATTRIBUTE(\"no-unpadded-encryption\", RUNTIME_ATTRIBUTE_NO_UNPADDED_ENCRYPTION,\n\t
        \     7),\n    ATTRIBUTE(\"no-sha1-signing\", RUNTIME_ATTRIBUTE_NO_SHA1_SIGNING,\n\t
        \     7),\n    ATTRIBUTE(\"no-sha1-verification\", RUNTIME_ATTRIBUTE_NO_SHA1_VERIFICATION,\n\t
        \     7),\n    ATTRIBUTE(\"no-sha1-hmac-creation\", RUNTIME_ATTRIBUTE_NO_SHA1_HMAC_CREATION,\n\t
        \     7),\n    ATTRIBUTE(\"no-sha1-hmac-verification\", RUNTIME_ATTRIBUTE_NO_SHA1_HMAC_VERIFICATION,\n\t
        \     7),\n    ATTRIBUTE(\"no-sha1-hmac\", RUNTIME_ATTRIBUTE_NO_SHA1_HMAC_VERIFICATION
        |\n                              RUNTIME_ATTRIBUTE_NO_SHA1_HMAC_CREATION,\n\t
        \     7),\n    ATTRIBUTE(\"fips-host\", RUNTIME_ATTRIBUTE_NO_UNPADDED_ENCRYPTION
        |\n\t\t\t   RUNTIME_ATTRIBUTE_NO_SHA1_SIGNING |\n\t\t\t   RUNTIME_ATTRIBUTE_NO_SHA1_VERIFICATION,\n\t
        \     7),\n    ATTRIBUTE(\"drbg-continous-test\", RUNTIME_ATTRIBUTE_DRBG_CONTINOUS_TEST,\n\t
        \     7),\n    ATTRIBUTE(\"pct\", RUNTIME_ATTRIBUTE_PAIRWISE_CONSISTENCY_TEST,\n
        \             7),\n    ATTRIBUTE(\"no-ecc-key-derivation\", RUNTIME_ATTRIBUTE_NO_ECC_KEY_DERIVATION,\n\t
        \     7),\n}"
      pos:
        line_end: 56
        line_start: 51
        source_file: /src/libtpms/src/tpm2/RuntimeAttributes.c
    typedefs: []
    union: []
- function_names:
  - BuildResponseHeader
  source_file: /src/libtpms/src/tpm2/Response.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/BnUtil_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/platform_to_tpm_interface.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/HierarchyControl_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_HierarchyControl_authHandle
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/HierarchyControl_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_HierarchyControl_enable
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/HierarchyControl_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_HierarchyControl_state
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/HierarchyControl_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_BASE_HIERARCHY
      - name: enable
        type: TPMI_RH_ENABLES
      - name: state
        type: TPMI_YES_NO
      item_type: struct
      name: HierarchyControl_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/HierarchyControl_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/EncryptDecrypt_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_EncryptDecrypt_keyHandle
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/EncryptDecrypt_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_EncryptDecrypt_decrypt
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/EncryptDecrypt_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_EncryptDecrypt_mode
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/EncryptDecrypt_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_EncryptDecrypt_ivIn
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/EncryptDecrypt_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    - item_type: preproc_def
      name: RC_EncryptDecrypt_inData
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/EncryptDecrypt_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_4)
    structs:
    - fields:
      - name: keyHandle
        type: TPMI_DH_OBJECT
      - name: decrypt
        type: TPMI_YES_NO
      - name: mode
        type: TPMI_ALG_CIPHER_MODE
      - name: ivIn
        type: TPM2B_IV
      - name: inData
        type: TPM2B_MAX_BUFFER
      item_type: struct
      name: EncryptDecrypt_In
      pos:
        line_end: 77
        line_start: 70
        source_file: /src/libtpms/src/tpm2/EncryptDecrypt_fp.h
    - fields:
      - name: outData
        type: TPM2B_MAX_BUFFER
      - name: ivOut
        type: TPM2B_IV
      item_type: struct
      name: EncryptDecrypt_Out
      pos:
        line_end: 84
        line_start: 80
        source_file: /src/libtpms/src/tpm2/EncryptDecrypt_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_Write_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_NV_Write_authHandle
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/NV_Write_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_Write_nvIndex
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/NV_Write_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_NV_Write_data
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/NV_Write_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_Write_offset
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/NV_Write_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_NV_AUTH
      - name: nvIndex
        type: TPMI_RH_NV_INDEX
      - name: data
        type: TPM2B_MAX_NV_BUFFER
      - name: offset
        type: UINT16
      item_type: struct
      name: NV_Write_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/NV_Write_fp.h
    typedefs: []
    union: []
- function_names:
  - _plat__PhysicalPresenceAsserted
  - _plat__Signal_PhysicalPresenceOn
  - _plat__Signal_PhysicalPresenceOff
  source_file: /src/libtpms/src/tpm2/PPPlat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/CommandCodeAttributes_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - KeySizesGetMinimum
  - RuntimeAlgorithmEnableAllAlgorithms
  - RuntimeAlgorithmInit
  - RuntimeAlgorithmFree
  - RuntimeAlgorithmSetDefault
  - RuntimeAlgorithmSetProfile
  - RuntimeAlgorithmSwitchProfile
  - RuntimeAlgorithmCheckEnabled
  - RuntimeAlgorithmKeySizeCheckEnabled
  - RuntimeAlgorithmGetEcc
  - RuntimeAlgorithmPrint
  - RuntimeAlgorithmsFilterPCRSelection
  source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALGO_SEPARATOR_C
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
      type_or_value: ''','''
    - item_type: preproc_def
      name: ALGO_SEPARATOR_STR
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
      type_or_value: '","'
    structs:
    - fields:
      - name: enabled
        type: BOOL
      - name: size
        type: UINT16
      - name: stateFormatLevel
        type: unsigned int
      item_type: struct
      name: KeySizes
      pos:
        line_end: 57
        line_start: 53
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    - fields:
      - name: stateFormatLevel
        type: unsigned int
      item_type: struct
      name: MinKeySize
      pos:
        line_end: 61
        line_start: 59
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    - fields:
      - name: '*name'
        type: char
      - name: u
        type: "struct {\n\tconst struct KeySizes *keySizes;\n\tconst struct MinKeySize
          *minKeySize;\n    }"
      - name: canBeDisabled
        type: BOOL
      - name: stateFormatLevel
        type: unsigned int
      item_type: struct
      name: "s_AlgorithmProperties[NUM_ENTRIES_ALGORITHM_PROPERTIES] = {\n#define
        SYMMETRIC(ENABLED, NAME, KEYSIZES, CANDISABLE, SFL) \\\n    { .name = ENABLED
        ? NAME : NULL, .u.keySizes = KEYSIZES, .canBeDisabled = CANDISABLE, .stateFormatLevel
        = SFL }\n#define ASYMMETRIC(ENABLED, NAME, KEYSIZES, CANDISABLE, SFL) \\\n
        \   { .name = ENABLED ? NAME : NULL, .u.keySizes = KEYSIZES, .canBeDisabled
        = CANDISABLE, .stateFormatLevel = SFL }\n#define HASH(ENABLED, NAME, CANDISABLE,
        SFL) \\\n    { .name = ENABLED ? NAME : NULL, .canBeDisabled = CANDISABLE,
        .stateFormatLevel = SFL }\n#define HMAC(ENABLED, NAME, MINKEYSIZE, CANDISABLE,
        SFL) \\\n    { .name = ENABLED ? NAME : NULL, .u.minKeySize = MINKEYSIZE,
        .canBeDisabled = CANDISABLE, .stateFormatLevel = SFL }\n#define SIGNING(ENABLED,
        NAME, CANDISABLE, SFL) \\\n    { .name = ENABLED ? NAME : NULL, .canBeDisabled
        = CANDISABLE, .stateFormatLevel = SFL }\n#define ENCRYPTING(ENABLED, NAME,
        CANDISABLE, SFL) \\\n    { .name = ENABLED ? NAME : NULL, .canBeDisabled =
        CANDISABLE, .stateFormatLevel = SFL }\n#define OTHER(ENABLED, NAME, CANDISABLE,
        SFL) \\\n    { .name = ENABLED ? NAME : NULL, .canBeDisabled = CANDISABLE,
        .stateFormatLevel = SFL }\n\n    [TPM_ALG_RSA] = ASYMMETRIC(ALG_RSA, \"rsa\",
        s_KeySizesRSA, false, 1),\n    [TPM_ALG_TDES] = SYMMETRIC(ALG_TDES, \"tdes\",
        s_KeySizesTDES, true, 1),\n    [TPM_ALG_SHA1] = HASH(ALG_SHA1, \"sha1\", true,
        1),\n    [TPM_ALG_HMAC] = HMAC(ALG_HMAC, \"hmac\", s_MinKeySizeHMAC, false,
        1),\n    [TPM_ALG_AES] = SYMMETRIC(ALG_AES, \"aes\", s_KeySizesAES, false,
        1), // never disable: context encryption\n    [TPM_ALG_MGF1] = HASH(ALG_MGF1,
        \"mgf1\", false, 1),\n    [TPM_ALG_KEYEDHASH] = HASH(ALG_KEYEDHASH, \"keyedhash\",
        false, 1),\n    [TPM_ALG_XOR] = OTHER(ALG_XOR, \"xor\", false, 1),\n    [TPM_ALG_SHA256]
        = HASH(ALG_SHA256, \"sha256\", false, 1),\n    [TPM_ALG_SHA384] = HASH(ALG_SHA384,
        \"sha384\", false, 1),\n    [TPM_ALG_SHA512] = HASH(ALG_SHA512, \"sha512\",
        true, 1),\n    [TPM_ALG_NULL] = OTHER(true, \"null\", false, 1),\n    [TPM_ALG_SM4]
        = SYMMETRIC(ALG_SM4, \"sm4\", s_KeySizesSM4, true, 0), // not supported\n
        \   [TPM_ALG_RSASSA] = SIGNING(ALG_RSASSA, \"rsassa\", true, 1),\n    [TPM_ALG_RSAES]
        = ENCRYPTING(ALG_RSAES, \"rsaes\", true, 1),\n    [TPM_ALG_RSAPSS] = SIGNING(ALG_RSAPSS,
        \"rsapss\", true, 1),\n    [TPM_ALG_OAEP] = ENCRYPTING(ALG_OAEP, \"oaep\",
        false, 1), // never disable: CryptSecretEncrypt/Decrypt needs it\n    [TPM_ALG_ECDSA]
        = SIGNING(ALG_ECDSA, \"ecdsa\", false, 1),\n    [TPM_ALG_ECDH] = OTHER(ALG_ECDH,
        \"ecdh\", false, 1),\n    [TPM_ALG_ECDAA] = OTHER(ALG_ECDAA, \"ecdaa\", true,
        1),\n    [TPM_ALG_SM2] = SIGNING(ALG_SM2, \"sm2\", true, 1),\n    [TPM_ALG_ECSCHNORR]
        = SIGNING(ALG_ECSCHNORR, \"ecschnorr\", true, 1),\n    [TPM_ALG_ECMQV] = OTHER(ALG_ECMQV,
        \"ecmqv\", true, 1),\n    [TPM_ALG_KDF1_SP800_56A] = HASH(ALG_KDF1_SP800_56A,
        \"kdf1-sp800-56a\", false, 1),\n    [TPM_ALG_KDF2] = HASH(ALG_KDF2, \"kdf2\",
        false, 1),\n    [TPM_ALG_KDF1_SP800_108] = HASH(ALG_KDF1_SP800_108, \"kdf1-sp800-108\",
        false, 1),\n    [TPM_ALG_ECC] = ASYMMETRIC(ALG_ECC, \"ecc\", s_KeySizesECC,
        false, 1),\n    [TPM_ALG_SYMCIPHER] = OTHER(ALG_SYMCIPHER, \"symcipher\",
        false, 1),\n    [TPM_ALG_CAMELLIA] = SYMMETRIC(ALG_CAMELLIA, \"camellia\",
        s_KeySizesCamellia, true, 1),\n    [TPM_ALG_SHA3_256] = HASH(ALG_SHA3_256,
        \"sha3-256\", true, 0), // not supported\n    [TPM_ALG_SHA3_384] = HASH(ALG_SHA3_384,
        \"sha3-384\", true, 0), // not supported\n    [TPM_ALG_SHA3_512] = HASH(ALG_SHA3_512,
        \"sha3-256\", true, 0), // not supported\n    [TPM_ALG_CMAC] = SIGNING(ALG_CMAC,
        \"cmac\", true, 1),\n    [TPM_ALG_CTR] = ENCRYPTING(ALG_CTR, \"ctr\", true,
        1),\n    [TPM_ALG_OFB] = ENCRYPTING(ALG_OFB, \"ofb\", true, 1),\n    [TPM_ALG_CBC]
        = ENCRYPTING(ALG_CBC, \"cbc\", true, 1),\n    [TPM_ALG_CFB] = ENCRYPTING(ALG_CFB,
        \"cfb\", false, 1), // never disable: context entryption\n    [TPM_ALG_ECB]
        = ENCRYPTING(ALG_ECB, \"ecb\", true, 1),\n    /* all newly added algorithms
        must have .canBedisable=true so they can be disabled */\n}"
      pos:
        line_end: 114
        line_start: 106
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    - fields:
      - name: '*name'
        type: char
      - name: canBeDisabled
        type: BOOL
      - name: '*prefix'
        type: char
      item_type: struct
      name: "s_EccShortcuts[] = {\n#define ECC_SHORTCUT(NAME, CANDISABLE, PREFIX)
        \\\n    { .name = NAME, .canBeDisabled = CANDISABLE, .prefix = PREFIX }\n
        \   [RUNTIME_ALGORITHM_ECC_NIST_BIT] = ECC_SHORTCUT(\"ecc-nist\", true, \"ecc-nist-p\"),\n
        \   [RUNTIME_ALGORITHM_ECC_BN_BIT] = ECC_SHORTCUT(\"ecc-bn\", true, \"ecc-bn-p\"),\n}"
      pos:
        line_end: 175
        line_start: 171
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    - fields:
      - name: '*name'
        type: char
      - name: keySize
        type: UINT16
      - name: canBeDisabled
        type: BOOL
      - name: stateFormatLevel
        type: unsigned int
      item_type: struct
      name: "s_EccAlgorithmProperties[] = {\n#define ECC(ENABLED, NAME, KEYSIZE, CANDISABLE,
        SFL) \\\n    { .name = ENABLED ? NAME : NULL, .keySize = KEYSIZE, .canBeDisabled
        = CANDISABLE, .stateFormatLevel = SFL }\n\n    [TPM_ECC_NIST_P192] = ECC(ECC_NIST_P192,
        \"ecc-nist-p192\", 192, true, 1),\n    [TPM_ECC_NIST_P224] = ECC(ECC_NIST_P224,
        \"ecc-nist-p224\", 224, true, 1),\n    [TPM_ECC_NIST_P256] = ECC(ECC_NIST_P256,
        \"ecc-nist-p256\", 256, false, 1),\n    [TPM_ECC_NIST_P384] = ECC(ECC_NIST_P384,
        \"ecc-nist-p384\", 384, false, 1),\n    [TPM_ECC_NIST_P521] = ECC(ECC_NIST_P521,
        \"ecc-nist-p521\", 521, true, 1),\n    [TPM_ECC_BN_P256] = ECC(ECC_BN_P256,
        \"ecc-bn-p256\", 256, true, 1),\n    [TPM_ECC_BN_P638] = ECC(ECC_BN_P638,
        \"ecc-bn-p638\", 638, true, 1),\n    [TPM_ECC_SM2_P256] = ECC(ECC_SM2_P256,
        \"ecc-sm2-p256\", 256, true, 1),\n}"
      pos:
        line_end: 187
        line_start: 182
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyPassword_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyPassword_policySession
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/PolicyPassword_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      item_type: struct
      name: PolicyPassword_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyPassword_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_ReadPublic_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_NV_ReadPublic_nvIndex
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/NV_ReadPublic_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: nvIndex
        type: TPMI_RH_NV_INDEX
      item_type: struct
      name: NV_ReadPublic_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/NV_ReadPublic_fp.h
    - fields:
      - name: nvPublic
        type: TPM2B_NV_PUBLIC
      - name: nvName
        type: TPM2B_NAME
      item_type: struct
      name: NV_ReadPublic_Out
      pos:
        line_end: 80
        line_start: 76
        source_file: /src/libtpms/src/tpm2/NV_ReadPublic_fp.h
    typedefs: []
    union: []
- function_names:
  - _plat__IsCanceled
  - _plat__SetCancel
  - _plat__ClearCancel
  source_file: /src/libtpms/src/tpm2/Cancel.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyTicket_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyTicket_policySession
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/PolicyTicket_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyTicket_timeout
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/PolicyTicket_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyTicket_cpHashA
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/PolicyTicket_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_PolicyTicket_policyRef
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/PolicyTicket_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    - item_type: preproc_def
      name: RC_PolicyTicket_authName
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/PolicyTicket_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_4)
    - item_type: preproc_def
      name: RC_PolicyTicket_ticket
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/PolicyTicket_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_5)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      - name: timeout
        type: TPM2B_TIMEOUT
      - name: cpHashA
        type: TPM2B_DIGEST
      - name: policyRef
        type: TPM2B_NONCE
      - name: authName
        type: TPM2B_NAME
      - name: ticket
        type: TPMT_TK_AUTH
      item_type: struct
      name: PolicyTicket_In
      pos:
        line_end: 78
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyTicket_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_SetBits_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_NV_SetBits_authHandle
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/NV_SetBits_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_SetBits_nvIndex
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/NV_SetBits_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_NV_SetBits_bits
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/NV_SetBits_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_NV_AUTH
      - name: nvIndex
        type: TPMI_RH_NV_INDEX
      - name: bits
        type: UINT64
      item_type: struct
      name: NV_SetBits_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/NV_SetBits_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmASN1_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/platform_public_interface.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/GetTestResult_fp.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: outData
        type: TPM2B_MAX_BUFFER
      - name: testResult
        type: TPM_RC
      item_type: struct
      name: GetTestResult_Out
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/GetTestResult_fp.h
    typedefs: []
    union: []
- function_names:
  - VolatileState_Load
  - VolatileState_Save
  source_file: /src/libtpms/src/tpm2/Volatile.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/CommandAttributes.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NOT_IMPLEMENTED
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type_or_value: (COMMAND_ATTRIBUTES)(0)
    - item_type: preproc_def
      name: ENCRYPT_2
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type_or_value: ((COMMAND_ATTRIBUTES)1 << 0)
    - item_type: preproc_def
      name: ENCRYPT_4
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type_or_value: ((COMMAND_ATTRIBUTES)1 << 1)
    - item_type: preproc_def
      name: DECRYPT_2
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type_or_value: ((COMMAND_ATTRIBUTES)1 << 2)
    - item_type: preproc_def
      name: DECRYPT_4
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type_or_value: ((COMMAND_ATTRIBUTES)1 << 3)
    - item_type: preproc_def
      name: HANDLE_1_USER
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type_or_value: ((COMMAND_ATTRIBUTES)1 << 4)
    - item_type: preproc_def
      name: HANDLE_1_ADMIN
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type_or_value: ((COMMAND_ATTRIBUTES)1 << 5)
    - item_type: preproc_def
      name: HANDLE_1_DUP
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type_or_value: ((COMMAND_ATTRIBUTES)1 << 6)
    - item_type: preproc_def
      name: HANDLE_2_USER
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type_or_value: ((COMMAND_ATTRIBUTES)1 << 7)
    - item_type: preproc_def
      name: PP_COMMAND
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type_or_value: ((COMMAND_ATTRIBUTES)1 << 8)
    - item_type: preproc_def
      name: IS_IMPLEMENTED
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type_or_value: ((COMMAND_ATTRIBUTES)1 << 9)
    - item_type: preproc_def
      name: NO_SESSIONS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type_or_value: ((COMMAND_ATTRIBUTES)1 << 10)
    - item_type: preproc_def
      name: NV_COMMAND
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type_or_value: ((COMMAND_ATTRIBUTES)1 << 11)
    - item_type: preproc_def
      name: PP_REQUIRED
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type_or_value: ((COMMAND_ATTRIBUTES)1 << 12)
    - item_type: preproc_def
      name: R_HANDLE
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type_or_value: ((COMMAND_ATTRIBUTES)1 << 13)
    - item_type: preproc_def
      name: ALLOW_TRIAL
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type_or_value: ((COMMAND_ATTRIBUTES)1 << 14)
    structs: []
    typedefs:
    - item_type: typedef
      name: COMMAND_ATTRIBUTES
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/libtpms/src/tpm2/CommandAttributes.h
      type: UINT16
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/HashSequenceStart_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_HashSequenceStart_auth
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/HashSequenceStart_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_HashSequenceStart_hashAlg
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/HashSequenceStart_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: auth
        type: TPM2B_AUTH
      - name: hashAlg
        type: TPMI_ALG_HASH
      item_type: struct
      name: HashSequenceStart_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/HashSequenceStart_fp.h
    - fields:
      - name: sequenceHandle
        type: TPMI_DH_OBJECT
      item_type: struct
      name: HashSequenceStart_Out
      pos:
        line_end: 80
        line_start: 77
        source_file: /src/libtpms/src/tpm2/HashSequenceStart_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmBigNum.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NvFileOpen
  - NvFileCommit
  - NvFileSize
  - _plat__NvErrors
  - _plat__NVEnable
  - _plat__NVEnable_NVChipFile
  - _plat__NVDisable
  - _plat__GetNvReadyState
  - _plat__NvMemoryRead
  - _plat__NvGetChangedStatus
  - _plat__NvMemoryWrite
  - _plat__NvMemoryClear
  - _plat__NvMemoryMove
  - _plat__NvCommit
  - _plat__TearDown
  - _plat__SetNvAvail
  - _plat__ClearNvAvail
  - _plat__NVNeedsManufacture
  source_file: /src/libtpms/src/tpm2/NVMem.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NV_ENABLE_SUCCESS
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/libtpms/src/tpm2/NVMem.c
      type_or_value: '0'
    - item_type: preproc_def
      name: NV_ENABLE_FAILED
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/libtpms/src/tpm2/NVMem.c
      type_or_value: (-1)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/HMAC_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_HMAC_handle
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/HMAC_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_HMAC_buffer
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/HMAC_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_HMAC_hashAlg
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/HMAC_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: handle
        type: TPMI_DH_OBJECT
      - name: buffer
        type: TPM2B_MAX_BUFFER
      - name: hashAlg
        type: TPMI_ALG_HASH
      item_type: struct
      name: HMAC_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/HMAC_fp.h
    - fields:
      - name: outHMAC
        type: TPM2B_DIGEST
      item_type: struct
      name: HMAC_Out
      pos:
        line_end: 81
        line_start: 78
        source_file: /src/libtpms/src/tpm2/HMAC_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/CertifyCreation_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_CertifyCreation_signHandle
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/CertifyCreation_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_CertifyCreation_objectHandle
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/CertifyCreation_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_CertifyCreation_qualifyingData
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/CertifyCreation_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_CertifyCreation_creationHash
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/CertifyCreation_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_CertifyCreation_inScheme
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/CertifyCreation_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    - item_type: preproc_def
      name: RC_CertifyCreation_creationTicket
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libtpms/src/tpm2/CertifyCreation_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_4)
    structs:
    - fields:
      - name: signHandle
        type: TPMI_DH_OBJECT
      - name: objectHandle
        type: TPMI_DH_OBJECT
      - name: qualifyingData
        type: TPM2B_DATA
      - name: creationHash
        type: TPM2B_DIGEST
      - name: inScheme
        type: TPMT_SIG_SCHEME
      - name: creationTicket
        type: TPMT_TK_CREATION
      item_type: struct
      name: CertifyCreation_In
      pos:
        line_end: 78
        line_start: 70
        source_file: /src/libtpms/src/tpm2/CertifyCreation_fp.h
    - fields:
      - name: certifyInfo
        type: TPM2B_ATTEST
      - name: signature
        type: TPMT_SIGNATURE
      item_type: struct
      name: CertifyCreation_Out
      pos:
        line_end: 85
        line_start: 81
        source_file: /src/libtpms/src/tpm2/CertifyCreation_fp.h
    typedefs: []
    union: []
- function_names:
  - NvNext
  - NvNextByType
  - NvNextIndex
  - NvNextEvict
  - NvGetEnd
  - NvGetFreeBytes
  - NvTestSpace
  - NvWriteNvListEnd
  - NvAdd
  - NvDelete
  - NvRamNext
  - NvRamGetEnd
  - NvRamTestSpaceIndex
  - NvRamGetIndex
  - NvUpdateIndexOrderlyData
  - NvAddRAM
  - NvDeleteRAM
  - NvReadNvIndexInfo
  - NvObjectToBuffer
  - NvObjectFromBuffer
  - NvReadObject
  - NvFindEvict
  - NvIndexIsDefined
  - NvConditionallyWrite
  - NvReadNvIndexAttributes
  - NvReadRamIndexAttributes
  - NvWriteNvIndexAttributes
  - NvWriteRamIndexAttributes
  - NvIsPlatformPersistentHandle
  - NvIsOwnerPersistentHandle
  - NvIndexIsAccessible
  - NvGetEvictObject
  - NvIndexCacheInit
  - NvGetIndexData
  - NvHashIndexData
  - NvGetUINT64Data
  - NvWriteIndexAttributes
  - NvWriteIndexAuth
  - NvGetIndexInfo
  - NvWriteIndexData
  - NvWriteUINT64Data
  - NvGetNameByIndexHandle
  - NvDefineIndex
  - NvWriteObject
  - NvAddEvictObject
  - NvDeleteIndex
  - NvDeleteEvict
  - NvFlushHierarchy
  - NvSetGlobalLock
  - InsertSort
  - NvCapGetPersistent
  - NvCapGetOnePersistent
  - NvCapGetIndex
  - NvCapGetOneIndex
  - NvCapGetIndexNumber
  - NvCapGetPersistentNumber
  - NvCapGetPersistentAvail
  - NvCapGetCounterNumber
  - NvSetStartupAttributes
  - NvEntityStartup
  - NvCapGetCounterAvail
  - NvFindHandle
  - NvReadMaxCount
  - NvUpdateMaxCount
  - NvSetMaxCount
  - NvGetMaxCount
  source_file: /src/libtpms/src/tpm2/NvDynamic.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BUFFER_SIZE
      pos:
        line_end: 962
        line_start: 961
        source_file: /src/libtpms/src/tpm2/NvDynamic.c
      type_or_value: '64'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PP_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - StringToUint32
  - _plat__GetManufacturerCapabilityCode
  - _plat__GetVendorCapabilityCode
  - _plat__GetTpmFirmwareVersionHigh
  - _plat__GetTpmFirmwareVersionLow
  - _plat__GetTpmFirmwareSvn
  - _plat__GetTpmFirmwareMaxSvn
  - _plat__SetTpmFirmwareHash
  - _plat__SetTpmFirmwareSvn
  - _plat__GetTpmFirmwareSvnSecret
  - _plat__GetTpmFirmwareSecret
  - _plat__GetTpmType
  source_file: /src/libtpms/src/tpm2/VendorInfo.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MANUFACTURER
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libtpms/src/tpm2/VendorInfo.c
      type_or_value: '"IBM"'
    - item_type: preproc_def
      name: VENDOR_STRING_1
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/libtpms/src/tpm2/VendorInfo.c
      type_or_value: '"SW  "'
    - item_type: preproc_def
      name: VENDOR_STRING_2
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libtpms/src/tpm2/VendorInfo.c
      type_or_value: '" TPM"'
    - item_type: preproc_def
      name: VENDOR_STRING_3
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libtpms/src/tpm2/VendorInfo.c
      type_or_value: '"\0\0\0\0"'
    - item_type: preproc_def
      name: VENDOR_STRING_4
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libtpms/src/tpm2/VendorInfo.c
      type_or_value: '"\0\0\0\0"'
    - item_type: preproc_def
      name: FIRMWARE_V1
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libtpms/src/tpm2/VendorInfo.c
      type_or_value: (0x20240125)
    - item_type: preproc_def
      name: FIRMWARE_V2
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/VendorInfo.c
      type_or_value: (0x00120000)
    - item_type: preproc_def
      name: MAX_SVN
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/VendorInfo.c
      type_or_value: '255'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_WriteLock_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_NV_WriteLock_authHandle
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/NV_WriteLock_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_WriteLock_nvIndex
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/NV_WriteLock_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_NV_AUTH
      - name: nvIndex
        type: TPMI_RH_NV_INDEX
      item_type: struct
      name: NV_WriteLock_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/NV_WriteLock_fp.h
    typedefs: []
    union: []
- function_names:
  - AddSame
  - CarryProp
  - CarryResolve
  - BnAdd
  - BnAddWord
  - SubSame
  - BorrowProp
  - BnSub
  - BnSubWord
  - BnUnsignedCmp
  - BnUnsignedCmpWord
  - crypt_word_t::BnModWord
  - Msb
  - BnMsb
  - BnSizeInBits
  - BnSetWord
  - BnSetBit
  - BnTestBit
  - BnMaskBits
  - BnShiftRight
  - BnIsPointOnCurve
  - BnSizeInBitsSkipLeadingZeros
  - BnGenerateRandomInRangeAllBytes
  source_file: /src/libtpms/src/tpm2/BnMath.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NextImplementedIndex
  - NextImplementedIndex
  - GetClosestCommandIndex
  - CommandCodeToCommandIndex
  - GetNextCommandIndex
  - GetCommandCode
  - CommandAuthRole
  - EncryptSize
  - DecryptSize
  - IsSessionAllowed
  - IsHandleInResponse
  - IsWriteOperation
  - IsReadOperation
  - CommandCapGetCCList
  - CommandCapGetOneCC
  - IsVendorCommand
  source_file: /src/libtpms/src/tpm2/CommandCodeAttributes.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CC_VEND
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libtpms/src/tpm2/CommandCodeAttributes.c
      type_or_value: (TPM_CC)(0x20000000)
    structs: []
    typedefs:
    - item_type: typedef
      name: ATTRIBUTE_TYPE
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/libtpms/src/tpm2/CommandCodeAttributes.c
      type: UINT16
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Tpm.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicySigned_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicySigned_authObject
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/PolicySigned_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicySigned_policySession
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/PolicySigned_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_PolicySigned_nonceTPM
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/PolicySigned_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicySigned_cpHashA
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/PolicySigned_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_PolicySigned_policyRef
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libtpms/src/tpm2/PolicySigned_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    - item_type: preproc_def
      name: RC_PolicySigned_expiration
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libtpms/src/tpm2/PolicySigned_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_4)
    - item_type: preproc_def
      name: RC_PolicySigned_auth
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libtpms/src/tpm2/PolicySigned_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_5)
    structs:
    - fields:
      - name: authObject
        type: TPMI_DH_OBJECT
      - name: policySession
        type: TPMI_SH_POLICY
      - name: nonceTPM
        type: TPM2B_NONCE
      - name: cpHashA
        type: TPM2B_DIGEST
      - name: policyRef
        type: TPM2B_NONCE
      - name: expiration
        type: INT32
      - name: auth
        type: TPMT_SIGNATURE
      item_type: struct
      name: PolicySigned_In
      pos:
        line_end: 79
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicySigned_fp.h
    - fields:
      - name: timeout
        type: TPM2B_TIMEOUT
      - name: policyTicket
        type: TPMT_TK_AUTH
      item_type: struct
      name: PolicySigned_Out
      pos:
        line_end: 86
        line_start: 82
        source_file: /src/libtpms/src/tpm2/PolicySigned_fp.h
    typedefs: []
    union: []
- function_names:
  - CHECK_SIZE
  - NEXT_OCTET
  - PEEK_NEXT
  - CHECK_SPACE
  source_file: /src/libtpms/src/tpm2/TpmASN1.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ASN1_EOC
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: ASN1_BOOLEAN
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: ASN1_INTEGER
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: ASN1_BITSTRING
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: ASN1_OCTET_STRING
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: ASN1_NULL
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: ASN1_OBJECT_IDENTIFIER
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x06'
    - item_type: preproc_def
      name: ASN1_OBJECT_DESCRIPTOR
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x07'
    - item_type: preproc_def
      name: ASN1_EXTERNAL
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: ASN1_REAL
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x09'
    - item_type: preproc_def
      name: ASN1_ENUMERATED
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x0A'
    - item_type: preproc_def
      name: ASN1_EMBEDDED
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x0B'
    - item_type: preproc_def
      name: ASN1_UTF8String
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x0C'
    - item_type: preproc_def
      name: ASN1_RELATIVE_OID
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x0D'
    - item_type: preproc_def
      name: ASN1_SEQUENCE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: 0x10  // Primitive + Constructed + 0x10
    - item_type: preproc_def
      name: ASN1_SET
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: 0x11  // Primitive + Constructed + 0x11
    - item_type: preproc_def
      name: ASN1_NumericString
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x12'
    - item_type: preproc_def
      name: ASN1_PrintableString
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x13'
    - item_type: preproc_def
      name: ASN1_T61String
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x14'
    - item_type: preproc_def
      name: ASN1_VideoString
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x15'
    - item_type: preproc_def
      name: ASN1_IA5String
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x16'
    - item_type: preproc_def
      name: ASN1_UTCTime
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x17'
    - item_type: preproc_def
      name: ASN1_GeneralizeTime
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x18'
    - item_type: preproc_def
      name: ASN1_VisibleString
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x1A'
    - item_type: preproc_def
      name: ASN1_GeneralString
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x1B'
    - item_type: preproc_def
      name: ASN1_UniversalString
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x1C'
    - item_type: preproc_def
      name: ASN1_CHARACTER
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: STRING 0x1D
    - item_type: preproc_def
      name: ASN1_BMPString
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x1E'
    - item_type: preproc_def
      name: ASN1_CONSTRUCTED
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: ASN1_APPLICAIION_SPECIFIC
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: '0xA0'
    - item_type: preproc_def
      name: ASN1_CONSTRUCTED_SEQUENCE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: (ASN1_SEQUENCE + ASN1_CONSTRUCTED)
    - item_type: preproc_def
      name: MAX_DEPTH
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
      type_or_value: 10  // maximum push depth for marshaling context.
    structs:
    - fields:
      - name: '* buffer'
        type: BYTE
      - name: size
        type: INT16
      - name: offset
        type: INT16
      - name: tag
        type: BYTE
      item_type: struct
      name: ASN1UnmarshalContext
      pos:
        line_end: 143
        line_start: 135
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
    - fields:
      - name: '* buffer'
        type: BYTE
      - name: offset
        type: INT16
      - name: end
        type: INT16
      - name: depth
        type: INT16
      - name: ends[MAX_DEPTH]
        type: INT16
      item_type: struct
      name: ASN1MarshalContext
      pos:
        line_end: 153
        line_start: 145
        source_file: /src/libtpms/src/tpm2/TpmASN1.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Power_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ExecuteCommand
  source_file: /src/libtpms/src/tpm2/ExecCommand.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/InternalRoutines.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Startup_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_Startup_startupType
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/Startup_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: startupType
        type: TPM_SU
      item_type: struct
      name: Startup_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/Startup_fp.h
    typedefs: []
    union: []
- function_names:
  - EntityGetLoadStatus
  - EntityGetAuthValue
  - EntityGetAuthPolicy
  - ACT_GET_POLICY
  - EntityGetName
  - EntityGetHierarchy
  source_file: /src/libtpms/src/tpm2/Entity.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2_ContextSave
  - TPM2_ContextLoad
  - TPM2_FlushContext
  - TPM2_EvictControl
  source_file: /src/libtpms/src/tpm2/ContextCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TpmEcc_SchnorrCalculateS
  source_file: /src/libtpms/src/tpm2/TpmEcc_Signature_Util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/BaseTypes.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: 'NULL'
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libtpms/src/tpm2/BaseTypes.h
      type_or_value: (0)
    structs: []
    typedefs:
    - item_type: typedef
      name: UINT8
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/libtpms/src/tpm2/BaseTypes.h
      type: uint8_t
    - item_type: typedef
      name: BYTE
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/libtpms/src/tpm2/BaseTypes.h
      type: uint8_t
    - item_type: typedef
      name: INT8
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/libtpms/src/tpm2/BaseTypes.h
      type: int8_t
    - item_type: typedef
      name: BOOL
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/libtpms/src/tpm2/BaseTypes.h
      type: int
    - item_type: typedef
      name: UINT16
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/libtpms/src/tpm2/BaseTypes.h
      type: uint16_t
    - item_type: typedef
      name: INT16
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/libtpms/src/tpm2/BaseTypes.h
      type: int16_t
    - item_type: typedef
      name: UINT32
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/libtpms/src/tpm2/BaseTypes.h
      type: uint32_t
    - item_type: typedef
      name: INT32
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/libtpms/src/tpm2/BaseTypes.h
      type: int32_t
    - item_type: typedef
      name: UINT64
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/libtpms/src/tpm2/BaseTypes.h
      type: uint64_t
    - item_type: typedef
      name: INT64
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/libtpms/src/tpm2/BaseTypes.h
      type: int64_t
    union: []
- function_names:
  - VolatileSave
  - VolatileLoad
  source_file: /src/libtpms/src/tpm2/StateMarshal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PCRBelongsAuthGroup
  - PCRBelongsPolicyGroup
  - PCRBelongsTCBGroup
  - PCRPolicyIsAvailable
  - PCRGetAuthValue
  - PCRGetAuthPolicy
  - PCRManufacture
  - GetSavedPcrPointer
  - HASH_CASE
  - PcrIsAllocated
  - GetPcrPointerFromPcrArray
  - GetPcrPointerIfAllocated
  - GetPcrPointer
  - IsPcrSelected
  - FilterPcr
  - PcrDrtm
  - PCR_ClearAuth
  - PCRStartup
  - PCRStateSave
  - PCRIsStateSaved
  - PCRIsResetAllowed
  - PCRChanged
  - PCRIsExtendAllowed
  - PCRExtend
  - PCRComputeCurrentDigest
  - PCRRead
  - PCRAllocate
  - PCRSetValue
  - PCRResetDynamics
  - PCRCapGetAllocation
  - PCRSetSelectBit
  - PCRGetProperty
  - PCRCapGetProperties
  - PCRCapGetHandles
  - PCRCapGetOneHandle
  source_file: /src/libtpms/src/tpm2/PCR.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Platform.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NOT_REFERENCED
  - MUST_BE
  source_file: /src/libtpms/src/tpm2/CompilerDependencies.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: SOCKET
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/libtpms/src/tpm2/CompilerDependencies.h
      type: int
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Bits_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPMPropertyIsDefined
  - TPMCapGetProperties
  - TPMCapGetOneProperty
  source_file: /src/libtpms/src/tpm2/PropertyCap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIZE_OF_CONTEXT_HEADER
      pos:
        line_end: 257
        line_start: 255
        source_file: /src/libtpms/src/tpm2/PropertyCap.c
      type_or_value: sizeof(UINT64) + sizeof(TPMI_DH_CONTEXT) + sizeof(TPMI_RH_HIERARCHY)
    - item_type: preproc_def
      name: SIZE_OF_CONTEXT_INTEGRITY
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/libtpms/src/tpm2/PropertyCap.c
      type_or_value: (sizeof(UINT16) + CONTEXT_INTEGRITY_HASH_SIZE)
    - item_type: preproc_def
      name: SIZE_OF_FINGERPRINT
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/libtpms/src/tpm2/PropertyCap.c
      type_or_value: sizeof(UINT64)
    - item_type: preproc_def
      name: SIZE_OF_CONTEXT_BLOB_OVERHEAD
      pos:
        line_end: 261
        line_start: 259
        source_file: /src/libtpms/src/tpm2/PropertyCap.c
      type_or_value: (sizeof(UINT16) + SIZE_OF_CONTEXT_INTEGRITY + SIZE_OF_FINGERPRINT)
    - item_type: preproc_def
      name: SIZE_OF_CONTEXT_OVERHEAD
      pos:
        line_end: 263
        line_start: 261
        source_file: /src/libtpms/src/tpm2/PropertyCap.c
      type_or_value: (SIZE_OF_CONTEXT_HEADER + SIZE_OF_CONTEXT_BLOB_OVERHEAD)
    structs: []
    typedefs: []
    union:
    - fields:
      - name: att
        type: TPMA_MEMORY
      - name: u32
        type: UINT32
      item_type: union
      name: attributes = {TPMA_ZERO_INITIALIZER()}
      pos:
        line_end: 207
        line_start: 203
        source_file: /src/libtpms/src/tpm2/PropertyCap.c
    - fields:
      - name: attr
        type: TPMA_MODES
      - name: u32
        type: UINT32
      item_type: union
      name: flags = {TPMA_ZERO_INITIALIZER()}
      pos:
        line_end: 394
        line_start: 390
        source_file: /src/libtpms/src/tpm2/PropertyCap.c
    - fields:
      - name: attr
        type: TPMA_PERMANENT
      - name: u32
        type: UINT32
      item_type: union
      name: flags = {TPMA_ZERO_INITIALIZER()}
      pos:
        line_end: 419
        line_start: 415
        source_file: /src/libtpms/src/tpm2/PropertyCap.c
    - fields:
      - name: attr
        type: TPMA_STARTUP_CLEAR
      - name: u32
        type: UINT32
      item_type: union
      name: flags = {TPMA_ZERO_INITIALIZER()}
      pos:
        line_end: 447
        line_start: 443
        source_file: /src/libtpms/src/tpm2/PropertyCap.c
- function_names: []
  source_file: /src/libtpms/src/tpm2/Marshal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ARRAYSIZE
  - _platPcr__NumberOfPcrs
  - _platPcr__GetPcrInitializationAttributes
  - _platPcr_IsPcrBankDefaultActive
  - _platPcr__GetInitialValueForPcr
  source_file: /src/libtpms/src/tpm2/PlatformPcr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ARRAY_SIZE
  source_file: /src/libtpms/src/tpm2/NVMarshal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UINT16
      pos:
        line_end: 55
        line_start: 51
        source_file: /src/libtpms/src/tpm2/NVMarshal.h
      type_or_value: VolatileState_Marshal(BYTE **buffer, INT32 *size,
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/DA_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Hash_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_Hash_data
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/Hash_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Hash_hashAlg
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/Hash_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_Hash_hierarchy
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/Hash_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    structs:
    - fields:
      - name: data
        type: TPM2B_MAX_BUFFER
      - name: hashAlg
        type: TPMI_ALG_HASH
      - name: hierarchy
        type: TPMI_RH_HIERARCHY
      item_type: struct
      name: Hash_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/Hash_fp.h
    - fields:
      - name: outHash
        type: TPM2B_DIGEST
      - name: validation
        type: TPMT_TK_HASHCHECK
      item_type: struct
      name: Hash_Out
      pos:
        line_end: 82
        line_start: 78
        source_file: /src/libtpms/src/tpm2/Hash_fp.h
    typedefs: []
    union: []
- function_names:
  - TestBit
  - SetBit
  - ClearBit
  source_file: /src/libtpms/src/tpm2/Bits.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Object_spt_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FATAL_ERROR_ALLOCATION
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (1)
    - item_type: preproc_def
      name: FATAL_ERROR_DIVIDE_ZERO
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (2)
    - item_type: preproc_def
      name: FATAL_ERROR_INTERNAL
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (3)
    - item_type: preproc_def
      name: FATAL_ERROR_PARAMETER
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (4)
    - item_type: preproc_def
      name: FATAL_ERROR_ENTROPY
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (5)
    - item_type: preproc_def
      name: FATAL_ERROR_SELF_TEST
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (6)
    - item_type: preproc_def
      name: FATAL_ERROR_CRYPTO
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (7)
    - item_type: preproc_def
      name: FATAL_ERROR_NV_UNRECOVERABLE
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (8)
    - item_type: preproc_def
      name: FATAL_ERROR_REMANUFACTURED
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (9)
    - item_type: preproc_def
      name: FATAL_ERROR_DRBG
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (10)
    - item_type: preproc_def
      name: FATAL_ERROR_MOVE_SIZE
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (11)
    - item_type: preproc_def
      name: FATAL_ERROR_COUNTER_OVERFLOW
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (12)
    - item_type: preproc_def
      name: FATAL_ERROR_SUBTRACT
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (13)
    - item_type: preproc_def
      name: FATAL_ERROR_MATHLIBRARY
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (14)
    - item_type: preproc_def
      name: FATAL_ERROR_RESERVED_START
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (15)
    - item_type: preproc_def
      name: FATAL_ERROR_RESERVED_END
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (499)
    - item_type: preproc_def
      name: FATAL_ERROR_ASSERT
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (500)
    - item_type: preproc_def
      name: FATAL_ERROR_PLATFORM
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (600)
    - item_type: preproc_def
      name: FATAL_ERROR_FORCED
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/libtpms/src/tpm2/TpmProfile_ErrorCodes.h
      type_or_value: (1000)
    structs: []
    typedefs: []
    union: []
- function_names:
  - REVERSE_ENDIAN_16
  - REVERSE_ENDIAN_32
  - REVERSE_ENDIAN_64
  - REVERSE_ENDIAN_16
  - REVERSE_ENDIAN_32
  - REVERSE_ENDIAN_64
  - REVERSE_ENDIAN_16
  - REVERSE_ENDIAN_32
  - REVERSE_ENDIAN_64
  - REVERSE_ENDIAN_16
  - REVERSE_ENDIAN_32
  - REVERSE_ENDIAN_64
  - REVERSE_ENDIAN_16
  - REVERSE_ENDIAN_32
  - REVERSE_ENDIAN_64
  - TPM_STATIC_ASSERT
  source_file: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NORETURN
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
      type_or_value: __attribute__((noreturn))
    - item_type: preproc_def
      name: TPM_INLINE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/libtpms/src/tpm2/CompilerDependencies_gcc.h
      type_or_value: inline __attribute__((always_inline))
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/BackwardsCompatibility.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: SEED_COMPAT_LEVEL
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibility.h
      type: UINT8
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ACT_SetTimeout_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ACT_SetTimeout_actHandle
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/ACT_SetTimeout_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_ACT_SetTimeout_startTimeout
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/ACT_SetTimeout_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: actHandle
        type: TPMI_RH_ACT
      - name: startTimeout
        type: UINT32
      item_type: struct
      name: ACT_SetTimeout_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/ACT_SetTimeout_fp.h
    typedefs: []
    union: []
- function_names:
  - IF_ACT_0_IMPLEMENTED
  - IF_ACT_1_IMPLEMENTED
  - IF_ACT_2_IMPLEMENTED
  - IF_ACT_3_IMPLEMENTED
  - IF_ACT_4_IMPLEMENTED
  - IF_ACT_5_IMPLEMENTED
  - IF_ACT_6_IMPLEMENTED
  - IF_ACT_7_IMPLEMENTED
  - IF_ACT_8_IMPLEMENTED
  - IF_ACT_9_IMPLEMENTED
  - IF_ACT_A_IMPLEMENTED
  - IF_ACT_B_IMPLEMENTED
  - IF_ACT_C_IMPLEMENTED
  - IF_ACT_D_IMPLEMENTED
  - IF_ACT_E_IMPLEMENTED
  - IF_ACT_F_IMPLEMENTED
  - FOR_EACH_ACT
  source_file: /src/libtpms/src/tpm2/PlatformACT.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RH_ACT_0
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_1
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_2
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_3
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_4
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_5
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_6
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_7
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_8
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_9
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_A
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_B
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_C
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_D
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_E
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_F
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
      type_or_value: 'NO'
    structs:
    - fields:
      - name: remaining
        type: uint32_t
      - name: newValue
        type: uint32_t
      - name: signaled
        type: uint8_t
      - name: pending
        type: uint8_t
      - name: number
        type: uint8_t
      item_type: struct
      name: ACT_DATA
      pos:
        line_end: 74
        line_start: 67
        source_file: /src/libtpms/src/tpm2/PlatformACT.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/LoadExternal_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_LoadExternal_inPrivate
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/LoadExternal_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_LoadExternal_inPublic
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/LoadExternal_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_LoadExternal_hierarchy
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/LoadExternal_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    structs:
    - fields:
      - name: inPrivate
        type: TPM2B_SENSITIVE
      - name: inPublic
        type: TPM2B_PUBLIC
      - name: hierarchy
        type: TPMI_RH_HIERARCHY
      item_type: struct
      name: LoadExternal_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/LoadExternal_fp.h
    - fields:
      - name: objectHandle
        type: TPM_HANDLE
      - name: name
        type: TPM2B_NAME
      item_type: struct
      name: LoadExternal_Out
      pos:
        line_end: 82
        line_start: 78
        source_file: /src/libtpms/src/tpm2/LoadExternal_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/GetTime_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_GetTime_privacyAdminHandle
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/GetTime_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_GetTime_signHandle
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/GetTime_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_GetTime_qualifyingData
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/GetTime_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_GetTime_inScheme
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/GetTime_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: privacyAdminHandle
        type: TPMI_RH_ENDORSEMENT
      - name: signHandle
        type: TPMI_DH_OBJECT
      - name: qualifyingData
        type: TPM2B_DATA
      - name: inScheme
        type: TPMT_SIG_SCHEME
      item_type: struct
      name: GetTime_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/GetTime_fp.h
    - fields:
      - name: timeInfo
        type: TPM2B_ATTEST
      - name: signature
        type: TPMT_SIGNATURE
      item_type: struct
      name: GetTime_Out
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/libtpms/src/tpm2/GetTime_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_ReadPublic2_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_NV_ReadPublic2_nvIndex
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/NV_ReadPublic2_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: nvIndex
        type: TPMI_RH_NV_INDEX
      item_type: struct
      name: NV_ReadPublic2_In
      pos:
        line_end: 72
        line_start: 69
        source_file: /src/libtpms/src/tpm2/NV_ReadPublic2_fp.h
    - fields:
      - name: nvPublic
        type: TPM2B_NV_PUBLIC_2
      - name: nvName
        type: TPM2B_NAME
      item_type: struct
      name: NV_ReadPublic2_Out
      pos:
        line_end: 79
        line_start: 75
        source_file: /src/libtpms/src/tpm2/NV_ReadPublic2_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/CryptoInterface.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: name[32]
        type: char
      - name: version[32]
        type: char
      item_type: struct
      name: crypto_impl_description
      pos:
        line_end: 55
        line_start: 49
        source_file: /src/libtpms/src/tpm2/CryptoInterface.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_UndefineSpace_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_NV_UndefineSpace_authHandle
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/NV_UndefineSpace_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_UndefineSpace_nvIndex
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/NV_UndefineSpace_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_PROVISION
      - name: nvIndex
        type: TPMI_RH_NV_DEFINED_INDEX
      item_type: struct
      name: NV_UndefineSpace_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/NV_UndefineSpace_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicySecret_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicySecret_authHandle
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/PolicySecret_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicySecret_policySession
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/PolicySecret_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_PolicySecret_nonceTPM
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/PolicySecret_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicySecret_cpHashA
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/PolicySecret_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_PolicySecret_policyRef
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/PolicySecret_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    - item_type: preproc_def
      name: RC_PolicySecret_expiration
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libtpms/src/tpm2/PolicySecret_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_4)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_DH_ENTITY
      - name: policySession
        type: TPMI_SH_POLICY
      - name: nonceTPM
        type: TPM2B_NONCE
      - name: cpHashA
        type: TPM2B_DIGEST
      - name: policyRef
        type: TPM2B_NONCE
      - name: expiration
        type: INT32
      item_type: struct
      name: PolicySecret_In
      pos:
        line_end: 78
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicySecret_fp.h
    - fields:
      - name: timeout
        type: TPM2B_TIMEOUT
      - name: policyTicket
        type: TPMT_TK_AUTH
      item_type: struct
      name: PolicySecret_Out
      pos:
        line_end: 85
        line_start: 81
        source_file: /src/libtpms/src/tpm2/PolicySecret_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ECDH_KeyGen_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ECDH_KeyGen_keyHandle
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/ECDH_KeyGen_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: keyHandle
        type: TPMI_DH_OBJECT
      item_type: struct
      name: ECDH_KeyGen_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/ECDH_KeyGen_fp.h
    - fields:
      - name: zPoint
        type: TPM2B_ECC_POINT
      - name: pubPoint
        type: TPM2B_ECC_POINT
      item_type: struct
      name: ECDH_KeyGen_Out
      pos:
        line_end: 80
        line_start: 76
        source_file: /src/libtpms/src/tpm2/ECDH_KeyGen_fp.h
    typedefs: []
    union: []
- function_names:
  - JOIN
  - JOIN3
  - CONCAT
  - CONCAT3
  source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PCR_SELECT_MIN
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: ((PLATFORM_PCR + 7) / 8)
    - item_type: preproc_def
      name: PCR_SELECT_MAX
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: ((IMPLEMENTATION_PCR + 7) / 8)
    - item_type: preproc_def
      name: MAX_ORDERLY_COUNT
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: ((1 << ORDERLY_BITS) - 1)
    - item_type: preproc_def
      name: RSA_MAX_PRIME
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: (MAX_RSA_KEY_BYTES / 2)
    - item_type: preproc_def
      name: RSA_PRIVATE_SIZE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: (RSA_MAX_PRIME * 5)
    - item_type: preproc_def
      name: CONTEXT_HASH_ALGORITHM
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: SHA3_512
    - item_type: preproc_def
      name: CONTEXT_HASH_ALGORITHM
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: SHA512
    - item_type: preproc_def
      name: CONTEXT_HASH_ALGORITHM
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: SHA3_384
    - item_type: preproc_def
      name: CONTEXT_HASH_ALGORITHM
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: SHA384
    - item_type: preproc_def
      name: CONTEXT_HASH_ALGORITHM
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: SHA3_256
    - item_type: preproc_def
      name: CONTEXT_HASH_ALGORITHM
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: SHA256
    - item_type: preproc_def
      name: CONTEXT_HASH_ALGORITHM
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: SM3_256
    - item_type: preproc_def
      name: CONTEXT_HASH_ALGORITHM
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: SHA1
    - item_type: preproc_def
      name: CONTEXT_INTEGRITY_HASH_ALG
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: CONCAT(TPM_ALG_, CONTEXT_HASH_ALGORITHM)
    - item_type: preproc_def
      name: CONTEXT_INTEGRITY_HASH_SIZE
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: CONCAT(CONTEXT_HASH_ALGORITHM, _DIGEST_SIZE)
    - item_type: preproc_def
      name: RSA_SECURITY_STRENGTH
      pos:
        line_end: 122
        line_start: 112
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: "(MAX_RSA_KEY_BITS >= 15360                     \\\n           ?
        256                                     \\\n           : (MAX_RSA_KEY_BITS
        >= 7680               \\\n                  ? 192                              \\\n
        \                 : (MAX_RSA_KEY_BITS >= 3072        \\\n                         ?
        128                       \\\n                         : (MAX_RSA_KEY_BITS
        >= 2048 \\\n                                ? 112                \\\n                                :
        (MAX_RSA_KEY_BITS >= 1024 ? 80 : 0)))))"
    - item_type: preproc_def
      name: RSA_SECURITY_STRENGTH
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: '0'
    - item_type: preproc_def
      name: ECC_SECURITY_STRENGTH
      pos:
        line_end: 131
        line_start: 127
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: "(MAX_ECC_KEY_BITS >= 521  \\\n           ? 256                \\\n
        \          : (MAX_ECC_KEY_BITS >= 384 ? 192 : (MAX_ECC_KEY_BITS >= 256 ? 128
        : 0)))"
    - item_type: preproc_def
      name: ECC_SECURITY_STRENGTH
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MAX_ASYM_SECURITY_STRENGTH
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: MAX(RSA_SECURITY_STRENGTH, ECC_SECURITY_STRENGTH)
    - item_type: preproc_def
      name: MAX_HASH_SECURITY_STRENGTH
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: ((CONTEXT_INTEGRITY_HASH_SIZE * 8) / 2)
    - item_type: preproc_def
      name: MAX_SYM_SECURITY_STRENGTH
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: MAX_SYM_KEY_BITS
    - item_type: preproc_def
      name: MAX_SECURITY_STRENGTH_BITS
      pos:
        line_end: 145
        line_start: 142
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: "MAX(MAX_ASYM_SECURITY_STRENGTH, \\\n        MAX(MAX_SYM_SECURITY_STRENGTH,
        MAX_HASH_SECURITY_STRENGTH))"
    - item_type: preproc_def
      name: PROOF_SIZE
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: CONTEXT_INTEGRITY_HASH_SIZE
    - item_type: preproc_def
      name: COMPLIANT_PROOF_SIZE
      pos:
        line_end: 153
        line_start: 151
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: (MAX(CONTEXT_INTEGRITY_HASH_SIZE, (2 * MAX_SYM_KEY_BYTES)))
    - item_type: preproc_def
      name: COMPLIANT_PRIMARY_SEED_SIZE
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: BITS_TO_BYTES(MAX_SECURITY_STRENGTH_BITS * 2)
    - item_type: preproc_def
      name: PRIMARY_SEED_SIZE
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: PROOF_SIZE
    - item_type: preproc_def
      name: PROOF_SIZE
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: COMPLIANT_PROOF_SIZE
    - item_type: preproc_def
      name: PRIMARY_SEED_SIZE
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: COMPLIANT_PRIMARY_SEED_SIZE
    - item_type: preproc_def
      name: CONTEXT_ENCRYPT_ALGORITHM
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: AES
    - item_type: preproc_def
      name: CONTEXT_ENCRYPT_ALGORITHM
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: SM4
    - item_type: preproc_def
      name: CONTEXT_ENCRYPT_ALGORITHM
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: CAMELLIA
    - item_type: preproc_def
      name: CONTEXT_ENCRYPT_ALG
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: CONCAT3(ALG_, CONTEXT_ENCRYPT_ALGORITHM, _VALUE)
    - item_type: preproc_def
      name: CONTEXT_ENCRYPT_KEY_BITS
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: CONCAT(CONTEXT_ENCRYPT_ALGORITHM, _MAX_KEY_SIZE_BITS)
    - item_type: preproc_def
      name: CONTEXT_ENCRYPT_KEY_BYTES
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: ((CONTEXT_ENCRYPT_KEY_BITS + 7) / 8)
    - item_type: preproc_def
      name: LABEL_MAX_BUFFER
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: MIN(32, MAX(MAX_ECC_KEY_BYTES, MAX_DIGEST_SIZE))
    - item_type: preproc_def
      name: EXPIRATION_BIT
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: ((UINT64)1 << 63)
    - item_type: preproc_def
      name: CONTEXT_COUNTER
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/libtpms/src/tpm2/TpmCalculatedAttributes.h
      type_or_value: UINT64
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/StartAuthSession_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_StartAuthSession_tpmKey
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/StartAuthSession_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_StartAuthSession_bind
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/StartAuthSession_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_StartAuthSession_nonceCaller
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/StartAuthSession_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_StartAuthSession_encryptedSalt
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/StartAuthSession_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_StartAuthSession_sessionType
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libtpms/src/tpm2/StartAuthSession_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    - item_type: preproc_def
      name: RC_StartAuthSession_symmetric
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libtpms/src/tpm2/StartAuthSession_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_4)
    - item_type: preproc_def
      name: RC_StartAuthSession_authHash
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libtpms/src/tpm2/StartAuthSession_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_5)
    structs:
    - fields:
      - name: tpmKey
        type: TPMI_DH_OBJECT
      - name: bind
        type: TPMI_DH_ENTITY
      - name: nonceCaller
        type: TPM2B_NONCE
      - name: encryptedSalt
        type: TPM2B_ENCRYPTED_SECRET
      - name: sessionType
        type: TPM_SE
      - name: symmetric
        type: TPMT_SYM_DEF
      - name: authHash
        type: TPMI_ALG_HASH
      item_type: struct
      name: StartAuthSession_In
      pos:
        line_end: 79
        line_start: 70
        source_file: /src/libtpms/src/tpm2/StartAuthSession_fp.h
    - fields:
      - name: sessionHandle
        type: TPMI_SH_AUTH_SESSION
      - name: nonceTPM
        type: TPM2B_NONCE
      item_type: struct
      name: StartAuthSession_Out
      pos:
        line_end: 86
        line_start: 82
        source_file: /src/libtpms/src/tpm2/StartAuthSession_fp.h
    typedefs: []
    union: []
- function_names:
  - X509PushPoint
  - X509AddSigningAlgorithmECC
  - X509AddPublicECC
  source_file: /src/libtpms/src/tpm2/X509_ECC.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Manufacture_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MANUF_NV_NOT_READY
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/Manufacture_fp.h
      type_or_value: (-2)
    - item_type: preproc_def
      name: MANUF_INVALID_CONFIG
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/Manufacture_fp.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: MANUF_OK
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/Manufacture_fp.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MANUF_ALREADY_DONE
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/Manufacture_fp.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MANUF_FIRST_TIME
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/Manufacture_fp.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MANUF_REMANUFACTURE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/Manufacture_fp.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TEARDOWN_OK
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/libtpms/src/tpm2/Manufacture_fp.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TEARDOWN_NOTHINGDONE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libtpms/src/tpm2/Manufacture_fp.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Import_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_Import_parentHandle
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/Import_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Import_encryptionKey
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/Import_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Import_objectPublic
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/Import_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_Import_duplicate
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/Import_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    - item_type: preproc_def
      name: RC_Import_inSymSeed
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/Import_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_4)
    - item_type: preproc_def
      name: RC_Import_symmetricAlg
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/Import_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_5)
    structs:
    - fields:
      - name: parentHandle
        type: TPMI_DH_OBJECT
      - name: encryptionKey
        type: TPM2B_DATA
      - name: objectPublic
        type: TPM2B_PUBLIC
      - name: duplicate
        type: TPM2B_PRIVATE
      - name: inSymSeed
        type: TPM2B_ENCRYPTED_SECRET
      - name: symmetricAlg
        type: TPMT_SYM_DEF_OBJECT
      item_type: struct
      name: Import_In
      pos:
        line_end: 78
        line_start: 70
        source_file: /src/libtpms/src/tpm2/Import_fp.h
    - fields:
      - name: outPrivate
        type: TPM2B_PRIVATE
      item_type: struct
      name: Import_Out
      pos:
        line_end: 84
        line_start: 81
        source_file: /src/libtpms/src/tpm2/Import_fp.h
    typedefs: []
    union: []
- function_names:
  - TPM2_StartAuthSession
  - TPM2_PolicyRestart
  source_file: /src/libtpms/src/tpm2/SessionCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BnMod
  source_file: /src/libtpms/src/tpm2/BnSupport_Interface.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2_RSA_Encrypt
  - TPM2_RSA_Decrypt
  - TPM2_ECDH_KeyGen
  - TPM2_ECDH_ZGen
  - TPM2_ECC_Parameters
  - TPM2_ZGen_2Phase
  - TPM2_ECC_Encrypt
  - TPM2_ECC_Decrypt
  source_file: /src/libtpms/src/tpm2/AsymmetricCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RuntimeProfileInit
  - RuntimeProfileFree
  - RuntimeProfileSetRuntimeProfile
  - RuntimeProfileCheckJSON
  - RuntimeProfileDedupStrItems
  - RuntimeProfileGetFromJSON
  - RuntimeProfileGetNameFromJSON
  - RuntimeProfileGetDescriptionFromJSON
  - GetStateFormatLevelFromJSON
  - GetAlgorithmsProfileFromJSON
  - GetAttributesProfileFromJSON
  - GetCommandsProfileFromJSON
  - GetParametersFromJSON
  - RuntimeProfileFormat
  - RuntimeProfileFormatJSON
  - RuntimeProfileNameMatch
  - RuntimeProfileFindByName
  - RuntimeProfileSet
  - RuntimeProfileGetJSON
  - RuntimeProfileTest
  - RuntimeProfileWasNullProfile
  - RuntimeProfileGetByIndex
  - SEED_COMPAT_LEVEL::RuntimeProfileGetSeedCompatLevel
  - RuntimeProfileRequiresAttributeFlags
  source_file: /src/libtpms/src/tpm2/RuntimeProfile.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_PROFILE_NAME_LEN
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libtpms/src/tpm2/RuntimeProfile.c
      type_or_value: '32'
    - item_type: preproc_def
      name: STATE_FORMAT_LEVEL_CURRENT
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/RuntimeProfile.c
      type_or_value: '8'
    - item_type: preproc_def
      name: STATE_FORMAT_LEVEL_UNKNOWN
      pos:
        line_end: 84
        line_start: 81
        source_file: /src/libtpms/src/tpm2/RuntimeProfile.c
      type_or_value: '0 '
    - item_type: preproc_def
      name: DESCRIPTION_MAX_SIZE
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/libtpms/src/tpm2/RuntimeProfile.c
      type_or_value: '250'
    - item_type: preproc_def
      name: MAP_ENTRY_REGEX
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/libtpms/src/tpm2/RuntimeProfile.c
      type_or_value: '"[[:space:]]*\"[^\"]+\"[[:space:]]*:[[:space:]]*(\"[^\"]*\"|[[:digit:]]+)[[:space:]]*"'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*prefix'
        type: char
      - name: prefix_len
        type: size_t
      - name: '*commandsProfile'
        type: char
      - name: '*algorithmsProfile'
        type: char
      - name: '*attributesProfile'
        type: char
      - name: stateFormatLevel
        type: unsigned int
      - name: '*description'
        type: char
      - name: allowModifications
        type: bool
      item_type: struct
      name: RuntimeProfileDesc
      pos:
        line_end: 112
        line_start: 65
        source_file: /src/libtpms/src/tpm2/RuntimeProfile.c
    typedefs: []
    union: []
- function_names:
  - BnSetTop
  - BnClearTop
  - BnInitializeWord
  - BnInit
  - BnCopy
  - BnPointCopy
  - BnInitializePoint
  source_file: /src/libtpms/src/tpm2/BnMemory.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/IncrementalSelfTest_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_IncrementalSelfTest_toTest
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/IncrementalSelfTest_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: toTest
        type: TPML_ALG
      item_type: struct
      name: IncrementalSelfTest_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/IncrementalSelfTest_fp.h
    - fields:
      - name: toDoList
        type: TPML_ALG
      item_type: struct
      name: IncrementalSelfTest_Out
      pos:
        line_end: 79
        line_start: 76
        source_file: /src/libtpms/src/tpm2/IncrementalSelfTest_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/EncryptDecrypt2_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_EncryptDecrypt2_keyHandle
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/EncryptDecrypt2_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_EncryptDecrypt2_inData
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/EncryptDecrypt2_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_EncryptDecrypt2_decrypt
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/EncryptDecrypt2_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_EncryptDecrypt2_mode
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/EncryptDecrypt2_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    - item_type: preproc_def
      name: RC_EncryptDecrypt2_ivIn
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/EncryptDecrypt2_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_4)
    structs:
    - fields:
      - name: keyHandle
        type: TPMI_DH_OBJECT
      - name: inData
        type: TPM2B_MAX_BUFFER
      - name: decrypt
        type: TPMI_YES_NO
      - name: mode
        type: TPMI_ALG_CIPHER_MODE
      - name: ivIn
        type: TPM2B_IV
      item_type: struct
      name: EncryptDecrypt2_In
      pos:
        line_end: 77
        line_start: 70
        source_file: /src/libtpms/src/tpm2/EncryptDecrypt2_fp.h
    - fields:
      - name: outData
        type: TPM2B_MAX_BUFFER
      - name: ivOut
        type: TPM2B_IV
      item_type: struct
      name: EncryptDecrypt2_Out
      pos:
        line_end: 84
        line_start: 80
        source_file: /src/libtpms/src/tpm2/EncryptDecrypt2_fp.h
    typedefs: []
    union: []
- function_names:
  - TPM2_ROUNDUP
  - clear_and_free
  source_file: /src/libtpms/src/tpm2/Utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2B_STRING
  source_file: /src/libtpms/src/tpm2/Global.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/MAC_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_MAC_handle
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/MAC_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_MAC_buffer
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/MAC_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_MAC_inScheme
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/MAC_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: handle
        type: TPMI_DH_OBJECT
      - name: buffer
        type: TPM2B_MAX_BUFFER
      - name: inScheme
        type: TPMI_ALG_MAC_SCHEME
      item_type: struct
      name: MAC_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/MAC_fp.h
    - fields:
      - name: outMAC
        type: TPM2B_DIGEST
      item_type: struct
      name: MAC_Out
      pos:
        line_end: 81
        line_start: 78
        source_file: /src/libtpms/src/tpm2/MAC_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Handle_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DEFINE_ACT
  source_file: /src/libtpms/src/tpm2/PlatformData.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EXTERN
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/libtpms/src/tpm2/PlatformData.h
      type_or_value: extern
    - item_type: preproc_def
      name: VTPM
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/libtpms/src/tpm2/PlatformData.h
      type_or_value: 'NO                 // Default: Either YES or NO   libtpms: NO'
    - item_type: preproc_def
      name: FILE_BACKED_NV
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/libtpms/src/tpm2/PlatformData.h
      type_or_value: '(VTPM && YES)  // Default: Either YES or NO'
    - item_type: preproc_def
      name: FILE_BACKED_NV
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/libtpms/src/tpm2/PlatformData.h
      type_or_value: "YES\t// libtpms: write NvChip file if no callbacks are set"
    structs: []
    typedefs:
    - item_type: typedef
      name: clock64_t
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/libtpms/src/tpm2/PlatformData.h
      type: uint64_t
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/HMAC_Start_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_HMAC_Start_handle
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/HMAC_Start_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_HMAC_Start_auth
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/HMAC_Start_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_HMAC_Start_hashAlg
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/HMAC_Start_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: handle
        type: TPMI_DH_OBJECT
      - name: auth
        type: TPM2B_AUTH
      - name: hashAlg
        type: TPMI_ALG_HASH
      item_type: struct
      name: HMAC_Start_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/HMAC_Start_fp.h
    - fields:
      - name: sequenceHandle
        type: TPMI_DH_OBJECT
      item_type: struct
      name: HMAC_Start_Out
      pos:
        line_end: 81
        line_start: 78
        source_file: /src/libtpms/src/tpm2/HMAC_Start_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ZGen_2Phase_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ZGen_2Phase_keyA
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/ZGen_2Phase_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_ZGen_2Phase_inQsB
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/ZGen_2Phase_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_ZGen_2Phase_inQeB
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/ZGen_2Phase_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_ZGen_2Phase_inScheme
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/ZGen_2Phase_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    - item_type: preproc_def
      name: RC_ZGen_2Phase_counter
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/ZGen_2Phase_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_4)
    structs:
    - fields:
      - name: keyA
        type: TPMI_DH_OBJECT
      - name: inQsB
        type: TPM2B_ECC_POINT
      - name: inQeB
        type: TPM2B_ECC_POINT
      - name: inScheme
        type: TPMI_ECC_KEY_EXCHANGE
      - name: counter
        type: UINT16
      item_type: struct
      name: ZGen_2Phase_In
      pos:
        line_end: 77
        line_start: 70
        source_file: /src/libtpms/src/tpm2/ZGen_2Phase_fp.h
    - fields:
      - name: outZ1
        type: TPM2B_ECC_POINT
      - name: outZ2
        type: TPM2B_ECC_POINT
      item_type: struct
      name: ZGen_2Phase_Out
      pos:
        line_end: 84
        line_start: 80
        source_file: /src/libtpms/src/tpm2/ZGen_2Phase_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmProfile.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASH_LIB
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/TpmProfile.h
      type_or_value: Ossl
    - item_type: preproc_def
      name: SYM_LIB
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/TpmProfile.h
      type_or_value: Ossl
    - item_type: preproc_def
      name: MATH_LIB
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/TpmProfile.h
      type_or_value: TpmBigNum
    - item_type: preproc_def
      name: BN_MATH_LIB
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/TpmProfile.h
      type_or_value: Ossl
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/pcrstruct.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_PCR_GROUP_BITS
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/libtpms/src/tpm2/pcrstruct.h
      type_or_value: '3'
    structs:
    - fields: []
      item_type: struct
      name: PCR
      pos:
        line_end: 99
        line_start: 73
        source_file: /src/libtpms/src/tpm2/pcrstruct.h
    - fields:
      - name: stateSave
        type: unsigned int
      - name: doNotIncrementPcrCounter
        type: unsigned int
      - name: policyAuthGroup
        type: unsigned int
      - name: authValuesGroup
        type: unsigned int
      - name: resetLocality
        type: unsigned int
      - name: extendLocality
        type: unsigned int
      item_type: struct
      name: PCR_Attributes
      pos:
        line_end: 141
        line_start: 104
        source_file: /src/libtpms/src/tpm2/pcrstruct.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ContextSave_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ContextSave_saveHandle
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/ContextSave_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: saveHandle
        type: TPMI_DH_CONTEXT
      item_type: struct
      name: ContextSave_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/ContextSave_fp.h
    - fields:
      - name: context
        type: TPMS_CONTEXT
      item_type: struct
      name: ContextSave_Out
      pos:
        line_end: 79
        line_start: 76
        source_file: /src/libtpms/src/tpm2/ContextSave_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/_TPM_Hash_Data_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _TPM_Init
  - TPM2_Startup
  - TPM2_Shutdown
  source_file: /src/libtpms/src/tpm2/StartupCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/RSA_Decrypt_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_RSA_Decrypt_keyHandle
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/RSA_Decrypt_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_RSA_Decrypt_cipherText
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/RSA_Decrypt_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_RSA_Decrypt_inScheme
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/RSA_Decrypt_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_RSA_Decrypt_label
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/RSA_Decrypt_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    structs:
    - fields:
      - name: keyHandle
        type: TPMI_DH_OBJECT
      - name: cipherText
        type: TPM2B_PUBLIC_KEY_RSA
      - name: inScheme
        type: TPMT_RSA_DECRYPT
      - name: label
        type: TPM2B_DATA
      item_type: struct
      name: RSA_Decrypt_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/RSA_Decrypt_fp.h
    - fields:
      - name: message
        type: TPM2B_PUBLIC_KEY_RSA
      item_type: struct
      name: RSA_Decrypt_Out
      pos:
        line_end: 82
        line_start: 79
        source_file: /src/libtpms/src/tpm2/RSA_Decrypt_fp.h
    typedefs: []
    union: []
- function_names:
  - rand32
  - _plat__GetEntropy
  source_file: /src/libtpms/src/tpm2/Entropy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmFail_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Rewrap_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_Rewrap_oldParent
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/Rewrap_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Rewrap_newParent
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/Rewrap_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_Rewrap_inDuplicate
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/Rewrap_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Rewrap_name
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/Rewrap_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_Rewrap_inSymSeed
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/Rewrap_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    structs:
    - fields:
      - name: oldParent
        type: TPMI_DH_OBJECT
      - name: newParent
        type: TPMI_DH_OBJECT
      - name: inDuplicate
        type: TPM2B_PRIVATE
      - name: name
        type: TPM2B_NAME
      - name: inSymSeed
        type: TPM2B_ENCRYPTED_SECRET
      item_type: struct
      name: Rewrap_In
      pos:
        line_end: 77
        line_start: 70
        source_file: /src/libtpms/src/tpm2/Rewrap_fp.h
    - fields:
      - name: outDuplicate
        type: TPM2B_PRIVATE
      - name: outSymSeed
        type: TPM2B_ENCRYPTED_SECRET
      item_type: struct
      name: Rewrap_Out
      pos:
        line_end: 84
        line_start: 80
        source_file: /src/libtpms/src/tpm2/Rewrap_fp.h
    typedefs: []
    union: []
- function_names:
  - TPMInit
  - TPMRegisterStartup
  - TPMIsStarted
  source_file: /src/libtpms/src/tpm2/Power.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _plat__RunCommand
  - _plat__Fail
  source_file: /src/libtpms/src/tpm2/RunCommand.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - UNMARSHAL_DISPATCH
  - MARSHAL_DISPATCH
  - UNMARSHAL_DISPATCH
  - MARSHAL_DISPATCH
  source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: END_OF_LIST
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0xff'
    - item_type: preproc_def
      name: ADD_FLAG
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: _UNMARSHAL_T_
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: marshalIndex_t
    - item_type: preproc_def
      name: _MARSHAL_T_
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: marshalIndex_t
    - item_type: preproc_def
      name: _UNMARSHAL_T_
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: UNMARSHAL_t
    - item_type: preproc_def
      name: _MARSHAL_T_
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: MARSHAL_t
    - item_type: preproc_def
      name: TPM2B_NONCE_P_UNMARSHAL
      pos:
        line_end: 356
        line_start: 355
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: TPM2B_DIGEST_P_UNMARSHAL
    - item_type: preproc_def
      name: TPM2B_AUTH_P_UNMARSHAL
      pos:
        line_end: 357
        line_start: 356
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: TPM2B_DIGEST_P_UNMARSHAL
    - item_type: preproc_def
      name: TPM2B_OPERAND_P_UNMARSHAL
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: TPM2B_DIGEST_P_UNMARSHAL
    - item_type: preproc_def
      name: INT32_P_UNMARSHAL
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: UINT32_P_UNMARSHAL
    - item_type: preproc_def
      name: TPM_CC_P_UNMARSHAL
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: UINT32_P_UNMARSHAL
    - item_type: preproc_def
      name: TPMA_LOCALITY_P_UNMARSHAL
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: UINT8_P_UNMARSHAL
    - item_type: preproc_def
      name: TPMI_SH_AUTH_SESSION_H_MARSHAL
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: UINT32_H_MARSHAL
    - item_type: preproc_def
      name: TPM_HANDLE_H_MARSHAL
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: UINT32_H_MARSHAL
    - item_type: preproc_def
      name: TPMI_DH_OBJECT_H_MARSHAL
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: UINT32_H_MARSHAL
    - item_type: preproc_def
      name: TPMI_DH_CONTEXT_H_MARSHAL
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: UINT32_H_MARSHAL
    - item_type: preproc_def
      name: TPM2B_NONCE_P_MARSHAL
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: TPM2B_DIGEST_P_MARSHAL
    - item_type: preproc_def
      name: TPM_RC_P_MARSHAL
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: UINT32_P_MARSHAL
    - item_type: preproc_def
      name: TPMI_YES_NO_P_MARSHAL
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: UINT8_P_MARSHAL
    - item_type: preproc_def
      name: _StartupDataAddress
      pos:
        line_end: 401
        line_start: 400
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_StartupData)
    - item_type: preproc_def
      name: _StartupDataAddress
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ShutdownDataAddress
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ShutdownData)
    - item_type: preproc_def
      name: _ShutdownDataAddress
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _SelfTestDataAddress
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_SelfTestData)
    - item_type: preproc_def
      name: _SelfTestDataAddress
      pos:
        line_end: 469
        line_start: 468
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _IncrementalSelfTestDataAddress
      pos:
        line_end: 502
        line_start: 501
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_IncrementalSelfTestData)
    - item_type: preproc_def
      name: _IncrementalSelfTestDataAddress
      pos:
        line_end: 504
        line_start: 503
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _GetTestResultDataAddress
      pos:
        line_end: 537
        line_start: 536
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_GetTestResultData)
    - item_type: preproc_def
      name: _GetTestResultDataAddress
      pos:
        line_end: 539
        line_start: 538
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _StartAuthSessionDataAddress
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_StartAuthSessionData)
    - item_type: preproc_def
      name: _StartAuthSessionDataAddress
      pos:
        line_end: 588
        line_start: 587
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyRestartDataAddress
      pos:
        line_end: 619
        line_start: 618
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyRestartData)
    - item_type: preproc_def
      name: _PolicyRestartDataAddress
      pos:
        line_end: 621
        line_start: 620
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _CreateDataAddress
      pos:
        line_end: 670
        line_start: 669
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_CreateData)
    - item_type: preproc_def
      name: _CreateDataAddress
      pos:
        line_end: 672
        line_start: 671
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _LoadDataAddress
      pos:
        line_end: 711
        line_start: 710
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_LoadData)
    - item_type: preproc_def
      name: _LoadDataAddress
      pos:
        line_end: 713
        line_start: 712
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _LoadExternalDataAddress
      pos:
        line_end: 752
        line_start: 751
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_LoadExternalData)
    - item_type: preproc_def
      name: _LoadExternalDataAddress
      pos:
        line_end: 754
        line_start: 753
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ReadPublicDataAddress
      pos:
        line_end: 791
        line_start: 790
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ReadPublicData)
    - item_type: preproc_def
      name: _ReadPublicDataAddress
      pos:
        line_end: 793
        line_start: 792
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ActivateCredentialDataAddress
      pos:
        line_end: 832
        line_start: 831
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ActivateCredentialData)
    - item_type: preproc_def
      name: _ActivateCredentialDataAddress
      pos:
        line_end: 834
        line_start: 833
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _MakeCredentialDataAddress
      pos:
        line_end: 873
        line_start: 872
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_MakeCredentialData)
    - item_type: preproc_def
      name: _MakeCredentialDataAddress
      pos:
        line_end: 875
        line_start: 874
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _UnsealDataAddress
      pos:
        line_end: 908
        line_start: 907
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_UnsealData)
    - item_type: preproc_def
      name: _UnsealDataAddress
      pos:
        line_end: 910
        line_start: 909
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ObjectChangeAuthDataAddress
      pos:
        line_end: 947
        line_start: 946
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ObjectChangeAuthData)
    - item_type: preproc_def
      name: _ObjectChangeAuthDataAddress
      pos:
        line_end: 949
        line_start: 948
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _CreateLoadedDataAddress
      pos:
        line_end: 992
        line_start: 991
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_CreateLoadedData)
    - item_type: preproc_def
      name: _CreateLoadedDataAddress
      pos:
        line_end: 994
        line_start: 993
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _DuplicateDataAddress
      pos:
        line_end: 1037
        line_start: 1036
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_DuplicateData)
    - item_type: preproc_def
      name: _DuplicateDataAddress
      pos:
        line_end: 1039
        line_start: 1038
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _RewrapDataAddress
      pos:
        line_end: 1082
        line_start: 1081
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_RewrapData)
    - item_type: preproc_def
      name: _RewrapDataAddress
      pos:
        line_end: 1084
        line_start: 1083
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ImportDataAddress
      pos:
        line_end: 1127
        line_start: 1126
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ImportData)
    - item_type: preproc_def
      name: _ImportDataAddress
      pos:
        line_end: 1129
        line_start: 1128
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _RSA_EncryptDataAddress
      pos:
        line_end: 1168
        line_start: 1167
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_RSA_EncryptData)
    - item_type: preproc_def
      name: _RSA_EncryptDataAddress
      pos:
        line_end: 1170
        line_start: 1169
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _RSA_DecryptDataAddress
      pos:
        line_end: 1209
        line_start: 1208
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_RSA_DecryptData)
    - item_type: preproc_def
      name: _RSA_DecryptDataAddress
      pos:
        line_end: 1211
        line_start: 1210
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ECDH_KeyGenDataAddress
      pos:
        line_end: 1246
        line_start: 1245
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ECDH_KeyGenData)
    - item_type: preproc_def
      name: _ECDH_KeyGenDataAddress
      pos:
        line_end: 1248
        line_start: 1247
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ECDH_ZGenDataAddress
      pos:
        line_end: 1283
        line_start: 1282
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ECDH_ZGenData)
    - item_type: preproc_def
      name: _ECDH_ZGenDataAddress
      pos:
        line_end: 1285
        line_start: 1284
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ECC_ParametersDataAddress
      pos:
        line_end: 1318
        line_start: 1317
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ECC_ParametersData)
    - item_type: preproc_def
      name: _ECC_ParametersDataAddress
      pos:
        line_end: 1320
        line_start: 1319
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ZGen_2PhaseDataAddress
      pos:
        line_end: 1363
        line_start: 1362
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ZGen_2PhaseData)
    - item_type: preproc_def
      name: _ZGen_2PhaseDataAddress
      pos:
        line_end: 1365
        line_start: 1364
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ECC_EncryptDataAddress
      pos:
        line_end: 1406
        line_start: 1405
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ECC_EncryptData)
    - item_type: preproc_def
      name: _ECC_EncryptDataAddress
      pos:
        line_end: 1408
        line_start: 1407
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ECC_DecryptDataAddress
      pos:
        line_end: 1449
        line_start: 1448
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ECC_DecryptData)
    - item_type: preproc_def
      name: _ECC_DecryptDataAddress
      pos:
        line_end: 1451
        line_start: 1450
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _EncryptDecryptDataAddress
      pos:
        line_end: 1494
        line_start: 1493
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_EncryptDecryptData)
    - item_type: preproc_def
      name: _EncryptDecryptDataAddress
      pos:
        line_end: 1496
        line_start: 1495
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _EncryptDecrypt2DataAddress
      pos:
        line_end: 1539
        line_start: 1538
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_EncryptDecrypt2Data)
    - item_type: preproc_def
      name: _EncryptDecrypt2DataAddress
      pos:
        line_end: 1541
        line_start: 1540
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _HashDataAddress
      pos:
        line_end: 1580
        line_start: 1579
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_HashData)
    - item_type: preproc_def
      name: _HashDataAddress
      pos:
        line_end: 1582
        line_start: 1581
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _HMACDataAddress
      pos:
        line_end: 1619
        line_start: 1618
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_HMACData)
    - item_type: preproc_def
      name: _HMACDataAddress
      pos:
        line_end: 1621
        line_start: 1620
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _MACDataAddress
      pos:
        line_end: 1658
        line_start: 1657
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_MACData)
    - item_type: preproc_def
      name: _MACDataAddress
      pos:
        line_end: 1660
        line_start: 1659
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _GetRandomDataAddress
      pos:
        line_end: 1693
        line_start: 1692
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_GetRandomData)
    - item_type: preproc_def
      name: _GetRandomDataAddress
      pos:
        line_end: 1695
        line_start: 1694
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _StirRandomDataAddress
      pos:
        line_end: 1726
        line_start: 1725
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_StirRandomData)
    - item_type: preproc_def
      name: _StirRandomDataAddress
      pos:
        line_end: 1728
        line_start: 1727
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _HMAC_StartDataAddress
      pos:
        line_end: 1765
        line_start: 1764
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_HMAC_StartData)
    - item_type: preproc_def
      name: _HMAC_StartDataAddress
      pos:
        line_end: 1767
        line_start: 1766
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _MAC_StartDataAddress
      pos:
        line_end: 1804
        line_start: 1803
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_MAC_StartData)
    - item_type: preproc_def
      name: _MAC_StartDataAddress
      pos:
        line_end: 1806
        line_start: 1805
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _HashSequenceStartDataAddress
      pos:
        line_end: 1841
        line_start: 1840
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_HashSequenceStartData)
    - item_type: preproc_def
      name: _HashSequenceStartDataAddress
      pos:
        line_end: 1843
        line_start: 1842
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _SequenceUpdateDataAddress
      pos:
        line_end: 1876
        line_start: 1875
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_SequenceUpdateData)
    - item_type: preproc_def
      name: _SequenceUpdateDataAddress
      pos:
        line_end: 1878
        line_start: 1877
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _SequenceCompleteDataAddress
      pos:
        line_end: 1917
        line_start: 1916
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_SequenceCompleteData)
    - item_type: preproc_def
      name: _SequenceCompleteDataAddress
      pos:
        line_end: 1919
        line_start: 1918
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _EventSequenceCompleteDataAddress
      pos:
        line_end: 1956
        line_start: 1955
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_EventSequenceCompleteData)
    - item_type: preproc_def
      name: _EventSequenceCompleteDataAddress
      pos:
        line_end: 1958
        line_start: 1957
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _CertifyDataAddress
      pos:
        line_end: 1999
        line_start: 1998
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_CertifyData)
    - item_type: preproc_def
      name: _CertifyDataAddress
      pos:
        line_end: 2001
        line_start: 2000
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _CertifyCreationDataAddress
      pos:
        line_end: 2046
        line_start: 2045
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_CertifyCreationData)
    - item_type: preproc_def
      name: _CertifyCreationDataAddress
      pos:
        line_end: 2048
        line_start: 2047
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _QuoteDataAddress
      pos:
        line_end: 2089
        line_start: 2088
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_QuoteData)
    - item_type: preproc_def
      name: _QuoteDataAddress
      pos:
        line_end: 2091
        line_start: 2090
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _GetSessionAuditDigestDataAddress
      pos:
        line_end: 2134
        line_start: 2133
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_GetSessionAuditDigestData)
    - item_type: preproc_def
      name: _GetSessionAuditDigestDataAddress
      pos:
        line_end: 2136
        line_start: 2135
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _GetCommandAuditDigestDataAddress
      pos:
        line_end: 2177
        line_start: 2176
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_GetCommandAuditDigestData)
    - item_type: preproc_def
      name: _GetCommandAuditDigestDataAddress
      pos:
        line_end: 2179
        line_start: 2178
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _GetTimeDataAddress
      pos:
        line_end: 2220
        line_start: 2219
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_GetTimeData)
    - item_type: preproc_def
      name: _GetTimeDataAddress
      pos:
        line_end: 2222
        line_start: 2221
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _CertifyX509DataAddress
      pos:
        line_end: 2267
        line_start: 2266
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_CertifyX509Data)
    - item_type: preproc_def
      name: _CertifyX509DataAddress
      pos:
        line_end: 2269
        line_start: 2268
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _CommitDataAddress
      pos:
        line_end: 2314
        line_start: 2313
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_CommitData)
    - item_type: preproc_def
      name: _CommitDataAddress
      pos:
        line_end: 2316
        line_start: 2315
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _EC_EphemeralDataAddress
      pos:
        line_end: 2351
        line_start: 2350
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_EC_EphemeralData)
    - item_type: preproc_def
      name: _EC_EphemeralDataAddress
      pos:
        line_end: 2353
        line_start: 2352
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _VerifySignatureDataAddress
      pos:
        line_end: 2390
        line_start: 2389
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_VerifySignatureData)
    - item_type: preproc_def
      name: _VerifySignatureDataAddress
      pos:
        line_end: 2392
        line_start: 2391
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _SignDataAddress
      pos:
        line_end: 2431
        line_start: 2430
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_SignData)
    - item_type: preproc_def
      name: _SignDataAddress
      pos:
        line_end: 2433
        line_start: 2432
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _SetCommandCodeAuditStatusDataAddress
      pos:
        line_end: 2470
        line_start: 2469
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_SetCommandCodeAuditStatusData)
    - item_type: preproc_def
      name: _SetCommandCodeAuditStatusDataAddress
      pos:
        line_end: 2472
        line_start: 2471
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PCR_ExtendDataAddress
      pos:
        line_end: 2505
        line_start: 2504
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PCR_ExtendData)
    - item_type: preproc_def
      name: _PCR_ExtendDataAddress
      pos:
        line_end: 2507
        line_start: 2506
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PCR_EventDataAddress
      pos:
        line_end: 2542
        line_start: 2541
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PCR_EventData)
    - item_type: preproc_def
      name: _PCR_EventDataAddress
      pos:
        line_end: 2544
        line_start: 2543
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PCR_ReadDataAddress
      pos:
        line_end: 2581
        line_start: 2580
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PCR_ReadData)
    - item_type: preproc_def
      name: _PCR_ReadDataAddress
      pos:
        line_end: 2583
        line_start: 2582
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PCR_AllocateDataAddress
      pos:
        line_end: 2624
        line_start: 2623
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PCR_AllocateData)
    - item_type: preproc_def
      name: _PCR_AllocateDataAddress
      pos:
        line_end: 2626
        line_start: 2625
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PCR_SetAuthPolicyDataAddress
      pos:
        line_end: 2663
        line_start: 2662
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PCR_SetAuthPolicyData)
    - item_type: preproc_def
      name: _PCR_SetAuthPolicyDataAddress
      pos:
        line_end: 2665
        line_start: 2664
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PCR_SetAuthValueDataAddress
      pos:
        line_end: 2698
        line_start: 2697
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PCR_SetAuthValueData)
    - item_type: preproc_def
      name: _PCR_SetAuthValueDataAddress
      pos:
        line_end: 2700
        line_start: 2699
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PCR_ResetDataAddress
      pos:
        line_end: 2731
        line_start: 2730
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PCR_ResetData)
    - item_type: preproc_def
      name: _PCR_ResetDataAddress
      pos:
        line_end: 2733
        line_start: 2732
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicySignedDataAddress
      pos:
        line_end: 2780
        line_start: 2779
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicySignedData)
    - item_type: preproc_def
      name: _PolicySignedDataAddress
      pos:
        line_end: 2782
        line_start: 2781
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicySecretDataAddress
      pos:
        line_end: 2827
        line_start: 2826
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicySecretData)
    - item_type: preproc_def
      name: _PolicySecretDataAddress
      pos:
        line_end: 2829
        line_start: 2828
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyTicketDataAddress
      pos:
        line_end: 2870
        line_start: 2869
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyTicketData)
    - item_type: preproc_def
      name: _PolicyTicketDataAddress
      pos:
        line_end: 2872
        line_start: 2871
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyORDataAddress
      pos:
        line_end: 2905
        line_start: 2904
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyORData)
    - item_type: preproc_def
      name: _PolicyORDataAddress
      pos:
        line_end: 2907
        line_start: 2906
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyPCRDataAddress
      pos:
        line_end: 2942
        line_start: 2941
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyPCRData)
    - item_type: preproc_def
      name: _PolicyPCRDataAddress
      pos:
        line_end: 2944
        line_start: 2943
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyLocalityDataAddress
      pos:
        line_end: 2977
        line_start: 2976
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyLocalityData)
    - item_type: preproc_def
      name: _PolicyLocalityDataAddress
      pos:
        line_end: 2979
        line_start: 2978
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyNVDataAddress
      pos:
        line_end: 3020
        line_start: 3019
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyNVData)
    - item_type: preproc_def
      name: _PolicyNVDataAddress
      pos:
        line_end: 3022
        line_start: 3021
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyCounterTimerDataAddress
      pos:
        line_end: 3059
        line_start: 3058
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyCounterTimerData)
    - item_type: preproc_def
      name: _PolicyCounterTimerDataAddress
      pos:
        line_end: 3061
        line_start: 3060
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyCommandCodeDataAddress
      pos:
        line_end: 3094
        line_start: 3093
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyCommandCodeData)
    - item_type: preproc_def
      name: _PolicyCommandCodeDataAddress
      pos:
        line_end: 3096
        line_start: 3095
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyPhysicalPresenceDataAddress
      pos:
        line_end: 3127
        line_start: 3126
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyPhysicalPresenceData)
    - item_type: preproc_def
      name: _PolicyPhysicalPresenceDataAddress
      pos:
        line_end: 3129
        line_start: 3128
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyCpHashDataAddress
      pos:
        line_end: 3162
        line_start: 3161
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyCpHashData)
    - item_type: preproc_def
      name: _PolicyCpHashDataAddress
      pos:
        line_end: 3164
        line_start: 3163
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyNameHashDataAddress
      pos:
        line_end: 3197
        line_start: 3196
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyNameHashData)
    - item_type: preproc_def
      name: _PolicyNameHashDataAddress
      pos:
        line_end: 3199
        line_start: 3198
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyDuplicationSelectDataAddress
      pos:
        line_end: 3236
        line_start: 3235
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyDuplicationSelectData)
    - item_type: preproc_def
      name: _PolicyDuplicationSelectDataAddress
      pos:
        line_end: 3238
        line_start: 3237
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyAuthorizeDataAddress
      pos:
        line_end: 3277
        line_start: 3276
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyAuthorizeData)
    - item_type: preproc_def
      name: _PolicyAuthorizeDataAddress
      pos:
        line_end: 3279
        line_start: 3278
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyAuthValueDataAddress
      pos:
        line_end: 3310
        line_start: 3309
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyAuthValueData)
    - item_type: preproc_def
      name: _PolicyAuthValueDataAddress
      pos:
        line_end: 3312
        line_start: 3311
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyPasswordDataAddress
      pos:
        line_end: 3343
        line_start: 3342
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyPasswordData)
    - item_type: preproc_def
      name: _PolicyPasswordDataAddress
      pos:
        line_end: 3345
        line_start: 3344
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyGetDigestDataAddress
      pos:
        line_end: 3378
        line_start: 3377
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyGetDigestData)
    - item_type: preproc_def
      name: _PolicyGetDigestDataAddress
      pos:
        line_end: 3380
        line_start: 3379
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyNvWrittenDataAddress
      pos:
        line_end: 3413
        line_start: 3412
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyNvWrittenData)
    - item_type: preproc_def
      name: _PolicyNvWrittenDataAddress
      pos:
        line_end: 3415
        line_start: 3414
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyTemplateDataAddress
      pos:
        line_end: 3448
        line_start: 3447
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyTemplateData)
    - item_type: preproc_def
      name: _PolicyTemplateDataAddress
      pos:
        line_end: 3450
        line_start: 3449
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyAuthorizeNVDataAddress
      pos:
        line_end: 3485
        line_start: 3484
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyAuthorizeNVData)
    - item_type: preproc_def
      name: _PolicyAuthorizeNVDataAddress
      pos:
        line_end: 3487
        line_start: 3486
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyCapabilityDataAddress
      pos:
        line_end: 3528
        line_start: 3527
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyCapabilityData)
    - item_type: preproc_def
      name: _PolicyCapabilityDataAddress
      pos:
        line_end: 3530
        line_start: 3529
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PolicyParametersDataAddress
      pos:
        line_end: 3563
        line_start: 3562
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PolicyParametersData)
    - item_type: preproc_def
      name: _PolicyParametersDataAddress
      pos:
        line_end: 3565
        line_start: 3564
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _CreatePrimaryDataAddress
      pos:
        line_end: 3616
        line_start: 3615
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_CreatePrimaryData)
    - item_type: preproc_def
      name: _CreatePrimaryDataAddress
      pos:
        line_end: 3618
        line_start: 3617
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _HierarchyControlDataAddress
      pos:
        line_end: 3653
        line_start: 3652
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_HierarchyControlData)
    - item_type: preproc_def
      name: _HierarchyControlDataAddress
      pos:
        line_end: 3655
        line_start: 3654
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _SetPrimaryPolicyDataAddress
      pos:
        line_end: 3690
        line_start: 3689
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_SetPrimaryPolicyData)
    - item_type: preproc_def
      name: _SetPrimaryPolicyDataAddress
      pos:
        line_end: 3692
        line_start: 3691
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ChangePPSDataAddress
      pos:
        line_end: 3723
        line_start: 3722
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ChangePPSData)
    - item_type: preproc_def
      name: _ChangePPSDataAddress
      pos:
        line_end: 3725
        line_start: 3724
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ChangeEPSDataAddress
      pos:
        line_end: 3756
        line_start: 3755
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ChangeEPSData)
    - item_type: preproc_def
      name: _ChangeEPSDataAddress
      pos:
        line_end: 3758
        line_start: 3757
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ClearDataAddress
      pos:
        line_end: 3789
        line_start: 3788
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ClearData)
    - item_type: preproc_def
      name: _ClearDataAddress
      pos:
        line_end: 3791
        line_start: 3790
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ClearControlDataAddress
      pos:
        line_end: 3824
        line_start: 3823
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ClearControlData)
    - item_type: preproc_def
      name: _ClearControlDataAddress
      pos:
        line_end: 3826
        line_start: 3825
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _HierarchyChangeAuthDataAddress
      pos:
        line_end: 3859
        line_start: 3858
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_HierarchyChangeAuthData)
    - item_type: preproc_def
      name: _HierarchyChangeAuthDataAddress
      pos:
        line_end: 3861
        line_start: 3860
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _DictionaryAttackLockResetDataAddress
      pos:
        line_end: 3892
        line_start: 3891
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_DictionaryAttackLockResetData)
    - item_type: preproc_def
      name: _DictionaryAttackLockResetDataAddress
      pos:
        line_end: 3894
        line_start: 3893
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _DictionaryAttackParametersDataAddress
      pos:
        line_end: 3931
        line_start: 3930
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_DictionaryAttackParametersData)
    - item_type: preproc_def
      name: _DictionaryAttackParametersDataAddress
      pos:
        line_end: 3933
        line_start: 3932
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _PP_CommandsDataAddress
      pos:
        line_end: 3968
        line_start: 3967
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_PP_CommandsData)
    - item_type: preproc_def
      name: _PP_CommandsDataAddress
      pos:
        line_end: 3970
        line_start: 3969
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _SetAlgorithmSetDataAddress
      pos:
        line_end: 4003
        line_start: 4002
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_SetAlgorithmSetData)
    - item_type: preproc_def
      name: _SetAlgorithmSetDataAddress
      pos:
        line_end: 4005
        line_start: 4004
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _FieldUpgradeStartDataAddress
      pos:
        line_end: 4042
        line_start: 4041
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_FieldUpgradeStartData)
    - item_type: preproc_def
      name: _FieldUpgradeStartDataAddress
      pos:
        line_end: 4044
        line_start: 4043
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _FieldUpgradeDataDataAddress
      pos:
        line_end: 4079
        line_start: 4078
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_FieldUpgradeDataData)
    - item_type: preproc_def
      name: _FieldUpgradeDataDataAddress
      pos:
        line_end: 4081
        line_start: 4080
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _FirmwareReadDataAddress
      pos:
        line_end: 4114
        line_start: 4113
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_FirmwareReadData)
    - item_type: preproc_def
      name: _FirmwareReadDataAddress
      pos:
        line_end: 4116
        line_start: 4115
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ContextSaveDataAddress
      pos:
        line_end: 4149
        line_start: 4148
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ContextSaveData)
    - item_type: preproc_def
      name: _ContextSaveDataAddress
      pos:
        line_end: 4151
        line_start: 4150
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ContextLoadDataAddress
      pos:
        line_end: 4184
        line_start: 4183
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ContextLoadData)
    - item_type: preproc_def
      name: _ContextLoadDataAddress
      pos:
        line_end: 4186
        line_start: 4185
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _FlushContextDataAddress
      pos:
        line_end: 4217
        line_start: 4216
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_FlushContextData)
    - item_type: preproc_def
      name: _FlushContextDataAddress
      pos:
        line_end: 4219
        line_start: 4218
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _EvictControlDataAddress
      pos:
        line_end: 4254
        line_start: 4253
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_EvictControlData)
    - item_type: preproc_def
      name: _EvictControlDataAddress
      pos:
        line_end: 4256
        line_start: 4255
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ReadClockDataAddress
      pos:
        line_end: 4287
        line_start: 4286
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ReadClockData)
    - item_type: preproc_def
      name: _ReadClockDataAddress
      pos:
        line_end: 4289
        line_start: 4288
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ClockSetDataAddress
      pos:
        line_end: 4322
        line_start: 4321
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ClockSetData)
    - item_type: preproc_def
      name: _ClockSetDataAddress
      pos:
        line_end: 4324
        line_start: 4323
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ClockRateAdjustDataAddress
      pos:
        line_end: 4357
        line_start: 4356
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ClockRateAdjustData)
    - item_type: preproc_def
      name: _ClockRateAdjustDataAddress
      pos:
        line_end: 4359
        line_start: 4358
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _GetCapabilityDataAddress
      pos:
        line_end: 4398
        line_start: 4397
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_GetCapabilityData)
    - item_type: preproc_def
      name: _GetCapabilityDataAddress
      pos:
        line_end: 4400
        line_start: 4399
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _TestParmsDataAddress
      pos:
        line_end: 4431
        line_start: 4430
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_TestParmsData)
    - item_type: preproc_def
      name: _TestParmsDataAddress
      pos:
        line_end: 4433
        line_start: 4432
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _NV_DefineSpaceDataAddress
      pos:
        line_end: 4468
        line_start: 4467
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_NV_DefineSpaceData)
    - item_type: preproc_def
      name: _NV_DefineSpaceDataAddress
      pos:
        line_end: 4470
        line_start: 4469
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _NV_UndefineSpaceDataAddress
      pos:
        line_end: 4503
        line_start: 4502
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_NV_UndefineSpaceData)
    - item_type: preproc_def
      name: _NV_UndefineSpaceDataAddress
      pos:
        line_end: 4505
        line_start: 4504
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _NV_UndefineSpaceSpecialDataAddress
      pos:
        line_end: 4538
        line_start: 4537
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_NV_UndefineSpaceSpecialData)
    - item_type: preproc_def
      name: _NV_UndefineSpaceSpecialDataAddress
      pos:
        line_end: 4540
        line_start: 4539
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _NV_ReadPublicDataAddress
      pos:
        line_end: 4575
        line_start: 4574
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_NV_ReadPublicData)
    - item_type: preproc_def
      name: _NV_ReadPublicDataAddress
      pos:
        line_end: 4577
        line_start: 4576
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _NV_WriteDataAddress
      pos:
        line_end: 4614
        line_start: 4613
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_NV_WriteData)
    - item_type: preproc_def
      name: _NV_WriteDataAddress
      pos:
        line_end: 4616
        line_start: 4615
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _NV_IncrementDataAddress
      pos:
        line_end: 4649
        line_start: 4648
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_NV_IncrementData)
    - item_type: preproc_def
      name: _NV_IncrementDataAddress
      pos:
        line_end: 4651
        line_start: 4650
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _NV_ExtendDataAddress
      pos:
        line_end: 4686
        line_start: 4685
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_NV_ExtendData)
    - item_type: preproc_def
      name: _NV_ExtendDataAddress
      pos:
        line_end: 4688
        line_start: 4687
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _NV_SetBitsDataAddress
      pos:
        line_end: 4723
        line_start: 4722
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_NV_SetBitsData)
    - item_type: preproc_def
      name: _NV_SetBitsDataAddress
      pos:
        line_end: 4725
        line_start: 4724
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _NV_WriteLockDataAddress
      pos:
        line_end: 4758
        line_start: 4757
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_NV_WriteLockData)
    - item_type: preproc_def
      name: _NV_WriteLockDataAddress
      pos:
        line_end: 4760
        line_start: 4759
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _NV_GlobalWriteLockDataAddress
      pos:
        line_end: 4791
        line_start: 4790
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_NV_GlobalWriteLockData)
    - item_type: preproc_def
      name: _NV_GlobalWriteLockDataAddress
      pos:
        line_end: 4793
        line_start: 4792
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _NV_ReadDataAddress
      pos:
        line_end: 4832
        line_start: 4831
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_NV_ReadData)
    - item_type: preproc_def
      name: _NV_ReadDataAddress
      pos:
        line_end: 4834
        line_start: 4833
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _NV_ReadLockDataAddress
      pos:
        line_end: 4867
        line_start: 4866
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_NV_ReadLockData)
    - item_type: preproc_def
      name: _NV_ReadLockDataAddress
      pos:
        line_end: 4869
        line_start: 4868
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _NV_ChangeAuthDataAddress
      pos:
        line_end: 4902
        line_start: 4901
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_NV_ChangeAuthData)
    - item_type: preproc_def
      name: _NV_ChangeAuthDataAddress
      pos:
        line_end: 4904
        line_start: 4903
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _NV_CertifyDataAddress
      pos:
        line_end: 4951
        line_start: 4950
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_NV_CertifyData)
    - item_type: preproc_def
      name: _NV_CertifyDataAddress
      pos:
        line_end: 4953
        line_start: 4952
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _NV_DefineSpace2DataAddress
      pos:
        line_end: 4988
        line_start: 4987
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_NV_DefineSpace2Data)
    - item_type: preproc_def
      name: _NV_DefineSpace2DataAddress
      pos:
        line_end: 4990
        line_start: 4989
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _NV_ReadPublic2DataAddress
      pos:
        line_end: 5025
        line_start: 5024
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_NV_ReadPublic2Data)
    - item_type: preproc_def
      name: _NV_ReadPublic2DataAddress
      pos:
        line_end: 5027
        line_start: 5026
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _SetCapabilityDataAddress
      pos:
        line_end: 5059
        line_start: 5058
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_SetCapabilityData)
    - item_type: preproc_def
      name: _SetCapabilityDataAddress
      pos:
        line_end: 5061
        line_start: 5060
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _AC_SendDataAddress
      pos:
        line_end: 5100
        line_start: 5099
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_AC_SendData)
    - item_type: preproc_def
      name: _AC_SendDataAddress
      pos:
        line_end: 5102
        line_start: 5101
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _Policy_AC_SendSelectDataAddress
      pos:
        line_end: 5141
        line_start: 5140
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_Policy_AC_SendSelectData)
    - item_type: preproc_def
      name: _Policy_AC_SendSelectDataAddress
      pos:
        line_end: 5143
        line_start: 5142
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _ACT_SetTimeoutDataAddress
      pos:
        line_end: 5176
        line_start: 5175
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_ACT_SetTimeoutData)
    - item_type: preproc_def
      name: _ACT_SetTimeoutDataAddress
      pos:
        line_end: 5178
        line_start: 5177
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _Vendor_TCG_TestDataAddress
      pos:
        line_end: 5211
        line_start: 5210
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: (&_Vendor_TCG_TestData)
    - item_type: preproc_def
      name: _Vendor_TCG_TestDataAddress
      pos:
        line_end: 5213
        line_start: 5212
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type_or_value: '0'
    structs:
    - fields:
      - name: '*entry'
        type: Startup_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: Startup_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 387
        line_start: 380
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: Shutdown_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: Shutdown_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 420
        line_start: 413
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: SelfTest_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: SelfTest_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 453
        line_start: 446
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: IncrementalSelfTest_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: IncrementalSelfTest_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 487
        line_start: 480
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: GetTestResult_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: GetTestResult_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 522
        line_start: 514
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: StartAuthSession_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[7]
        type: UINT16
      - name: types[11]
        type: BYTE
      item_type: struct
      name: StartAuthSession_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 558
        line_start: 550
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyRestart_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: PolicyRestart_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 605
        line_start: 598
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: Create_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[8]
        type: UINT16
      - name: types[12]
        type: BYTE
      item_type: struct
      name: Create_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 640
        line_start: 632
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: Load_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[7]
        type: BYTE
      item_type: struct
      name: Load_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 691
        line_start: 683
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: LoadExternal_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[7]
        type: BYTE
      item_type: struct
      name: LoadExternal_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 732
        line_start: 724
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ReadPublic_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[6]
        type: BYTE
      item_type: struct
      name: ReadPublic_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 773
        line_start: 765
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ActivateCredential_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[7]
        type: BYTE
      item_type: struct
      name: ActivateCredential_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 812
        line_start: 804
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: MakeCredential_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[7]
        type: BYTE
      item_type: struct
      name: MakeCredential_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 853
        line_start: 845
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: Unseal_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: Unseal_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 893
        line_start: 886
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ObjectChangeAuth_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[6]
        type: BYTE
      item_type: struct
      name: ObjectChangeAuth_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 929
        line_start: 921
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: CreateLoaded_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[5]
        type: UINT16
      - name: types[9]
        type: BYTE
      item_type: struct
      name: CreateLoaded_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 968
        line_start: 960
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: Duplicate_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[5]
        type: UINT16
      - name: types[9]
        type: BYTE
      item_type: struct
      name: Duplicate_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1013
        line_start: 1005
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: Rewrap_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[5]
        type: UINT16
      - name: types[9]
        type: BYTE
      item_type: struct
      name: Rewrap_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1058
        line_start: 1050
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: Import_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[5]
        type: UINT16
      - name: types[9]
        type: BYTE
      item_type: struct
      name: Import_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1103
        line_start: 1095
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: RSA_Encrypt_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[7]
        type: BYTE
      item_type: struct
      name: RSA_Encrypt_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1148
        line_start: 1140
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: RSA_Decrypt_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[7]
        type: BYTE
      item_type: struct
      name: RSA_Decrypt_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1189
        line_start: 1181
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ECDH_KeyGen_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: ECDH_KeyGen_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1230
        line_start: 1222
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ECDH_ZGen_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: ECDH_ZGen_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1267
        line_start: 1259
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ECC_Parameters_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: ECC_Parameters_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1303
        line_start: 1296
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ZGen_2Phase_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[5]
        type: UINT16
      - name: types[9]
        type: BYTE
      item_type: struct
      name: ZGen_2Phase_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1339
        line_start: 1331
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ECC_Encrypt_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[4]
        type: UINT16
      - name: types[8]
        type: BYTE
      item_type: struct
      name: ECC_Encrypt_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1384
        line_start: 1376
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ECC_Decrypt_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[4]
        type: UINT16
      - name: types[8]
        type: BYTE
      item_type: struct
      name: ECC_Decrypt_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1427
        line_start: 1419
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: EncryptDecrypt_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[5]
        type: UINT16
      - name: types[9]
        type: BYTE
      item_type: struct
      name: EncryptDecrypt_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1470
        line_start: 1462
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: EncryptDecrypt2_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[5]
        type: UINT16
      - name: types[9]
        type: BYTE
      item_type: struct
      name: EncryptDecrypt2_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1515
        line_start: 1507
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: Hash_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[7]
        type: BYTE
      item_type: struct
      name: Hash_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1560
        line_start: 1552
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: HMAC_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[6]
        type: BYTE
      item_type: struct
      name: HMAC_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1601
        line_start: 1593
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: MAC_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[6]
        type: BYTE
      item_type: struct
      name: MAC_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1640
        line_start: 1632
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: GetRandom_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: GetRandom_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1678
        line_start: 1671
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: StirRandom_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: StirRandom_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1712
        line_start: 1705
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: HMAC_Start_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[6]
        type: BYTE
      item_type: struct
      name: HMAC_Start_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1747
        line_start: 1739
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: MAC_Start_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[6]
        type: BYTE
      item_type: struct
      name: MAC_Start_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1786
        line_start: 1778
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: HashSequenceStart_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: HashSequenceStart_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1825
        line_start: 1817
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: SequenceUpdate_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: SequenceUpdate_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1861
        line_start: 1853
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: SequenceComplete_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[7]
        type: BYTE
      item_type: struct
      name: SequenceComplete_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1897
        line_start: 1889
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: EventSequenceComplete_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[6]
        type: BYTE
      item_type: struct
      name: EventSequenceComplete_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1938
        line_start: 1930
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: Certify_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[4]
        type: UINT16
      - name: types[8]
        type: BYTE
      item_type: struct
      name: Certify_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 1977
        line_start: 1969
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: CertifyCreation_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[6]
        type: UINT16
      - name: types[10]
        type: BYTE
      item_type: struct
      name: CertifyCreation_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2020
        line_start: 2012
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: Quote_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[4]
        type: UINT16
      - name: types[8]
        type: BYTE
      item_type: struct
      name: Quote_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2067
        line_start: 2059
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: GetSessionAuditDigest_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[5]
        type: UINT16
      - name: types[9]
        type: BYTE
      item_type: struct
      name: GetSessionAuditDigest_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2110
        line_start: 2102
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: GetCommandAuditDigest_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[4]
        type: UINT16
      - name: types[8]
        type: BYTE
      item_type: struct
      name: GetCommandAuditDigest_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2155
        line_start: 2147
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: GetTime_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[4]
        type: UINT16
      - name: types[8]
        type: BYTE
      item_type: struct
      name: GetTime_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2198
        line_start: 2190
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: CertifyX509_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[6]
        type: UINT16
      - name: types[10]
        type: BYTE
      item_type: struct
      name: CertifyX509_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2241
        line_start: 2233
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: Commit_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[6]
        type: UINT16
      - name: types[10]
        type: BYTE
      item_type: struct
      name: Commit_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2288
        line_start: 2280
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: EC_Ephemeral_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: EC_Ephemeral_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2335
        line_start: 2327
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: VerifySignature_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[6]
        type: BYTE
      item_type: struct
      name: VerifySignature_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2372
        line_start: 2364
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: Sign_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[7]
        type: BYTE
      item_type: struct
      name: Sign_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2411
        line_start: 2403
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: SetCommandCodeAuditStatus_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[6]
        type: BYTE
      item_type: struct
      name: SetCommandCodeAuditStatus_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2451
        line_start: 2443
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PCR_Extend_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: PCR_Extend_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2490
        line_start: 2482
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PCR_Event_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: PCR_Event_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2526
        line_start: 2518
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PCR_Read_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[6]
        type: BYTE
      item_type: struct
      name: PCR_Read_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2563
        line_start: 2555
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PCR_Allocate_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[4]
        type: UINT16
      - name: types[8]
        type: BYTE
      item_type: struct
      name: PCR_Allocate_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2602
        line_start: 2594
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PCR_SetAuthPolicy_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[6]
        type: BYTE
      item_type: struct
      name: PCR_SetAuthPolicy_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2644
        line_start: 2636
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PCR_SetAuthValue_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: PCR_SetAuthValue_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2683
        line_start: 2675
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PCR_Reset_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: PCR_Reset_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2717
        line_start: 2710
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicySigned_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[7]
        type: UINT16
      - name: types[11]
        type: BYTE
      item_type: struct
      name: PolicySigned_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2752
        line_start: 2744
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicySecret_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[6]
        type: UINT16
      - name: types[10]
        type: BYTE
      item_type: struct
      name: PolicySecret_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2801
        line_start: 2793
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyTicket_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[5]
        type: UINT16
      - name: types[8]
        type: BYTE
      item_type: struct
      name: PolicyTicket_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2847
        line_start: 2839
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyOR_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: PolicyOR_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2890
        line_start: 2882
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyPCR_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: PolicyPCR_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2925
        line_start: 2917
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyLocality_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: PolicyLocality_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2962
        line_start: 2954
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyNV_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[5]
        type: UINT16
      - name: types[8]
        type: BYTE
      item_type: struct
      name: PolicyNV_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 2997
        line_start: 2989
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyCounterTimer_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[6]
        type: BYTE
      item_type: struct
      name: PolicyCounterTimer_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3040
        line_start: 3032
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyCommandCode_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: PolicyCommandCode_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3079
        line_start: 3071
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyPhysicalPresence_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: PolicyPhysicalPresence_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3113
        line_start: 3106
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyCpHash_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: PolicyCpHash_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3147
        line_start: 3139
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyNameHash_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: PolicyNameHash_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3182
        line_start: 3174
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyDuplicationSelect_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[6]
        type: BYTE
      item_type: struct
      name: PolicyDuplicationSelect_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3217
        line_start: 3209
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyAuthorize_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[4]
        type: UINT16
      - name: types[7]
        type: BYTE
      item_type: struct
      name: PolicyAuthorize_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3256
        line_start: 3248
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyAuthValue_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: PolicyAuthValue_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3296
        line_start: 3289
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyPassword_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: PolicyPassword_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3329
        line_start: 3322
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyGetDigest_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: PolicyGetDigest_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3363
        line_start: 3356
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyNvWritten_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: PolicyNvWritten_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3398
        line_start: 3390
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyTemplate_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: PolicyTemplate_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3433
        line_start: 3425
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyAuthorizeNV_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: PolicyAuthorizeNV_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3468
        line_start: 3460
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyCapability_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[5]
        type: UINT16
      - name: types[8]
        type: BYTE
      item_type: struct
      name: PolicyCapability_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3505
        line_start: 3497
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PolicyParameters_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: PolicyParameters_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3548
        line_start: 3540
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: CreatePrimary_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[9]
        type: UINT16
      - name: types[13]
        type: BYTE
      item_type: struct
      name: CreatePrimary_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3584
        line_start: 3576
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: HierarchyControl_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: HierarchyControl_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3636
        line_start: 3628
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: SetPrimaryPolicy_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: SetPrimaryPolicy_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3673
        line_start: 3665
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ChangePPS_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: ChangePPS_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3709
        line_start: 3702
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ChangeEPS_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: ChangeEPS_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3742
        line_start: 3735
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: Clear_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: Clear_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3775
        line_start: 3768
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ClearControl_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: ClearControl_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3809
        line_start: 3801
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: HierarchyChangeAuth_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: HierarchyChangeAuth_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3844
        line_start: 3836
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: DictionaryAttackLockReset_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: DictionaryAttackLockReset_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3878
        line_start: 3871
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: DictionaryAttackParameters_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[6]
        type: BYTE
      item_type: struct
      name: DictionaryAttackParameters_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3912
        line_start: 3904
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: PP_Commands_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: PP_Commands_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3951
        line_start: 3943
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: SetAlgorithmSet_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: SetAlgorithmSet_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 3988
        line_start: 3980
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: FieldUpgradeStart_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[6]
        type: BYTE
      item_type: struct
      name: FieldUpgradeStart_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4023
        line_start: 4015
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: FieldUpgradeData_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: FieldUpgradeData_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4063
        line_start: 4055
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: FirmwareRead_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: FirmwareRead_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4099
        line_start: 4092
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ContextSave_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: ContextSave_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4134
        line_start: 4127
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ContextLoad_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: ContextLoad_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4169
        line_start: 4162
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: FlushContext_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: FlushContext_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4203
        line_start: 4196
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: EvictControl_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: EvictControl_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4237
        line_start: 4229
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ReadClock_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: ReadClock_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4273
        line_start: 4266
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ClockSet_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: ClockSet_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4307
        line_start: 4299
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ClockRateAdjust_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: ClockRateAdjust_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4342
        line_start: 4334
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: GetCapability_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[7]
        type: BYTE
      item_type: struct
      name: GetCapability_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4378
        line_start: 4370
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: TestParms_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: TestParms_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4417
        line_start: 4410
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: NV_DefineSpace_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: NV_DefineSpace_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4451
        line_start: 4443
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: NV_UndefineSpace_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: NV_UndefineSpace_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4488
        line_start: 4480
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: NV_UndefineSpaceSpecial_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: NV_UndefineSpaceSpecial_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4523
        line_start: 4515
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: NV_ReadPublic_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: NV_ReadPublic_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4559
        line_start: 4551
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: NV_Write_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[6]
        type: BYTE
      item_type: struct
      name: NV_Write_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4595
        line_start: 4587
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: NV_Increment_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: NV_Increment_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4634
        line_start: 4626
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: NV_Extend_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: NV_Extend_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4669
        line_start: 4661
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: NV_SetBits_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: NV_SetBits_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4706
        line_start: 4698
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: NV_WriteLock_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: NV_WriteLock_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4743
        line_start: 4735
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: NV_GlobalWriteLock_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[3]
        type: BYTE
      item_type: struct
      name: NV_GlobalWriteLock_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4777
        line_start: 4770
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: NV_Read_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[7]
        type: BYTE
      item_type: struct
      name: NV_Read_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4812
        line_start: 4804
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: NV_ReadLock_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: NV_ReadLock_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4852
        line_start: 4844
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: NV_ChangeAuth_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: NV_ChangeAuth_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4887
        line_start: 4879
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: NV_Certify_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[7]
        type: UINT16
      - name: types[11]
        type: BYTE
      item_type: struct
      name: NV_Certify_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4923
        line_start: 4915
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: NV_DefineSpace2_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[2]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: NV_DefineSpace2_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 4971
        line_start: 4963
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: NV_ReadPublic2_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[5]
        type: BYTE
      item_type: struct
      name: NV_ReadPublic2_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 5009
        line_start: 5001
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: SetCapability_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: SetCapability_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 5044
        line_start: 5036
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: AC_Send_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[3]
        type: UINT16
      - name: types[7]
        type: BYTE
      item_type: struct
      name: AC_Send_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 5080
        line_start: 5072
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: Policy_AC_SendSelect_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[4]
        type: UINT16
      - name: types[7]
        type: BYTE
      item_type: struct
      name: Policy_AC_SendSelect_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 5120
        line_start: 5112
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: ACT_SetTimeout_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: paramOffsets[1]
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: ACT_SetTimeout_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 5161
        line_start: 5153
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    - fields:
      - name: '*entry'
        type: Vendor_TCG_Test_Entry
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: offsetOfTypes
        type: UINT16
      - name: types[4]
        type: BYTE
      item_type: struct
      name: Vendor_TCG_Test_COMMAND_DESCRIPTOR_t
      pos:
        line_end: 5196
        line_start: 5189
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
    typedefs:
    - item_type: typedef
      name: "(Startup_Entry)(\n    Startup_In*                 in\n)"
      pos:
        line_end: 377
        line_start: 375
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(Shutdown_Entry)(\n    Shutdown_In*                in\n)"
      pos:
        line_end: 410
        line_start: 408
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(SelfTest_Entry)(\n    SelfTest_In*                in\n)"
      pos:
        line_end: 443
        line_start: 441
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(IncrementalSelfTest_Entry)(\n    IncrementalSelfTest_In*     in,\n    IncrementalSelfTest_Out*
        \   out\n)"
      pos:
        line_end: 477
        line_start: 474
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(GetTestResult_Entry)(\n    GetTestResult_Out*          out\n)"
      pos:
        line_end: 511
        line_start: 509
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(StartAuthSession_Entry)(\n    StartAuthSession_In*        in,\n    StartAuthSession_Out*
        \      out\n)"
      pos:
        line_end: 547
        line_start: 544
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyRestart_Entry)(\n    PolicyRestart_In*           in\n)"
      pos:
        line_end: 595
        line_start: 593
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(Create_Entry)(\n    Create_In*                  in,\n    Create_Out*
        \                out\n)"
      pos:
        line_end: 629
        line_start: 626
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(Load_Entry)(\n    Load_In*                    in,\n    Load_Out*                   out\n)"
      pos:
        line_end: 680
        line_start: 677
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(LoadExternal_Entry)(\n    LoadExternal_In*            in,\n    LoadExternal_Out*
        \          out\n)"
      pos:
        line_end: 721
        line_start: 718
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ReadPublic_Entry)(\n    ReadPublic_In*              in,\n    ReadPublic_Out*
        \            out\n)"
      pos:
        line_end: 762
        line_start: 759
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ActivateCredential_Entry)(\n    ActivateCredential_In*      in,\n    ActivateCredential_Out*
        \    out\n)"
      pos:
        line_end: 801
        line_start: 798
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(MakeCredential_Entry)(\n    MakeCredential_In*          in,\n    MakeCredential_Out*
        \        out\n)"
      pos:
        line_end: 842
        line_start: 839
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(Unseal_Entry)(\n    Unseal_In*                  in,\n    Unseal_Out*
        \                out\n)"
      pos:
        line_end: 883
        line_start: 880
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ObjectChangeAuth_Entry)(\n    ObjectChangeAuth_In*        in,\n    ObjectChangeAuth_Out*
        \      out\n)"
      pos:
        line_end: 918
        line_start: 915
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(CreateLoaded_Entry)(\n    CreateLoaded_In*            in,\n    CreateLoaded_Out*
        \          out\n)"
      pos:
        line_end: 957
        line_start: 954
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(Duplicate_Entry)(\n    Duplicate_In*               in,\n    Duplicate_Out*
        \             out\n)"
      pos:
        line_end: 1002
        line_start: 999
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(Rewrap_Entry)(\n    Rewrap_In*                  in,\n    Rewrap_Out*
        \                out\n)"
      pos:
        line_end: 1047
        line_start: 1044
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(Import_Entry)(\n    Import_In*                  in,\n    Import_Out*
        \                out\n)"
      pos:
        line_end: 1092
        line_start: 1089
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(RSA_Encrypt_Entry)(\n    RSA_Encrypt_In*             in,\n    RSA_Encrypt_Out*
        \           out\n)"
      pos:
        line_end: 1137
        line_start: 1134
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(RSA_Decrypt_Entry)(\n    RSA_Decrypt_In*             in,\n    RSA_Decrypt_Out*
        \           out\n)"
      pos:
        line_end: 1178
        line_start: 1175
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ECDH_KeyGen_Entry)(\n    ECDH_KeyGen_In*             in,\n    ECDH_KeyGen_Out*
        \           out\n)"
      pos:
        line_end: 1219
        line_start: 1216
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ECDH_ZGen_Entry)(\n    ECDH_ZGen_In*               in,\n    ECDH_ZGen_Out*
        \             out\n)"
      pos:
        line_end: 1256
        line_start: 1253
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ECC_Parameters_Entry)(\n    ECC_Parameters_In*          in,\n    ECC_Parameters_Out*
        \        out\n)"
      pos:
        line_end: 1293
        line_start: 1290
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ZGen_2Phase_Entry)(\n    ZGen_2Phase_In*             in,\n    ZGen_2Phase_Out*
        \           out\n)"
      pos:
        line_end: 1328
        line_start: 1325
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ECC_Encrypt_Entry)(\n    ECC_Encrypt_In*             in,\n    ECC_Encrypt_Out*
        \           out\n)"
      pos:
        line_end: 1373
        line_start: 1370
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ECC_Decrypt_Entry)(\n    ECC_Decrypt_In*             in,\n    ECC_Decrypt_Out*
        \           out\n)"
      pos:
        line_end: 1416
        line_start: 1413
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(EncryptDecrypt_Entry)(\n    EncryptDecrypt_In*          in,\n    EncryptDecrypt_Out*
        \        out\n)"
      pos:
        line_end: 1459
        line_start: 1456
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(EncryptDecrypt2_Entry)(\n    EncryptDecrypt2_In*         in,\n    EncryptDecrypt2_Out*
        \       out\n)"
      pos:
        line_end: 1504
        line_start: 1501
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(Hash_Entry)(\n    Hash_In*                    in,\n    Hash_Out*                   out\n)"
      pos:
        line_end: 1549
        line_start: 1546
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(HMAC_Entry)(\n    HMAC_In*                    in,\n    HMAC_Out*                   out\n)"
      pos:
        line_end: 1590
        line_start: 1587
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(MAC_Entry)(\n    MAC_In*                     in,\n    MAC_Out*                    out\n)"
      pos:
        line_end: 1629
        line_start: 1626
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(GetRandom_Entry)(\n    GetRandom_In*               in,\n    GetRandom_Out*
        \             out\n)"
      pos:
        line_end: 1668
        line_start: 1665
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(StirRandom_Entry)(\n    StirRandom_In*              in\n)"
      pos:
        line_end: 1702
        line_start: 1700
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(HMAC_Start_Entry)(\n    HMAC_Start_In*              in,\n    HMAC_Start_Out*
        \            out\n)"
      pos:
        line_end: 1736
        line_start: 1733
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(MAC_Start_Entry)(\n    MAC_Start_In*               in,\n    MAC_Start_Out*
        \             out\n)"
      pos:
        line_end: 1775
        line_start: 1772
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(HashSequenceStart_Entry)(\n    HashSequenceStart_In*       in,\n    HashSequenceStart_Out*
        \     out\n)"
      pos:
        line_end: 1814
        line_start: 1811
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(SequenceUpdate_Entry)(\n    SequenceUpdate_In*          in\n)"
      pos:
        line_end: 1850
        line_start: 1848
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(SequenceComplete_Entry)(\n    SequenceComplete_In*        in,\n    SequenceComplete_Out*
        \      out\n)"
      pos:
        line_end: 1886
        line_start: 1883
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(EventSequenceComplete_Entry)(\n    EventSequenceComplete_In*   in,\n
        \   EventSequenceComplete_Out*  out\n)"
      pos:
        line_end: 1927
        line_start: 1924
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(Certify_Entry)(\n    Certify_In*                 in,\n    Certify_Out*
        \               out\n)"
      pos:
        line_end: 1966
        line_start: 1963
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(CertifyCreation_Entry)(\n    CertifyCreation_In*         in,\n    CertifyCreation_Out*
        \       out\n)"
      pos:
        line_end: 2009
        line_start: 2006
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(Quote_Entry)(\n    Quote_In*                   in,\n    Quote_Out*                  out\n)"
      pos:
        line_end: 2056
        line_start: 2053
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(GetSessionAuditDigest_Entry)(\n    GetSessionAuditDigest_In*   in,\n
        \   GetSessionAuditDigest_Out*  out\n)"
      pos:
        line_end: 2099
        line_start: 2096
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(GetCommandAuditDigest_Entry)(\n    GetCommandAuditDigest_In*   in,\n
        \   GetCommandAuditDigest_Out*  out\n)"
      pos:
        line_end: 2144
        line_start: 2141
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(GetTime_Entry)(\n    GetTime_In*                 in,\n    GetTime_Out*
        \               out\n)"
      pos:
        line_end: 2187
        line_start: 2184
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(CertifyX509_Entry)(\n    CertifyX509_In*             in,\n    CertifyX509_Out*
        \           out\n)"
      pos:
        line_end: 2230
        line_start: 2227
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(Commit_Entry)(\n    Commit_In*                  in,\n    Commit_Out*
        \                out\n)"
      pos:
        line_end: 2277
        line_start: 2274
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(EC_Ephemeral_Entry)(\n    EC_Ephemeral_In*            in,\n    EC_Ephemeral_Out*
        \          out\n)"
      pos:
        line_end: 2324
        line_start: 2321
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(VerifySignature_Entry)(\n    VerifySignature_In*         in,\n    VerifySignature_Out*
        \       out\n)"
      pos:
        line_end: 2361
        line_start: 2358
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(Sign_Entry)(\n    Sign_In*                    in,\n    Sign_Out*                   out\n)"
      pos:
        line_end: 2400
        line_start: 2397
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(SetCommandCodeAuditStatus_Entry)(\n    SetCommandCodeAuditStatus_In*
        in\n)"
      pos:
        line_end: 2440
        line_start: 2438
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PCR_Extend_Entry)(\n    PCR_Extend_In*              in\n)"
      pos:
        line_end: 2479
        line_start: 2477
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PCR_Event_Entry)(\n    PCR_Event_In*               in,\n    PCR_Event_Out*
        \             out\n)"
      pos:
        line_end: 2515
        line_start: 2512
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PCR_Read_Entry)(\n    PCR_Read_In*                in,\n    PCR_Read_Out*
        \              out\n)"
      pos:
        line_end: 2552
        line_start: 2549
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PCR_Allocate_Entry)(\n    PCR_Allocate_In*            in,\n    PCR_Allocate_Out*
        \          out\n)"
      pos:
        line_end: 2591
        line_start: 2588
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PCR_SetAuthPolicy_Entry)(\n    PCR_SetAuthPolicy_In*       in\n)"
      pos:
        line_end: 2633
        line_start: 2631
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PCR_SetAuthValue_Entry)(\n    PCR_SetAuthValue_In*        in\n)"
      pos:
        line_end: 2672
        line_start: 2670
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PCR_Reset_Entry)(\n    PCR_Reset_In*               in\n)"
      pos:
        line_end: 2707
        line_start: 2705
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicySigned_Entry)(\n    PolicySigned_In*            in,\n    PolicySigned_Out*
        \          out\n)"
      pos:
        line_end: 2741
        line_start: 2738
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicySecret_Entry)(\n    PolicySecret_In*            in,\n    PolicySecret_Out*
        \          out\n)"
      pos:
        line_end: 2790
        line_start: 2787
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyTicket_Entry)(\n    PolicyTicket_In*            in\n)"
      pos:
        line_end: 2836
        line_start: 2834
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyOR_Entry)(\n    PolicyOR_In*                in\n)"
      pos:
        line_end: 2879
        line_start: 2877
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyPCR_Entry)(\n    PolicyPCR_In*               in\n)"
      pos:
        line_end: 2914
        line_start: 2912
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyLocality_Entry)(\n    PolicyLocality_In*          in\n)"
      pos:
        line_end: 2951
        line_start: 2949
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyNV_Entry)(\n    PolicyNV_In*                in\n)"
      pos:
        line_end: 2986
        line_start: 2984
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyCounterTimer_Entry)(\n    PolicyCounterTimer_In*      in\n)"
      pos:
        line_end: 3029
        line_start: 3027
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyCommandCode_Entry)(\n    PolicyCommandCode_In*       in\n)"
      pos:
        line_end: 3068
        line_start: 3066
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyPhysicalPresence_Entry)(\n    PolicyPhysicalPresence_In*  in\n)"
      pos:
        line_end: 3103
        line_start: 3101
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyCpHash_Entry)(\n    PolicyCpHash_In*            in\n)"
      pos:
        line_end: 3136
        line_start: 3134
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyNameHash_Entry)(\n    PolicyNameHash_In*          in\n)"
      pos:
        line_end: 3171
        line_start: 3169
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyDuplicationSelect_Entry)(\n    PolicyDuplicationSelect_In* in\n)"
      pos:
        line_end: 3206
        line_start: 3204
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyAuthorize_Entry)(\n    PolicyAuthorize_In*         in\n)"
      pos:
        line_end: 3245
        line_start: 3243
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyAuthValue_Entry)(\n    PolicyAuthValue_In*         in\n)"
      pos:
        line_end: 3286
        line_start: 3284
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyPassword_Entry)(\n    PolicyPassword_In*          in\n)"
      pos:
        line_end: 3319
        line_start: 3317
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyGetDigest_Entry)(\n    PolicyGetDigest_In*         in,\n    PolicyGetDigest_Out*
        \       out\n)"
      pos:
        line_end: 3353
        line_start: 3350
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyNvWritten_Entry)(\n    PolicyNvWritten_In*         in\n)"
      pos:
        line_end: 3387
        line_start: 3385
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyTemplate_Entry)(\n    PolicyTemplate_In*          in\n)"
      pos:
        line_end: 3422
        line_start: 3420
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyAuthorizeNV_Entry)(\n    PolicyAuthorizeNV_In*       in\n)"
      pos:
        line_end: 3457
        line_start: 3455
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyCapability_Entry)(\n    PolicyCapability_In*        in\n)"
      pos:
        line_end: 3494
        line_start: 3492
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PolicyParameters_Entry)(\n    PolicyParameters_In*        in\n)"
      pos:
        line_end: 3537
        line_start: 3535
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(CreatePrimary_Entry)(\n    CreatePrimary_In*           in,\n    CreatePrimary_Out*
        \         out\n)"
      pos:
        line_end: 3573
        line_start: 3570
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(HierarchyControl_Entry)(\n    HierarchyControl_In*        in\n)"
      pos:
        line_end: 3625
        line_start: 3623
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(SetPrimaryPolicy_Entry)(\n    SetPrimaryPolicy_In*        in\n)"
      pos:
        line_end: 3662
        line_start: 3660
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ChangePPS_Entry)(\n    ChangePPS_In*               in\n)"
      pos:
        line_end: 3699
        line_start: 3697
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ChangeEPS_Entry)(\n    ChangeEPS_In*               in\n)"
      pos:
        line_end: 3732
        line_start: 3730
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(Clear_Entry)(\n    Clear_In*                   in\n)"
      pos:
        line_end: 3765
        line_start: 3763
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ClearControl_Entry)(\n    ClearControl_In*            in\n)"
      pos:
        line_end: 3798
        line_start: 3796
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(HierarchyChangeAuth_Entry)(\n    HierarchyChangeAuth_In*     in\n)"
      pos:
        line_end: 3833
        line_start: 3831
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(DictionaryAttackLockReset_Entry)(\n    DictionaryAttackLockReset_In*
        in\n)"
      pos:
        line_end: 3868
        line_start: 3866
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(DictionaryAttackParameters_Entry)(\n    DictionaryAttackParameters_In*
        in\n)"
      pos:
        line_end: 3901
        line_start: 3899
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(PP_Commands_Entry)(\n    PP_Commands_In*             in\n)"
      pos:
        line_end: 3940
        line_start: 3938
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(SetAlgorithmSet_Entry)(\n    SetAlgorithmSet_In*         in\n)"
      pos:
        line_end: 3977
        line_start: 3975
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(FieldUpgradeStart_Entry)(\n    FieldUpgradeStart_In*       in\n)"
      pos:
        line_end: 4012
        line_start: 4010
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(FieldUpgradeData_Entry)(\n    FieldUpgradeData_In*        in,\n    FieldUpgradeData_Out*
        \      out\n)"
      pos:
        line_end: 4052
        line_start: 4049
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(FirmwareRead_Entry)(\n    FirmwareRead_In*            in,\n    FirmwareRead_Out*
        \          out\n)"
      pos:
        line_end: 4089
        line_start: 4086
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ContextSave_Entry)(\n    ContextSave_In*             in,\n    ContextSave_Out*
        \           out\n)"
      pos:
        line_end: 4124
        line_start: 4121
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ContextLoad_Entry)(\n    ContextLoad_In*             in,\n    ContextLoad_Out*
        \           out\n)"
      pos:
        line_end: 4159
        line_start: 4156
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(FlushContext_Entry)(\n    FlushContext_In*            in\n)"
      pos:
        line_end: 4193
        line_start: 4191
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(EvictControl_Entry)(\n    EvictControl_In*            in\n)"
      pos:
        line_end: 4226
        line_start: 4224
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ReadClock_Entry)(\n    ReadClock_Out*              out\n)"
      pos:
        line_end: 4263
        line_start: 4261
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ClockSet_Entry)(\n    ClockSet_In*                in\n)"
      pos:
        line_end: 4296
        line_start: 4294
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ClockRateAdjust_Entry)(\n    ClockRateAdjust_In*         in\n)"
      pos:
        line_end: 4331
        line_start: 4329
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(GetCapability_Entry)(\n    GetCapability_In*           in,\n    GetCapability_Out*
        \         out\n)"
      pos:
        line_end: 4367
        line_start: 4364
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(TestParms_Entry)(\n    TestParms_In*               in\n)"
      pos:
        line_end: 4407
        line_start: 4405
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(NV_DefineSpace_Entry)(\n    NV_DefineSpace_In*          in\n)"
      pos:
        line_end: 4440
        line_start: 4438
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(NV_UndefineSpace_Entry)(\n    NV_UndefineSpace_In*        in\n)"
      pos:
        line_end: 4477
        line_start: 4475
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(NV_UndefineSpaceSpecial_Entry)(\n    NV_UndefineSpaceSpecial_In* in\n)"
      pos:
        line_end: 4512
        line_start: 4510
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(NV_ReadPublic_Entry)(\n    NV_ReadPublic_In*           in,\n    NV_ReadPublic_Out*
        \         out\n)"
      pos:
        line_end: 4548
        line_start: 4545
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(NV_Write_Entry)(\n    NV_Write_In*                in\n)"
      pos:
        line_end: 4584
        line_start: 4582
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(NV_Increment_Entry)(\n    NV_Increment_In*            in\n)"
      pos:
        line_end: 4623
        line_start: 4621
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(NV_Extend_Entry)(\n    NV_Extend_In*               in\n)"
      pos:
        line_end: 4658
        line_start: 4656
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(NV_SetBits_Entry)(\n    NV_SetBits_In*              in\n)"
      pos:
        line_end: 4695
        line_start: 4693
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(NV_WriteLock_Entry)(\n    NV_WriteLock_In*            in\n)"
      pos:
        line_end: 4732
        line_start: 4730
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(NV_GlobalWriteLock_Entry)(\n    NV_GlobalWriteLock_In*      in\n)"
      pos:
        line_end: 4767
        line_start: 4765
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(NV_Read_Entry)(\n    NV_Read_In*                 in,\n    NV_Read_Out*
        \               out\n)"
      pos:
        line_end: 4801
        line_start: 4798
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(NV_ReadLock_Entry)(\n    NV_ReadLock_In*             in\n)"
      pos:
        line_end: 4841
        line_start: 4839
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(NV_ChangeAuth_Entry)(\n    NV_ChangeAuth_In*           in\n)"
      pos:
        line_end: 4876
        line_start: 4874
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(NV_Certify_Entry)(\n    NV_Certify_In*              in,\n    NV_Certify_Out*
        \            out\n)"
      pos:
        line_end: 4912
        line_start: 4909
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(NV_DefineSpace2_Entry)(\n    NV_DefineSpace2_In*         in\n)"
      pos:
        line_end: 4960
        line_start: 4958
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(NV_ReadPublic2_Entry)(\n    NV_ReadPublic2_In*          in,\n    NV_ReadPublic2_Out*
        \        out\n)"
      pos:
        line_end: 4998
        line_start: 4995
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(SetCapability_Entry)(\n    SetCapability_In*        in\n)"
      pos:
        line_end: 5034
        line_start: 5032
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(AC_Send_Entry)(\n    AC_Send_In*                 in,\n    AC_Send_Out*
        \               out\n)"
      pos:
        line_end: 5069
        line_start: 5066
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(Policy_AC_SendSelect_Entry)(\n    Policy_AC_SendSelect_In*    in\n)"
      pos:
        line_end: 5109
        line_start: 5107
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(ACT_SetTimeout_Entry)(\n    ACT_SetTimeout_In*          in\n)"
      pos:
        line_end: 5150
        line_start: 5148
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    - item_type: typedef
      name: "(Vendor_TCG_Test_Entry)(\n    Vendor_TCG_Test_In*         in,\n    Vendor_TCG_Test_Out*
        \       out\n)"
      pos:
        line_end: 5186
        line_start: 5183
        source_file: /src/libtpms/src/tpm2/CommandDispatchData.h
      type: TPM_RC
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/AlgorithmCap_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmSizeChecks_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/SessionProcess_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALG_YES
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: 'YES'
    - item_type: preproc_def
      name: ALG_NO
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: BIG_ENDIAN_TPM
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: BIG_ENDIAN_TPM
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: 'YES'
    - item_type: preproc_def
      name: BIG_ENDIAN_TPM
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: BIG_ENDIAN_TPM
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: 'YES'
    - item_type: preproc_def
      name: BIG_ENDIAN_TPM
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: BIG_ENDIAN_TPM
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: LITTLE_ENDIAN_TPM
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: '!BIG_ENDIAN_TPM'
    - item_type: preproc_def
      name: MOST_SIGNIFICANT_BIT_0
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: LEAST_SIGNIFICANT_BIT_0
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: '!MOST_SIGNIFICANT_BIT_0'
    - item_type: preproc_def
      name: AUTO_ALIGN
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: ALG_AES
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: AES_128
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_AES)
    - item_type: preproc_def
      name: AES_192
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: '(YES * ALG_AES) '
    - item_type: preproc_def
      name: AES_256
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_AES)
    - item_type: preproc_def
      name: ALG_SM4
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_NO
    - item_type: preproc_def
      name: SM4_128
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (NO  * ALG_SM4)
    - item_type: preproc_def
      name: ALG_CAMELLIA
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: CAMELLIA_128
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_CAMELLIA)
    - item_type: preproc_def
      name: CAMELLIA_192
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: '(YES * ALG_CAMELLIA) '
    - item_type: preproc_def
      name: CAMELLIA_256
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_CAMELLIA)
    - item_type: preproc_def
      name: ALG_TDES
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: 'ALG_YES '
    - item_type: preproc_def
      name: TDES_128
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (ALG_TDES && YES)
    - item_type: preproc_def
      name: TDES_192
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (ALG_TDES && YES)
    - item_type: preproc_def
      name: ALG_SYMCIPHER
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (ALG_AES || ALG_SM4 || ALG_CAMELLIA)
    - item_type: preproc_def
      name: ALG_CMAC
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_SYMCIPHER)
    - item_type: preproc_def
      name: ALG_CTR
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: ALG_OFB
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: ALG_CBC
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: ALG_CFB
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: ALG_ECB
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: ALG_RSA
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: RSA_1024
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_RSA)
    - item_type: preproc_def
      name: RSA_2048
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_RSA)
    - item_type: preproc_def
      name: RSA_3072
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_RSA)
    - item_type: preproc_def
      name: RSA_4096
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: '(YES * ALG_RSA) '
    - item_type: preproc_def
      name: RSA_16384
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (NO  * ALG_RSA)
    - item_type: preproc_def
      name: ALG_RSASSA
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_RSA)
    - item_type: preproc_def
      name: ALG_RSAES
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_RSA)
    - item_type: preproc_def
      name: ALG_RSAPSS
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_RSA)
    - item_type: preproc_def
      name: ALG_OAEP
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_RSA)
    - item_type: preproc_def
      name: CRT_FORMAT_RSA
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: 'YES'
    - item_type: preproc_def
      name: RSA_DEFAULT_PUBLIC_EXPONENT
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: '0x00010001'
    - item_type: preproc_def
      name: ALG_ECC
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: ALG_ECDH
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_ECC)
    - item_type: preproc_def
      name: ALG_ECDSA
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_ECC)
    - item_type: preproc_def
      name: ALG_ECDAA
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_ECC)
    - item_type: preproc_def
      name: ALG_SM2
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_ECC)
    - item_type: preproc_def
      name: ALG_ECSCHNORR
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_ECC)
    - item_type: preproc_def
      name: ALG_ECMQV
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_ECC)
    - item_type: preproc_def
      name: ALG_KDF1_SP800_56A
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_ECC)
    - item_type: preproc_def
      name: ALG_EDDSA
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (NO  * ALG_ECC)
    - item_type: preproc_def
      name: ALG_EDDSA_PH
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (NO  * ALG_ECC)
    - item_type: preproc_def
      name: ECC_NIST_P192
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_ECC)
    - item_type: preproc_def
      name: ECC_NIST_P224
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_ECC)
    - item_type: preproc_def
      name: ECC_NIST_P256
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_ECC)
    - item_type: preproc_def
      name: ECC_NIST_P384
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_ECC)
    - item_type: preproc_def
      name: ECC_NIST_P521
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_ECC)
    - item_type: preproc_def
      name: ECC_BN_P256
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_ECC)
    - item_type: preproc_def
      name: ECC_BN_P638
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_ECC)
    - item_type: preproc_def
      name: ECC_SM2_P256
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (YES * ALG_ECC)
    - item_type: preproc_def
      name: ECC_BP_P256_R1
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (NO * ALG_ECC)
    - item_type: preproc_def
      name: ECC_BP_P384_R1
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (NO * ALG_ECC)
    - item_type: preproc_def
      name: ECC_BP_P512_R1
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (NO * ALG_ECC)
    - item_type: preproc_def
      name: ECC_CURVE_25519
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (NO * ALG_ECC)
    - item_type: preproc_def
      name: ECC_CURVE_448
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: (NO * ALG_ECC)
    - item_type: preproc_def
      name: ALG_MGF1
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: ALG_SHA1
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: ALG_SHA256
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: ALG_SHA256_192
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_NO
    - item_type: preproc_def
      name: ALG_SHA384
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: ALG_SHA512
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: ALG_SHA3_256
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_NO
    - item_type: preproc_def
      name: ALG_SHA3_384
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_NO
    - item_type: preproc_def
      name: ALG_SHA3_512
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_NO
    - item_type: preproc_def
      name: ALG_SM3_256
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_NO
    - item_type: preproc_def
      name: ALG_SHAKE256_192
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_NO
    - item_type: preproc_def
      name: ALG_SHAKE256_256
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_NO
    - item_type: preproc_def
      name: ALG_SHAKE256_512
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_NO
    - item_type: preproc_def
      name: ALG_LMS
      pos:
        line_end: 231
        line_start: 230
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_NO
    - item_type: preproc_def
      name: ALG_XMSS
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_NO
    - item_type: preproc_def
      name: ALG_KEYEDHASH
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: ALG_HMAC
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: ALG_KDF2
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: ALG_KDF1_SP800_108
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: ALG_XOR
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ALG_YES
    - item_type: preproc_def
      name: ACT_SUPPORT
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: 'YES'
    - item_type: preproc_def
      name: RH_ACT_0
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: "( NO * ACT_SUPPORT)\t"
    - item_type: preproc_def
      name: RH_ACT_1
      pos:
        line_end: 256
        line_start: 255
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ( NO * ACT_SUPPORT)
    - item_type: preproc_def
      name: RH_ACT_2
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ( NO * ACT_SUPPORT)
    - item_type: preproc_def
      name: RH_ACT_3
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ( NO * ACT_SUPPORT)
    - item_type: preproc_def
      name: RH_ACT_4
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ( NO * ACT_SUPPORT)
    - item_type: preproc_def
      name: RH_ACT_5
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ( NO * ACT_SUPPORT)
    - item_type: preproc_def
      name: RH_ACT_6
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ( NO * ACT_SUPPORT)
    - item_type: preproc_def
      name: RH_ACT_7
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ( NO * ACT_SUPPORT)
    - item_type: preproc_def
      name: RH_ACT_8
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ( NO * ACT_SUPPORT)
    - item_type: preproc_def
      name: RH_ACT_9
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ( NO * ACT_SUPPORT)
    - item_type: preproc_def
      name: RH_ACT_A
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: "( NO * ACT_SUPPORT)\t "
    - item_type: preproc_def
      name: RH_ACT_B
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ( NO * ACT_SUPPORT)
    - item_type: preproc_def
      name: RH_ACT_C
      pos:
        line_end: 267
        line_start: 266
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ( NO * ACT_SUPPORT)
    - item_type: preproc_def
      name: RH_ACT_D
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ( NO * ACT_SUPPORT)
    - item_type: preproc_def
      name: RH_ACT_E
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ( NO * ACT_SUPPORT)
    - item_type: preproc_def
      name: RH_ACT_F
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: ( NO * ACT_SUPPORT)
    - item_type: preproc_def
      name: VENDOR_PERMANENT_AUTH_ENABLED
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: FIELD_UPGRADE_IMPLEMENTED
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: MAX_COMMAND_SIZE
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: "TPM2_GetBufferSize()\t"
    - item_type: preproc_def
      name: MAX_RESPONSE_SIZE
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: "TPM2_GetBufferSize()\t"
    - item_type: preproc_def
      name: VENDOR_COMMAND_COUNT
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MAX_VENDOR_BUFFER_SIZE
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: '1024 '
    - item_type: preproc_def
      name: PRIVATE_VENDOR_SPECIFIC_BYTES
      pos:
        line_end: 311
        line_start: 309
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: '((MAX_RSA_KEY_BYTES/2) * (3 + CRT_FORMAT_RSA * 2))  '
    - item_type: preproc_def
      name: FW_LIMITED_SUPPORT
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: "NO\t// libtpms: NO"
    - item_type: preproc_def
      name: SVN_LIMITED_SUPPORT
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: "NO\t// libtpms: NO"
    - item_type: preproc_def
      name: EXTERNAL_NV
      pos:
        line_end: 327
        line_start: 326
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: PERMANENT_NV
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/libtpms/src/tpm2/TpmProfile_Common.h
      type_or_value: "NO\t// libtpms: added"
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Commit_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_Commit_signHandle
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/Commit_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Commit_P1
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/Commit_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Commit_s2
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/Commit_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_Commit_y2
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/Commit_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    structs:
    - fields:
      - name: signHandle
        type: TPMI_DH_OBJECT
      - name: P1
        type: TPM2B_ECC_POINT
      - name: s2
        type: TPM2B_SENSITIVE_DATA
      - name: y2
        type: TPM2B_ECC_PARAMETER
      item_type: struct
      name: Commit_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/Commit_fp.h
    - fields:
      - name: K
        type: TPM2B_ECC_POINT
      - name: L
        type: TPM2B_ECC_POINT
      - name: E
        type: TPM2B_ECC_POINT
      - name: counter
        type: UINT16
      item_type: struct
      name: Commit_Out
      pos:
        line_end: 85
        line_start: 79
        source_file: /src/libtpms/src/tpm2/Commit_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PCR_SetAuthPolicy_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PCR_SetAuthPolicy_authHandle
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/PCR_SetAuthPolicy_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PCR_SetAuthPolicy_authPolicy
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/PCR_SetAuthPolicy_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PCR_SetAuthPolicy_hashAlg
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/PCR_SetAuthPolicy_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_PCR_SetAuthPolicy_pcrNum
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/PCR_SetAuthPolicy_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_PLATFORM
      - name: authPolicy
        type: TPM2B_DIGEST
      - name: hashAlg
        type: TPMI_ALG_HASH
      - name: pcrNum
        type: TPMI_DH_PCR
      item_type: struct
      name: PCR_SetAuthPolicy_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PCR_SetAuthPolicy_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/CommandAudit_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GET_TPM_NT
  - GetNv_TPM_NV
  - IsNvOrdinaryIndex
  - IsNvCounterIndex
  - IsNvBitsIndex
  - IsNvExtendIndex
  - IsNvPinPassIndex
  - IsNvPinFailIndex
  - ORDERLY_RAM_ADDRESS_OK
  - IS_ORDERLY
  - SET_NV_UPDATE
  source_file: /src/libtpms/src/tpm2/NV.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_NT_ORDINARY
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/NV.h
      type_or_value: (0)
    - item_type: preproc_def
      name: TPM_NT_COUNTER
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/NV.h
      type_or_value: (1)
    - item_type: preproc_def
      name: TPM_NT_BITS
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/NV.h
      type_or_value: (2)
    - item_type: preproc_def
      name: TPM_NT_EXTEND
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/NV.h
      type_or_value: (4)
    - item_type: preproc_def
      name: NV_EVICT_OBJECT_SIZE
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/libtpms/src/tpm2/NV.h
      type_or_value: (sizeof(UINT32) + sizeof(TPM_HANDLE) + sizeof(OBJECT))
    - item_type: preproc_def
      name: NV_INDEX_COUNTER_SIZE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/libtpms/src/tpm2/NV.h
      type_or_value: (sizeof(UINT32) + sizeof(NV_INDEX) + sizeof(UINT64))
    - item_type: preproc_def
      name: NV_RAM_INDEX_COUNTER_SIZE
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/libtpms/src/tpm2/NV.h
      type_or_value: (sizeof(NV_RAM_HEADER) + sizeof(UINT64))
    - item_type: preproc_def
      name: NV_RAM_REF_INIT
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/libtpms/src/tpm2/NV.h
      type_or_value: '0'
    - item_type: preproc_def
      name: RAM_ORDERLY_START
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/libtpms/src/tpm2/NV.h
      type_or_value: (&s_indexOrderlyRam[0])
    - item_type: preproc_def
      name: NV_ORDERLY_START
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/libtpms/src/tpm2/NV.h
      type_or_value: (NV_INDEX_RAM_DATA)
    - item_type: preproc_def
      name: RAM_ORDERLY_END
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/libtpms/src/tpm2/NV.h
      type_or_value: (RAM_ORDERLY_START + sizeof(s_indexOrderlyRam))
    - item_type: preproc_def
      name: NV_ORDERLY_END
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/libtpms/src/tpm2/NV.h
      type_or_value: (NV_ORDERLY_START + sizeof(s_indexOrderlyRam))
    - item_type: preproc_def
      name: RETURN_IF_NV_IS_NOT_AVAILABLE
      pos:
        line_end: 157
        line_start: 152
        source_file: /src/libtpms/src/tpm2/NV.h
      type_or_value: "{                                   \\\n    if(g_NvStatus !=
        TPM_RC_SUCCESS)  \\\n      return g_NvStatus;              \\\n  }"
    - item_type: preproc_def
      name: RETURN_IF_ORDERLY
      pos:
        line_end: 165
        line_start: 160
        source_file: /src/libtpms/src/tpm2/NV.h
      type_or_value: "{                                        \\\n    if(NvClearOrderly()
        != TPM_RC_SUCCESS) \\\n      return g_NvStatus;                   \\\n  }"
    - item_type: preproc_def
      name: NV_IS_AVAILABLE
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/libtpms/src/tpm2/NV.h
      type_or_value: (g_NvStatus == TPM_RC_SUCCESS)
    - item_type: preproc_def
      name: NV_IS_ORDERLY
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/libtpms/src/tpm2/NV.h
      type_or_value: (IS_ORDERLY(gp.orderlyState))
    structs:
    - fields:
      - name: size
        type: UINT32
      - name: handle
        type: TPM_HANDLE
      item_type: struct
      name: NV_ENTRY_HEADER
      pos:
        line_end: 109
        line_start: 105
        source_file: /src/libtpms/src/tpm2/NV.h
    - fields:
      - name: size
        type: UINT32
      - name: handle
        type: TPM_HANDLE
      - name: attributes
        type: TPMA_NV
      item_type: struct
      name: NV_RAM_HEADER
      pos:
        line_end: 122
        line_start: 117
        source_file: /src/libtpms/src/tpm2/NV.h
    typedefs:
    - item_type: typedef
      name: NV_LIST_TERMINATOR[3]
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/libtpms/src/tpm2/NV.h
      type: UINT32
    union: []
- function_names:
  - CommandAuditPreInstall_Init
  - CommandAuditStartup
  - CommandAuditSet
  - CommandAuditClear
  - CommandAuditIsRequired
  - CommandAuditCapGetCCList
  - CommandAuditCapGetOneCC
  - CommandAuditGetDigest
  source_file: /src/libtpms/src/tpm2/CommandAudit.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/X509_RSA_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ClockRateAdjust_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ClockRateAdjust_auth
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/ClockRateAdjust_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_ClockRateAdjust_rateAdjust
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/ClockRateAdjust_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: auth
        type: TPMI_RH_PROVISION
      - name: rateAdjust
        type: TPM_CLOCK_ADJUST
      item_type: struct
      name: ClockRateAdjust_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/ClockRateAdjust_fp.h
    typedefs: []
    union: []
- function_names:
  - GetIV2BSize
  - ComputeProtectionKeyParms
  - ComputeOuterIntegrity
  - ComputeInnerIntegrity
  - ProduceInnerIntegrity
  - CheckInnerIntegrity
  - AdjustAuthSize
  - ObjectIsParent
  - CreateChecks
  - SchemeChecks
  - PublicAttributesValidation
  - FillInCreationData
  - GetSeedForKDF
  - ProduceOuterWrap
  - UnwrapOuter
  - SensitiveToPrivate
  - PrivateToSensitive
  - SensitiveToDuplicate
  - DuplicateToSensitive
  - SecretToCredential
  - CredentialToSecret
  - MemoryRemoveTrailingZeros
  - SetLabelAndContext
  - UnmarshalToPublic
  - ObjectSetExternal
  source_file: /src/libtpms/src/tpm2/Object_spt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TpmMath_IntFrom2B
  - TpmMath_IntTo2B
  - TpmMath_GetRandomBits
  - TpmMath_GetRandomInteger
  - TpmMath_GetRandomInRange
  source_file: /src/libtpms/src/tpm2/TpmMath_Util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyAuthorizeNV_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyAuthorizeNV_authHandle
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/PolicyAuthorizeNV_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyAuthorizeNV_nvIndex
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/PolicyAuthorizeNV_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_PolicyAuthorizeNV_policySession
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/PolicyAuthorizeNV_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_3)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_NV_AUTH
      - name: nvIndex
        type: TPMI_RH_NV_INDEX
      - name: policySession
        type: TPMI_SH_POLICY
      item_type: struct
      name: PolicyAuthorizeNV_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyAuthorizeNV_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/_TPM_Hash_Start_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TestParms_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_TestParms_parameters
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/TestParms_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: parameters
        type: TPMT_PUBLIC_PARMS
      item_type: struct
      name: TestParms_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/TestParms_fp.h
    typedefs: []
    union: []
- function_names:
  - _plat__GetPlatformManufactureData
  source_file: /src/libtpms/src/tpm2/ExtraData.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PCR_SetAuthValue_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PCR_SetAuthValue_pcrHandle
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/PCR_SetAuthValue_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PCR_SetAuthValue_auth
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/PCR_SetAuthValue_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: pcrHandle
        type: TPMI_DH_PCR
      - name: auth
        type: TPM2B_DIGEST
      item_type: struct
      name: PCR_SetAuthValue_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PCR_SetAuthValue_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PCR_Reset_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PCR_Reset_pcrHandle
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/PCR_Reset_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: pcrHandle
        type: TPMI_DH_PCR
      item_type: struct
      name: PCR_Reset_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PCR_Reset_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PlatformACT_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SchnorrReduce
  - TpmEcc_SignEcSchnorr
  - TpmEcc_ValidateSignatureEcSchnorr
  source_file: /src/libtpms/src/tpm2/TpmEcc_Signature_Schnorr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CcToIdx
  - IdxToCc
  source_file: /src/libtpms/src/tpm2/RuntimeCommands_fp.h
  types:
    enum:
    - enumerators:
      - name: RUNTIME_CMD_IMPLEMENTED
      - name: RUNTIME_CMD_DISABLED
      - name: RUNTIME_CMD_CAN_BE_DISABLED
      - name: RUNTIME_CMD_NUM
      - name: RUNTIME_CMD_ENABLED
      item_type: enum
      name: RuntimeCommandType
      pos:
        line_end: 92
        line_start: 85
        source_file: /src/libtpms/src/tpm2/RuntimeCommands_fp.h
    preproc_defs:
    - item_type: preproc_def
      name: CC_OFFSET
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/libtpms/src/tpm2/RuntimeCommands_fp.h
      type_or_value: TPM_CC_FIRST
    - item_type: preproc_def
      name: NUM_ENTRIES_COMMAND_PROPERTIES
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/libtpms/src/tpm2/RuntimeCommands_fp.h
      type_or_value: (CcToIdx(TPM_CC_LAST) + 1)
    structs:
    - fields:
      - name: enabledCommands[(IdxToCc(NUM_ENTRIES_COMMAND_PROPERTIES) + 7) / 8]
        type: unsigned char
      - name: '*commandsProfile'
        type: char
      item_type: struct
      name: RuntimeCommands
      pos:
        line_end: 56
        line_start: 53
        source_file: /src/libtpms/src/tpm2/RuntimeCommands_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NvReserved_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2_ACT_SetTimeout
  source_file: /src/libtpms/src/tpm2/ACTCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_ChangeAuth_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_NV_ChangeAuth_nvIndex
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/NV_ChangeAuth_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_ChangeAuth_newAuth
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/NV_ChangeAuth_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: nvIndex
        type: TPMI_RH_NV_INDEX
      - name: newAuth
        type: TPM2B_AUTH
      item_type: struct
      name: NV_ChangeAuth_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/NV_ChangeAuth_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Time_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fileOpen
  - DebugFileInit
  - DebugDumpBuffer
  source_file: /src/libtpms/src/tpm2/DebugHelpers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/CreatePrimary_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_CreatePrimary_primaryHandle
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/CreatePrimary_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_CreatePrimary_inSensitive
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/CreatePrimary_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_CreatePrimary_inPublic
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libtpms/src/tpm2/CreatePrimary_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_CreatePrimary_outsideInfo
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libtpms/src/tpm2/CreatePrimary_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    - item_type: preproc_def
      name: RC_CreatePrimary_creationPCR
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libtpms/src/tpm2/CreatePrimary_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_4)
    structs:
    - fields:
      - name: primaryHandle
        type: TPMI_RH_HIERARCHY
      - name: inSensitive
        type: TPM2B_SENSITIVE_CREATE
      - name: inPublic
        type: TPM2B_PUBLIC
      - name: outsideInfo
        type: TPM2B_DATA
      - name: creationPCR
        type: TPML_PCR_SELECTION
      item_type: struct
      name: CreatePrimary_In
      pos:
        line_end: 77
        line_start: 70
        source_file: /src/libtpms/src/tpm2/CreatePrimary_fp.h
    - fields:
      - name: objectHandle
        type: TPM_HANDLE
      - name: outPublic
        type: TPM2B_PUBLIC
      - name: creationData
        type: TPM2B_CREATION_DATA
      - name: creationHash
        type: TPM2B_DIGEST
      - name: creationTicket
        type: TPMT_TK_CREATION
      - name: name
        type: TPM2B_NAME
      item_type: struct
      name: CreatePrimary_Out
      pos:
        line_end: 88
        line_start: 80
        source_file: /src/libtpms/src/tpm2/CreatePrimary_fp.h
    typedefs: []
    union: []
- function_names:
  - HierarchyPreInstall_Init
  - HierarchyStartup
  - DecomposeHandle
  - GetAdditionalSecret
  - MixAdditionalSecret
  - HierarchyGetProof
  - HierarchyGetPrimarySeed
  - HierarchyGetPrimarySeedCompatLevel
  - ValidateHierarchy
  - HierarchyIsEnabled
  - HierarchyNormalizeHandle
  - HierarchyIsFirmwareLimited
  - HierarchyIsSvnLimited
  source_file: /src/libtpms/src/tpm2/Hierarchy.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: HIERARCHY_MODIFIER_TYPE
      - name: min_svn
        type: uint16_t
      item_type: struct
      name: HIERARCHY_MODIFIER
      pos:
        line_end: 85
        line_start: 80
        source_file: /src/libtpms/src/tpm2/Hierarchy.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ReadClock_fp.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: currentTime
        type: TPMS_TIME_INFO
      item_type: struct
      name: ReadClock_Out
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/ReadClock_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/GetRandom_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_GetRandom_bytesRequested
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/GetRandom_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: bytesRequested
        type: UINT16
      item_type: struct
      name: GetRandom_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/GetRandom_fp.h
    - fields:
      - name: randomBytes
        type: TPM2B_DIGEST
      item_type: struct
      name: GetRandom_Out
      pos:
        line_end: 79
        line_start: 76
        source_file: /src/libtpms/src/tpm2/GetRandom_fp.h
    typedefs: []
    union: []
- function_names:
  - TPM2_Certify
  - TPM2_CertifyCreation
  - TPM2_Quote
  - TPM2_GetSessionAuditDigest
  - TPM2_GetCommandAuditDigest
  - TPM2_GetTime
  - TPM2_CertifyX509
  source_file: /src/libtpms/src/tpm2/AttestationCommands.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALLOWED_SEQUENCES
      pos:
        line_end: 345
        line_start: 344
        source_file: /src/libtpms/src/tpm2/AttestationCommands.c
      type_or_value: (SUBJECT_PUBLIC_KEY_REF - SIGNATURE_REF)
    structs: []
    typedefs: []
    union: []
- function_names:
  - TO_BIG_ENDIAN_UINT16
  - FROM_BIG_ENDIAN_UINT16
  - TO_BIG_ENDIAN_UINT32
  - FROM_BIG_ENDIAN_UINT32
  - TO_BIG_ENDIAN_UINT64
  - FROM_BIG_ENDIAN_UINT64
  - TO_BIG_ENDIAN_UINT16
  - FROM_BIG_ENDIAN_UINT16
  - TO_BIG_ENDIAN_UINT32
  - FROM_BIG_ENDIAN_UINT32
  - TO_BIG_ENDIAN_UINT64
  - FROM_BIG_ENDIAN_UINT64
  - BYTE_ARRAY_TO_UINT8
  - BYTE_ARRAY_TO_UINT16
  - BYTE_ARRAY_TO_UINT32
  - BYTE_ARRAY_TO_UINT64
  - UINT8_TO_BYTE_ARRAY
  - UINT16_TO_BYTE_ARRAY
  - UINT32_TO_BYTE_ARRAY
  - UINT64_TO_BYTE_ARRAY
  - BYTE_ARRAY_TO_UINT8
  - BYTE_ARRAY_TO_UINT16
  - BYTE_ARRAY_TO_UINT32
  - BYTE_ARRAY_TO_UINT64
  - UINT8_TO_BYTE_ARRAY
  - UINT16_TO_BYTE_ARRAY
  - UINT32_TO_BYTE_ARRAY
  - UINT64_TO_BYTE_ARRAY
  - BYTE_ARRAY_TO_UINT8
  - BYTE_ARRAY_TO_UINT16
  - BYTE_ARRAY_TO_UINT32
  - BYTE_ARRAY_TO_UINT64
  - UINT8_TO_BYTE_ARRAY
  - UINT16_TO_BYTE_ARRAY
  - UINT32_TO_BYTE_ARRAY
  - UINT64_TO_BYTE_ARRAY
  source_file: /src/libtpms/src/tpm2/endian_swap.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2_PCR_Extend
  - TPM2_PCR_Event
  - TPM2_PCR_Read
  - TPM2_PCR_Allocate
  - TPM2_PCR_SetAuthPolicy
  - TPM2_PCR_SetAuthValue
  - TPM2_PCR_Reset
  - _TPM_Hash_Start
  - _TPM_Hash_Data
  - _TPM_Hash_End
  source_file: /src/libtpms/src/tpm2/IntegrityCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_UndefineSpaceSpecial_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_NV_UndefineSpaceSpecial_nvIndex
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/NV_UndefineSpaceSpecial_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_UndefineSpaceSpecial_platform
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/NV_UndefineSpaceSpecial_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    structs:
    - fields:
      - name: nvIndex
        type: TPMI_RH_NV_DEFINED_INDEX
      - name: platform
        type: TPMI_RH_PLATFORM
      item_type: struct
      name: NV_UndefineSpaceSpecial_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/NV_UndefineSpaceSpecial_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyAuthValue_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyAuthValue_policySession
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/PolicyAuthValue_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      item_type: struct
      name: PolicyAuthValue_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyAuthValue_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/SelfTest.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SELF_TEST_FAILURE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: FAIL(FATAL_ERROR_SELF_TEST)
    - item_type: preproc_def
      name: AES_ENTRIES
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: (AES_128 + AES_192 + AES_256)
    - item_type: preproc_def
      name: SM4_ENTRIES
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: (SM4_128)
    - item_type: preproc_def
      name: CAMELLIA_ENTRIES
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: (CAMELLIA_128 + CAMELLIA_192 + CAMELLIA_256)
    - item_type: preproc_def
      name: TDES_ENTRIES
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: '(TDES_128 * 2 + TDES_192 * 2) '
    - item_type: preproc_def
      name: NUM_SYMS
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: "(AES_ENTRIES + SM4_ENTRIES + CAMELLIA_ENTRIES + TDES_ENTRIES)\t\t//
        libtpmss added TDES_ENTRIES"
    - item_type: preproc_def
      name: SYM_MODE_FIRST
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: ALG_CTR_VALUE
    - item_type: preproc_def
      name: SYM_MODE_LAST
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: ALG_ECB_VALUE
    - item_type: preproc_def
      name: NUM_SYM_MODES
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: (SYM_MODE_LAST - SYM_MODE_FIRST + 1)
    - item_type: preproc_def
      name: DEFAULT_TEST_HASH
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: ALG_SHA512_VALUE
    - item_type: preproc_def
      name: DEFAULT_TEST_DIGEST_SIZE
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: SHA512_DIGEST_SIZE
    - item_type: preproc_def
      name: DEFAULT_TEST_HASH_BLOCK_SIZE
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: SHA512_BLOCK_SIZE
    - item_type: preproc_def
      name: DEFAULT_TEST_HASH
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: ALG_SHA384_VALUE
    - item_type: preproc_def
      name: DEFAULT_TEST_DIGEST_SIZE
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: SHA384_DIGEST_SIZE
    - item_type: preproc_def
      name: DEFAULT_TEST_HASH_BLOCK_SIZE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: SHA384_BLOCK_SIZE
    - item_type: preproc_def
      name: DEFAULT_TEST_HASH
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: ALG_SHA256_VALUE
    - item_type: preproc_def
      name: DEFAULT_TEST_DIGEST_SIZE
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: SHA256_DIGEST_SIZE
    - item_type: preproc_def
      name: DEFAULT_TEST_HASH_BLOCK_SIZE
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: SHA256_BLOCK_SIZE
    - item_type: preproc_def
      name: DEFAULT_TEST_HASH
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: ALG_SHA1_VALUE
    - item_type: preproc_def
      name: DEFAULT_TEST_DIGEST_SIZE
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: SHA1_DIGEST_SIZE
    - item_type: preproc_def
      name: DEFAULT_TEST_HASH_BLOCK_SIZE
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type_or_value: SHA1_BLOCK_SIZE
    structs:
    - fields:
      - name: alg
        type: TPM_ALG_ID
      - name: keyBits
        type: UINT16
      - name: '*      key'
        type: BYTE
      - name: ivSize
        type: UINT32
      - name: dataInOutSize
        type: UINT32
      - name: '*      dataIn'
        type: BYTE
      - name: '*      dataOut[NUM_SYM_MODES]'
        type: BYTE
      item_type: struct
      name: SYMMETRIC_TEST_VECTOR
      pos:
        line_end: 110
        line_start: 101
        source_file: /src/libtpms/src/tpm2/SelfTest.h
    typedefs:
    - item_type: typedef
      name: SYM_INDEX
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type: UINT32
    - item_type: typedef
      name: SYM_MODES
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type: BYTE
    - item_type: typedef
      name: SYM_MODES
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type: UINT16
    - item_type: typedef
      name: SYM_MODES
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/libtpms/src/tpm2/SelfTest.h
      type: UINT32
    union: []
- function_names:
  - RcSafeAddToResult
  source_file: /src/libtpms/src/tpm2/ResponseCodeProcessing.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyCounterTimer_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyCounterTimer_policySession
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/PolicyCounterTimer_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyCounterTimer_operandB
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/PolicyCounterTimer_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyCounterTimer_offset
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/PolicyCounterTimer_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_PolicyCounterTimer_operation
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/PolicyCounterTimer_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      - name: operandB
        type: TPM2B_OPERAND
      - name: offset
        type: UINT16
      - name: operation
        type: TPM_EO
      item_type: struct
      name: PolicyCounterTimer_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyCounterTimer_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/SetCommandCodeAuditStatus_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_SetCommandCodeAuditStatus_auth
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/SetCommandCodeAuditStatus_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_SetCommandCodeAuditStatus_auditAlg
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/SetCommandCodeAuditStatus_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_SetCommandCodeAuditStatus_setList
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/SetCommandCodeAuditStatus_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_SetCommandCodeAuditStatus_clearList
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/SetCommandCodeAuditStatus_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    structs:
    - fields:
      - name: auth
        type: TPMI_RH_PROVISION
      - name: auditAlg
        type: TPMI_ALG_HASH
      - name: setList
        type: TPML_CC
      - name: clearList
        type: TPML_CC
      item_type: struct
      name: SetCommandCodeAuditStatus_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/SetCommandCodeAuditStatus_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PCR_Event_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PCR_Event_pcrHandle
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/PCR_Event_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PCR_Event_eventData
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/PCR_Event_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: pcrHandle
        type: TPMI_DH_PCR
      - name: eventData
        type: TPM2B_EVENT
      item_type: struct
      name: PCR_Event_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PCR_Event_fp.h
    - fields:
      - name: digests
        type: TPML_DIGEST_VALUES
      item_type: struct
      name: PCR_Event_Out
      pos:
        line_end: 80
        line_start: 77
        source_file: /src/libtpms/src/tpm2/PCR_Event_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyPhysicalPresence_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyPhysicalPresence_policySession
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/PolicyPhysicalPresence_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      item_type: struct
      name: PolicyPhysicalPresence_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyPhysicalPresence_fp.h
    typedefs: []
    union: []
- function_names:
  - CRYPT_INT_TYPE
  - CRYPT_INT_VAR
  - CRYPT_INT_INITIALIZED
  - CRYPT_INT_MAX
  - CRYPT_INT_MAX_INITIALIZED
  - CRYPT_INT_WORD
  - CRYPT_INT_WORD_INITIALIZED
  - CRYPT_CURVE_INITIALIZED
  - CRYPT_CURVE_FREE
  - CRYPT_POINT_VAR
  - CRYPT_POINT_INITIALIZED
  source_file: /src/libtpms/src/tpm2/MathLibraryInterfaceTypes.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: Crypt_Int
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/libtpms/src/tpm2/MathLibraryInterfaceTypes.h
      type: CRYPT_INT_BUF
    - item_type: typedef
      name: (pointone, 1)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/libtpms/src/tpm2/MathLibraryInterfaceTypes.h
      type: CRYPT_POINT_BUF
    - item_type: typedef
      name: (curvebuft, MAX_ECC_KEY_BITS)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/libtpms/src/tpm2/MathLibraryInterfaceTypes.h
      type: CRYPT_CURVE_BUF
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmMath_Debug_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Create_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_Create_parentHandle
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/Create_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Create_inSensitive
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/Create_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Create_inPublic
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/Create_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_Create_outsideInfo
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libtpms/src/tpm2/Create_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    - item_type: preproc_def
      name: RC_Create_creationPCR
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libtpms/src/tpm2/Create_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_4)
    structs:
    - fields:
      - name: parentHandle
        type: TPMI_DH_OBJECT
      - name: inSensitive
        type: TPM2B_SENSITIVE_CREATE
      - name: inPublic
        type: TPM2B_PUBLIC
      - name: outsideInfo
        type: TPM2B_DATA
      - name: creationPCR
        type: TPML_PCR_SELECTION
      item_type: struct
      name: Create_In
      pos:
        line_end: 77
        line_start: 70
        source_file: /src/libtpms/src/tpm2/Create_fp.h
    - fields:
      - name: outPrivate
        type: TPM2B_PRIVATE
      - name: outPublic
        type: TPM2B_PUBLIC
      - name: creationData
        type: TPM2B_CREATION_DATA
      - name: creationHash
        type: TPM2B_DIGEST
      - name: creationTicket
        type: TPMT_TK_CREATION
      item_type: struct
      name: Create_Out
      pos:
        line_end: 87
        line_start: 80
        source_file: /src/libtpms/src/tpm2/Create_fp.h
    typedefs: []
    union: []
- function_names:
  - TPM2_PP_Commands
  - TPM2_SetAlgorithmSet
  source_file: /src/libtpms/src/tpm2/ManagementCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/CertifyX509_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_CertifyX509_objectHandle
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/CertifyX509_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_CertifyX509_signHandle
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/CertifyX509_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_CertifyX509_reserved
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/CertifyX509_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_CertifyX509_inScheme
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/CertifyX509_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_CertifyX509_partialCertificate
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/CertifyX509_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    structs:
    - fields:
      - name: objectHandle
        type: TPMI_DH_OBJECT
      - name: signHandle
        type: TPMI_DH_OBJECT
      - name: reserved
        type: TPM2B_DATA
      - name: inScheme
        type: TPMT_SIG_SCHEME
      - name: partialCertificate
        type: TPM2B_MAX_BUFFER
      item_type: struct
      name: CertifyX509_In
      pos:
        line_end: 77
        line_start: 70
        source_file: /src/libtpms/src/tpm2/CertifyX509_fp.h
    - fields:
      - name: addedToCertificate
        type: TPM2B_MAX_BUFFER
      - name: tbsDigest
        type: TPM2B_DIGEST
      - name: signature
        type: TPMT_SIGNATURE
      item_type: struct
      name: CertifyX509_Out
      pos:
        line_end: 85
        line_start: 80
        source_file: /src/libtpms/src/tpm2/CertifyX509_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CC_YES
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: 'YES'
    - item_type: preproc_def
      name: CC_NO
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: CC_AC_GetCapability
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_NO
    - item_type: preproc_def
      name: CC_AC_Send
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_NO
    - item_type: preproc_def
      name: CC_FieldUpgradeData
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_NO
    - item_type: preproc_def
      name: CC_FieldUpgradeStart
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_NO
    - item_type: preproc_def
      name: CC_FirmwareRead
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_NO
    - item_type: preproc_def
      name: CC_CertifyX509
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_ACT_SetTimeout
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: "CC_NO\t\t"
    - item_type: preproc_def
      name: CC_ActivateCredential
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_Certify
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_CertifyCreation
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_ChangeEPS
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_ChangePPS
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_Clear
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_ClearControl
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_ClockRateAdjust
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_ClockSet
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_Commit
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: (CC_YES && ALG_ECC)
    - item_type: preproc_def
      name: CC_ContextLoad
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_ContextSave
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_Create
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_CreateLoaded
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_CreatePrimary
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_DictionaryAttackLockReset
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_DictionaryAttackParameters
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_Duplicate
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_ECC_Decrypt
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: "(CC_YES)\t\t"
    - item_type: preproc_def
      name: CC_ECC_Encrypt
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: "(CC_YES)\t\t"
    - item_type: preproc_def
      name: CC_ECC_Parameters
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: (CC_YES && ALG_ECC)
    - item_type: preproc_def
      name: CC_ECDH_KeyGen
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: (CC_YES && ALG_ECC)
    - item_type: preproc_def
      name: CC_ECDH_ZGen
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: (CC_YES && ALG_ECC)
    - item_type: preproc_def
      name: CC_EC_Ephemeral
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: (CC_YES && ALG_ECC)
    - item_type: preproc_def
      name: CC_EncryptDecrypt
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_EncryptDecrypt2
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_EventSequenceComplete
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_EvictControl
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_FlushContext
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_GetCapability
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_GetCommandAuditDigest
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_GetRandom
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_GetSessionAuditDigest
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_GetTestResult
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_GetTime
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_HMAC
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: (CC_YES && !ALG_CMAC)
    - item_type: preproc_def
      name: CC_HMAC_Start
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: (CC_YES && !ALG_CMAC)
    - item_type: preproc_def
      name: CC_Hash
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_HashSequenceStart
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_HierarchyChangeAuth
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_HierarchyControl
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_Import
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_IncrementalSelfTest
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_Load
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_LoadExternal
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_MAC
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: (CC_YES && ALG_CMAC)
    - item_type: preproc_def
      name: CC_MAC_Start
      pos:
        line_end: 150
        line_start: 149
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: (CC_YES && ALG_CMAC)
    - item_type: preproc_def
      name: CC_MakeCredential
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_NV_Certify
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_NV_ChangeAuth
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_NV_DefineSpace
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_NV_Extend
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_NV_GlobalWriteLock
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_NV_Increment
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_NV_Read
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_NV_ReadLock
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_NV_ReadPublic
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_NV_SetBits
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_NV_UndefineSpace
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_NV_UndefineSpaceSpecial
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_NV_Write
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_NV_WriteLock
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_ObjectChangeAuth
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PCR_Allocate
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PCR_Event
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PCR_Extend
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PCR_Read
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PCR_Reset
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PCR_SetAuthPolicy
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PCR_SetAuthValue
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PP_Commands
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyAuthValue
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyAuthorize
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyAuthorizeNV
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyCapability
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: "CC_YES\t"
    - item_type: preproc_def
      name: CC_PolicyCommandCode
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyCounterTimer
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyCpHash
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyDuplicationSelect
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyGetDigest
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyLocality
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyNV
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyNameHash
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyNvWritten
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyOR
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyPCR
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyPassword
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyParameters
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: "CC_YES \t"
    - item_type: preproc_def
      name: CC_PolicyPhysicalPresence
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyRestart
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicySecret
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicySigned
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyTemplate
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_PolicyTicket
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_Policy_AC_SendSelect
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: "CC_NO\t"
    - item_type: preproc_def
      name: CC_Quote
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_RSA_Decrypt
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: (CC_YES && ALG_RSA)
    - item_type: preproc_def
      name: CC_RSA_Encrypt
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: (CC_YES && ALG_RSA)
    - item_type: preproc_def
      name: CC_ReadClock
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_ReadPublic
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_Rewrap
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_SelfTest
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_SequenceComplete
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_SequenceUpdate
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_SetAlgorithmSet
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_SetCommandCodeAuditStatus
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_SetPrimaryPolicy
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_Shutdown
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_Sign
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_StartAuthSession
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_Startup
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_StirRandom
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_TestParms
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_Unseal
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_Vendor_TCG_Test
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: "CC_NO\t"
    - item_type: preproc_def
      name: CC_VerifySignature
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_ZGen_2Phase
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: (CC_YES && ALG_ECC)
    - item_type: preproc_def
      name: CC_NV_DefineSpace2
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: "CC_NO\t"
    - item_type: preproc_def
      name: CC_NV_ReadPublic2
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: "CC_NO\t"
    - item_type: preproc_def
      name: CC_SetCapability
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: "CC_NO\t"
    - item_type: preproc_def
      name: CC_NTC2_PreConfig
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_NTC2_LockPreConfig
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    - item_type: preproc_def
      name: CC_NTC2_GetConfig
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/libtpms/src/tpm2/TpmProfile_CommandList.h
      type_or_value: CC_YES
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyNameHash_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyNameHash_policySession
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/PolicyNameHash_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyNameHash_nameHash
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/PolicyNameHash_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      - name: nameHash
        type: TPM2B_DIGEST
      item_type: struct
      name: PolicyNameHash_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyNameHash_fp.h
    typedefs: []
    union: []
- function_names:
  - TPM2_DictionaryAttackLockReset
  - TPM2_DictionaryAttackParameters
  source_file: /src/libtpms/src/tpm2/DictionaryCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/StateMarshal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PCR_Allocate_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PCR_Allocate_authHandle
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/PCR_Allocate_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PCR_Allocate_pcrAllocation
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/PCR_Allocate_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_PLATFORM
      - name: pcrAllocation
        type: TPML_PCR_SELECTION
      item_type: struct
      name: PCR_Allocate_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PCR_Allocate_fp.h
    - fields:
      - name: allocationSuccess
        type: TPMI_YES_NO
      - name: maxPCR
        type: UINT32
      - name: sizeNeeded
        type: UINT32
      - name: sizeAvailable
        type: UINT32
      item_type: struct
      name: PCR_Allocate_Out
      pos:
        line_end: 83
        line_start: 77
        source_file: /src/libtpms/src/tpm2/PCR_Allocate_fp.h
    typedefs: []
    union: []
- function_names:
  - TpmEcc_AdjustEcdsaDigest
  - TpmEcc_SignEcdsa
  - TpmEcc_SignEcdsa
  - TpmEcc_ValidateSignatureEcdsa
  - TpmEcc_ValidateSignatureEcdsa
  source_file: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ClearControl_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ClearControl_auth
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/ClearControl_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_ClearControl_disable
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/ClearControl_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: auth
        type: TPMI_RH_CLEAR
      - name: disable
        type: TPMI_YES_NO
      item_type: struct
      name: ClearControl_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/ClearControl_fp.h
    typedefs: []
    union: []
- function_names:
  - ClockGetTime
  - ClockAdjustPostResume
  - _plat__TimerReset
  - _plat__TimerRestart
  - _plat__RealTime
  - _plat__TimerRead
  - _plat__TimerWasReset
  - _plat__TimerWasStopped
  - _plat__ClockRateAdjust
  source_file: /src/libtpms/src/tpm2/Clock.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CLOCK_NOMINAL
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/Clock.c
      type_or_value: '30000'
    - item_type: preproc_def
      name: CLOCK_ADJUST_COARSE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/Clock.c
      type_or_value: '300'
    - item_type: preproc_def
      name: CLOCK_ADJUST_MEDIUM
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/Clock.c
      type_or_value: '30'
    - item_type: preproc_def
      name: CLOCK_ADJUST_FINE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/Clock.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CLOCK_ADJUST_LIMIT
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/Clock.c
      type_or_value: '5000'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/VerifySignature_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_VerifySignature_keyHandle
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/VerifySignature_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_VerifySignature_digest
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/VerifySignature_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_VerifySignature_signature
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/VerifySignature_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: keyHandle
        type: TPMI_DH_OBJECT
      - name: digest
        type: TPM2B_DIGEST
      - name: signature
        type: TPMT_SIGNATURE
      item_type: struct
      name: VerifySignature_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/VerifySignature_fp.h
    - fields:
      - name: validation
        type: TPMT_TK_VERIFIED
      item_type: struct
      name: VerifySignature_Out
      pos:
        line_end: 81
        line_start: 78
        source_file: /src/libtpms/src/tpm2/VerifySignature_fp.h
    typedefs: []
    union: []
- function_names:
  - LocalityGetAttributes
  source_file: /src/libtpms/src/tpm2/Locality.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_GlobalWriteLock_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_NV_GlobalWriteLock_authHandle
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/NV_GlobalWriteLock_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_PROVISION
      item_type: struct
      name: NV_GlobalWriteLock_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/NV_GlobalWriteLock_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PropertyCap_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Capabilities.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_CAP_DATA
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libtpms/src/tpm2/Capabilities.h
      type_or_value: (MAX_CAP_BUFFER - sizeof(TPM_CAP) - sizeof(UINT32))
    - item_type: preproc_def
      name: MAX_CAP_ALGS
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libtpms/src/tpm2/Capabilities.h
      type_or_value: (MAX_CAP_DATA / sizeof(TPMS_ALG_PROPERTY))
    - item_type: preproc_def
      name: MAX_CAP_HANDLES
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libtpms/src/tpm2/Capabilities.h
      type_or_value: (MAX_CAP_DATA / sizeof(TPM_HANDLE))
    - item_type: preproc_def
      name: MAX_CAP_CC
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libtpms/src/tpm2/Capabilities.h
      type_or_value: (MAX_CAP_DATA / sizeof(TPM_CC))
    - item_type: preproc_def
      name: MAX_TPM_PROPERTIES
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libtpms/src/tpm2/Capabilities.h
      type_or_value: (MAX_CAP_DATA / sizeof(TPMS_TAGGED_PROPERTY))
    - item_type: preproc_def
      name: MAX_PCR_PROPERTIES
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libtpms/src/tpm2/Capabilities.h
      type_or_value: (MAX_CAP_DATA / sizeof(TPMS_TAGGED_PCR_SELECT))
    - item_type: preproc_def
      name: MAX_ECC_CURVES
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libtpms/src/tpm2/Capabilities.h
      type_or_value: (MAX_CAP_DATA / sizeof(TPM_ECC_CURVE))
    - item_type: preproc_def
      name: MAX_TAGGED_POLICIES
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/libtpms/src/tpm2/Capabilities.h
      type_or_value: (MAX_CAP_DATA / sizeof(TPMS_TAGGED_POLICY))
    - item_type: preproc_def
      name: MAX_ACT_DATA
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libtpms/src/tpm2/Capabilities.h
      type_or_value: (MAX_CAP_DATA / sizeof(TPMS_ACT_DATA))
    - item_type: preproc_def
      name: MAX_AC_CAPABILITIES
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libtpms/src/tpm2/Capabilities.h
      type_or_value: (MAX_CAP_DATA / sizeof(TPMS_AC_OUTPUT))
    structs: []
    typedefs: []
    union: []
- function_names:
  - block_skip_write_push
  - block_skip_write_pop
  - block_skip_read
  - BLOCK_SKIP_WRITE_PUSH
  - BLOCK_SKIP_WRITE_POP
  - BLOCK_SKIP_READ
  - _ffsll
  - BOOL_Marshal
  - BOOL_Unmarshal
  - SEED_COMPAT_LEVEL_Marshal
  - SEED_COMPAT_LEVEL_Unmarshal
  - TPM2B_Cmp
  - TPM2B_PROOF_Marshal
  - TPM2B_PROOF_Unmarshal
  - String_Marshal
  - String_Unmarshal
  - UINT32_Unmarshal_Check
  - NV_HEADER_INIT
  - NV_HEADER_Marshal
  - NV_HEADER_UnmarshalVerbose
  - NV_HEADER_Unmarshal
  - NV_INDEX_Marshal
  - NV_INDEX_Unmarshal
  - DRBG_STATE_Marshal
  - DRBG_STATE_Unmarshal
  - PCR_POLICY_Marshal
  - PCR_POLICY_Unmarshal
  - ORDERLY_DATA_Marshal
  - ORDERLY_DATA_Unmarshal
  - PCR_SAVE_Marshal
  - pcrbanks_algs_active
  - PCR_SAVE_Unmarshal
  - PCR_Marshal
  - PCR_Unmarshal
  - PCR_AUTHVALUE_Marshal
  - PCR_AUTHVALUE_Unmarshal
  - STATE_CLEAR_DATA_Marshal
  - STATE_CLEAR_DATA_Unmarshal
  - STATE_RESET_DATA_Unmarshal
  - STATE_RESET_DATA_Marshal
  - ci_prime_t_Marshal
  - ci_prime_t_Unmarshal
  - privateExponent_t_Marshal
  - privateExponent_t_Unmarshal
  - HASH_STATE_TYPE_Marshal
  - HASH_STATE_TYPE_Unmarshal
  - SHA_LONG_Marshal
  - SHA_LONG_Unmarshal
  - SHA_LONG64_Marshal
  - SHA_LONG64_Unmarshal
  - tpmHashStateSHA1_Marshal
  - tpmHashStateSHA1_Unmarshal
  - tpmHashStateSHA256_Marshal
  - tpmHashStateSHA256_Unmarshal
  - tpmHashStateSHA512_Marshal
  - tpmHashStateSHA512_Unmarshal
  - ANY_HASH_STATE_Marshal
  - ANY_HASH_STATE_Unmarshal
  - HASH_STATE_Marshal
  - HASH_STATE_Unmarshal
  - TPM2B_HASH_BLOCK_Marshal
  - TPM2B_HASH_BLOCK_Unmarshal
  - HMAC_STATE_Marshal
  - HMAC_STATE_Unmarshal
  - HASH_OBJECT_Marshal
  - HASH_OBJECT_Unmarshal
  - NV_TPMT_SENSITIVE_Marshal
  - NV_TPMT_SENSITIVE_Unmarshal
  - OBJECT_Marshal
  - OBJECT_Unmarshal
  - ANY_OBJECT_Marshal
  - ANY_OBJECT_Unmarshal
  - TPMT_SYM_DEF_Marshal
  - SESSION_Marshal
  - SESSION_Unmarshal
  - SESSION_SLOT_Marshal
  - SESSION_SLOT_Unmarshal
  - VolatileState_Marshal
  - VolatileState_TailV4_Unmarshal
  - VolatileState_TailV3_Unmarshal
  - VolatileState_Unmarshal
  - UINT32_Unmarshal_CheckConstant
  - PACompileConstants_Marshal
  - PACompileConstants_Unmarshal
  - PERSISTENT_DATA_PPList_Marshal
  - PERSISTENT_DATA_PPList_Unmarshal
  - PERSISTENT_DATA_AuditCommands_Marshal
  - PERSISTENT_DATA_AuditCommands_Unmarshal
  - PERSISTENT_DATA_Marshal
  - PERSISTENT_DATA_Unmarshal
  - INDEX_ORDERLY_RAM_Marshal
  - INDEX_ORDERLY_RAM_Unmarshal
  - USER_NVRAM_Display
  - USER_NVRAM_Marshal
  - USER_NVRAM_Unmarshal
  - PERSISTENT_ALL_Marshal
  - PERSISTENT_ALL_Unmarshal
  - NVShadowRestore
  source_file: /src/libtpms/src/tpm2/NVMarshal.c
  types:
    enum:
    - enumerators:
      - name: EQ
      - name: GE
      - name: DONTCARE
      - name: LE
      item_type: enum
      name: CompareOp
      pos:
        line_end: 3834
        line_start: 3834
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    preproc_defs:
    - item_type: preproc_def
      name: BLOCK_SKIP_INIT
      pos:
        line_end: 194
        line_start: 189
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: "block_skip_t block_skip = {\t\t\t\\\n        .idx = 0,\t\t\t\t\\\n
        \       .sz = ARRAY_SIZE(block_skip.pos),\t\\\n    }"
    - item_type: preproc_def
      name: BLOCK_SKIP_WRITE_CHECK
      pos:
        line_end: 203
        line_start: 201
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: pAssert(block_skip.idx == 0)
    - item_type: preproc_def
      name: NV_INDEX_MAGIC
      pos:
        line_end: 446
        line_start: 445
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x2547265a'
    - item_type: preproc_def
      name: NV_INDEX_VERSION
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: DRBG_STATE_MAGIC
      pos:
        line_end: 500
        line_start: 499
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x6fe83ea1'
    - item_type: preproc_def
      name: DRBG_STATE_VERSION
      pos:
        line_end: 501
        line_start: 500
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PCR_POLICY_MAGIC
      pos:
        line_end: 599
        line_start: 598
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x176be626'
    - item_type: preproc_def
      name: PCR_POLICY_VERSION
      pos:
        line_end: 600
        line_start: 599
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: ORDERLY_DATA_MAGIC
      pos:
        line_end: 681
        line_start: 680
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x56657887'
    - item_type: preproc_def
      name: ORDERLY_DATA_VERSION
      pos:
        line_end: 682
        line_start: 681
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PCR_SAVE_MAGIC
      pos:
        line_end: 779
        line_start: 778
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x7372eabc'
    - item_type: preproc_def
      name: PCR_SAVE_VERSION
      pos:
        line_end: 780
        line_start: 779
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PCR_MAGIC
      pos:
        line_end: 1003
        line_start: 1002
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0xe95f0387'
    - item_type: preproc_def
      name: PCR_VERSION
      pos:
        line_end: 1004
        line_start: 1003
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PCR_AUTHVALUE_MAGIC
      pos:
        line_end: 1183
        line_start: 1182
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x6be82eaf'
    - item_type: preproc_def
      name: PCR_AUTHVALUE_VERSION
      pos:
        line_end: 1184
        line_start: 1183
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: STATE_CLEAR_DATA_MAGIC
      pos:
        line_end: 1253
        line_start: 1252
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x98897667'
    - item_type: preproc_def
      name: STATE_CLEAR_DATA_VERSION
      pos:
        line_end: 1254
        line_start: 1253
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: STATE_RESET_DATA_MAGIC
      pos:
        line_end: 1332
        line_start: 1331
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x01102332'
    - item_type: preproc_def
      name: STATE_RESET_DATA_VERSION
      pos:
        line_end: 1333
        line_start: 1332
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '4'
    - item_type: preproc_def
      name: BN_PRIME_T_MAGIC
      pos:
        line_end: 1541
        line_start: 1540
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x2fe736ab'
    - item_type: preproc_def
      name: BN_PRIME_T_VERSION
      pos:
        line_end: 1542
        line_start: 1541
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PRIVATE_EXPONENT_T_MAGIC
      pos:
        line_end: 1645
        line_start: 1644
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x854eab2'
    - item_type: preproc_def
      name: PRIVATE_EXPONENT_T_VERSION
      pos:
        line_end: 1646
        line_start: 1645
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HASH_STATE_SHA1_MAGIC
      pos:
        line_end: 1761
        line_start: 1760
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x19d46f50'
    - item_type: preproc_def
      name: HASH_STATE_SHA1_VERSION
      pos:
        line_end: 1762
        line_start: 1761
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HASH_STATE_SHA256_MAGIC
      pos:
        line_end: 1868
        line_start: 1867
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x6ea059d0'
    - item_type: preproc_def
      name: HASH_STATE_SHA256_VERSION
      pos:
        line_end: 1869
        line_start: 1868
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HASH_STATE_SHA384_MAGIC
      pos:
        line_end: 1981
        line_start: 1980
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x14814b08'
    - item_type: preproc_def
      name: HASH_STATE_SHA384_VERSION
      pos:
        line_end: 1982
        line_start: 1981
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HASH_STATE_SHA512_MAGIC
      pos:
        line_end: 1984
        line_start: 1983
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x269e8ae0'
    - item_type: preproc_def
      name: HASH_STATE_SHA512_VERSION
      pos:
        line_end: 1985
        line_start: 1984
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: ANY_HASH_STATE_MAGIC
      pos:
        line_end: 2106
        line_start: 2105
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x349d494b'
    - item_type: preproc_def
      name: ANY_HASH_STATE_VERSION
      pos:
        line_end: 2107
        line_start: 2106
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HASH_STATE_MAGIC
      pos:
        line_end: 2208
        line_start: 2207
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x562878a2'
    - item_type: preproc_def
      name: HASH_STATE_VERSION
      pos:
        line_end: 2209
        line_start: 2208
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HASH_OBJECT_MAGIC
      pos:
        line_end: 2323
        line_start: 2322
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0xb874fe38'
    - item_type: preproc_def
      name: HASH_OBJECT_VERSION
      pos:
        line_end: 2324
        line_start: 2323
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '3'
    - item_type: preproc_def
      name: OBJECT_MAGIC
      pos:
        line_end: 2487
        line_start: 2486
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x75be73af'
    - item_type: preproc_def
      name: OBJECT_VERSION
      pos:
        line_end: 2488
        line_start: 2487
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '4'
    - item_type: preproc_def
      name: ANY_OBJECT_MAGIC
      pos:
        line_end: 2636
        line_start: 2635
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0xfe9a3974'
    - item_type: preproc_def
      name: ANY_OBJECT_VERSION
      pos:
        line_end: 2637
        line_start: 2636
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SESSION_MAGIC
      pos:
        line_end: 2717
        line_start: 2716
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x44be9f45'
    - item_type: preproc_def
      name: SESSION_VERSION
      pos:
        line_end: 2718
        line_start: 2717
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SESSION_SLOT_MAGIC
      pos:
        line_end: 2852
        line_start: 2851
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x3664aebc'
    - item_type: preproc_def
      name: SESSION_SLOT_VERSION
      pos:
        line_end: 2853
        line_start: 2852
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: VOLATILE_STATE_VERSION
      pos:
        line_end: 2913
        line_start: 2912
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '4'
    - item_type: preproc_def
      name: VOLATILE_STATE_MAGIC
      pos:
        line_end: 2914
        line_start: 2913
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x45637889'
    - item_type: preproc_def
      name: PA_COMPILE_CONSTANTS_MAGIC
      pos:
        line_end: 4008
        line_start: 4007
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0xc9ea6431'
    - item_type: preproc_def
      name: PA_COMPILE_CONSTANTS_VERSION
      pos:
        line_end: 4009
        line_start: 4008
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '3'
    - item_type: preproc_def
      name: PERSISTENT_DATA_MAGIC
      pos:
        line_end: 4233
        line_start: 4232
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x12213443'
    - item_type: preproc_def
      name: PERSISTENT_DATA_VERSION
      pos:
        line_end: 4234
        line_start: 4233
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '5'
    - item_type: preproc_def
      name: INDEX_ORDERLY_RAM_VERSION
      pos:
        line_end: 4556
        line_start: 4555
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: INDEX_ORDERLY_RAM_MAGIC
      pos:
        line_end: 4557
        line_start: 4556
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x5346feab'
    - item_type: preproc_def
      name: USER_NVRAM_VERSION
      pos:
        line_end: 4794
        line_start: 4793
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '2'
    - item_type: preproc_def
      name: USER_NVRAM_MAGIC
      pos:
        line_end: 4795
        line_start: 4794
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0x094f22c3'
    - item_type: preproc_def
      name: PERSISTENT_ALL_VERSION
      pos:
        line_end: 5065
        line_start: 5064
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PERSISTENT_ALL_MAGIC
      pos:
        line_end: 5066
        line_start: 5065
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type_or_value: '0xab364723'
    structs:
    - fields:
      - name: pcrAllocated
        type: TPML_PCR_SELECTION
      - name: pcrAllocatedIsNew
        type: BOOL
      item_type: struct
      name: shadow
      pos:
        line_end: 76
        line_start: 73
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    - fields:
      - name: version
        type: UINT16
      - name: magic
        type: UINT32
      - name: min_version
        type: UINT16
      item_type: struct
      name: NV_HEADER
      pos:
        line_end: 87
        line_start: 82
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    - fields:
      - name: idx
        type: size_t
      - name: sz
        type: size_t
      - name: pos[5]
        type: "struct position {\n        BYTE *buffer;\n        INT32 size;\n    }"
      item_type: struct
      name: block_skip_t
      pos:
        line_end: 106
        line_start: 99
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    - fields:
      - name: '*buffer'
        type: BYTE
      - name: size
        type: INT32
      item_type: struct
      name: position
      pos:
        line_end: 105
        line_start: 102
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    - fields:
      - name: constant
        type: UINT32
      - name: '*name'
        type: char
      - name: cmp
        type: enum CompareOp { EQ, LE, GE, DONTCARE }
      item_type: struct
      name: _entry
      pos:
        line_end: 3835
        line_start: 3831
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
    typedefs:
    - item_type: typedef
      name: "assertion_failed_nvram[\n    (NV_USER_DYNAMIC_END < NV_USER_DYNAMIC)
        ? -1 : 0]"
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/NVMarshal.c
      type: char
    union: []
- function_names:
  - ComputeContextProtectionKey
  - ComputeContextIntegrity
  - SequenceDataExport
  - SequenceDataImport
  source_file: /src/libtpms/src/tpm2/Context_spt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Context_spt_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/SymmetricTestData.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/CommandAttributeData.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PAD_LIST
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libtpms/src/tpm2/CommandAttributeData.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PAD_LIST
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libtpms/src/tpm2/CommandAttributeData.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Shutdown_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_Shutdown_shutdownType
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/Shutdown_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: shutdownType
        type: TPM_SU
      item_type: struct
      name: Shutdown_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/Shutdown_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyDuplicationSelect_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyDuplicationSelect_policySession
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/PolicyDuplicationSelect_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyDuplicationSelect_objectName
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/PolicyDuplicationSelect_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyDuplicationSelect_newParentName
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/PolicyDuplicationSelect_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_PolicyDuplicationSelect_includeObject
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/PolicyDuplicationSelect_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      - name: objectName
        type: TPM2B_NAME
      - name: newParentName
        type: TPM2B_NAME
      - name: includeObject
        type: TPMI_YES_NO
      item_type: struct
      name: PolicyDuplicationSelect_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyDuplicationSelect_fp.h
    typedefs: []
    union: []
- function_names:
  - PhysicalPresencePreInstall_Init
  - PhysicalPresenceCommandSet
  - PhysicalPresenceCommandClear
  - PhysicalPresenceIsRequired
  - PhysicalPresenceCapGetCCList
  - PhysicalPresenceCapGetOneCC
  source_file: /src/libtpms/src/tpm2/PP.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PCR_Read_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PCR_Read_pcrSelectionIn
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/PCR_Read_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: pcrSelectionIn
        type: TPML_PCR_SELECTION
      item_type: struct
      name: PCR_Read_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PCR_Read_fp.h
    - fields:
      - name: pcrUpdateCounter
        type: UINT32
      - name: pcrSelectionOut
        type: TPML_PCR_SELECTION
      - name: pcrValues
        type: TPML_DIGEST
      item_type: struct
      name: PCR_Read_Out
      pos:
        line_end: 81
        line_start: 76
        source_file: /src/libtpms/src/tpm2/PCR_Read_fp.h
    typedefs: []
    union: []
- function_names:
  - IsDAExempted
  - IncrementLockout
  - IsSessionBindEntity
  - IsPolicySessionRequired
  - IsAuthValueAvailable
  - FOR_EACH_ACT
  - IsAuthPolicyAvailable
  - ACT_GET_POLICY
  - ClearCpRpHashes
  - CLEAR_CP_HASH
  - CLEAR_RP_HASH
  - GetCpHashPointer
  - GET_CP_HASH_POINTER
  - GetRpHashPointer
  - GET_RP_HASH_POINTER
  - ComputeCpHash
  - GetCpHash
  - CompareTemplateHash
  - CompareNameHash
  - CompareParametersHash
  - CheckPWAuthSession
  - ComputeCommandHMAC
  - CheckSessionHMAC
  - CheckPolicyAuthSession
  - RetrieveSessionData
  - CheckLockedOut
  - CheckAuthSession
  - CheckCommandAudit
  - ParseSessionBuffer
  - CheckAuthNoSession
  - ComputeRpHash
  - InitAuditSession
  - UpdateAuditDigest
  - Audit
  - CommandAudit
  - UpdateAuditSessionStatus
  - ComputeResponseHMAC
  - UpdateInternalSession
  - BuildSingleResponseAuth
  - UpdateAllNonceTPM
  - BuildResponseSession
  - SessionRemoveAssociationToHandle
  source_file: /src/libtpms/src/tpm2/SessionProcess.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - UINT8_Marshal
  - UINT16_Marshal
  - UINT32_Marshal
  - UINT64_Marshal
  - Array_Marshal
  - TPM2B_Marshal
  - TPM_KEY_BITS_Marshal
  - TPM_CONSTANTS32_Marshal
  - TPM_ALG_ID_Marshal
  - TPM_ECC_CURVE_Marshal
  - TPM_CC_Marshal
  - TPM_RC_Marshal
  - TPM_ST_Marshal
  - TPM_CAP_Marshal
  - TPM_PT_Marshal
  - TPM_PT_PCR_Marshal
  - TPM_HANDLE_Marshal
  - TPMA_ALGORITHM_Marshal
  - TPMA_OBJECT_Marshal
  - TPMA_SESSION_Marshal
  - TPMA_LOCALITY_Marshal
  - TPMA_CC_Marshal
  - TPMI_YES_NO_Marshal
  - TPMA_ACT_Marshal
  - TPMI_DH_SAVED_Marshal
  - TPMI_RH_HIERARCHY_Marshal
  - TPMI_RH_NV_INDEX_Marshal
  - TPMI_RH_NV_EXP_INDEX_Marshal
  - TPMI_ALG_HASH_Marshal
  - TPMI_ALG_SYM_OBJECT_Marshal
  - TPMI_ALG_SYM_MODE_Marshal
  - TPMI_ALG_KDF_Marshal
  - TPMI_ALG_SIG_SCHEME_Marshal
  - TPMU_HA_Marshal
  - TPMT_HA_Marshal
  - TPM2B_DIGEST_Marshal
  - TPM2B_DATA_Marshal
  - TPM2B_NONCE_Marshal
  - TPM2B_AUTH_Marshal
  - TPM2B_MAX_BUFFER_Marshal
  - TPM2B_MAX_NV_BUFFER_Marshal
  - TPM2B_TIMEOUT_Marshal
  - TPM2B_IV_Marshal
  - TPM2B_NAME_Marshal
  - TPMS_PCR_SELECTION_Marshal
  - TPMT_TK_CREATION_Marshal
  - TPMT_TK_VERIFIED_Marshal
  - TPMT_TK_AUTH_Marshal
  - TPMT_TK_HASHCHECK_Marshal
  - TPMS_ALG_PROPERTY_Marshal
  - TPMS_TAGGED_PCR_SELECT_Marshal
  - TPMS_TAGGED_POLICY_Marshal
  - TPMS_ACT_DATA_Marshal
  - TPMS_TAGGED_PROPERTY_Marshal
  - TPML_CC_Marshal
  - TPML_CCA_Marshal
  - TPML_ALG_Marshal
  - TPML_HANDLE_Marshal
  - TPML_DIGEST_Marshal
  - TPML_DIGEST_VALUES_Marshal
  - TPML_PCR_SELECTION_Marshal
  - TPML_ALG_PROPERTY_Marshal
  - TPML_TAGGED_TPM_PROPERTY_Marshal
  - TPML_TAGGED_PCR_PROPERTY_Marshal
  - TPML_ECC_CURVE_Marshal
  - TPML_TAGGED_POLICY_Marshal
  - TPML_ACT_DATA_Marshal
  - TPMU_CAPABILITIES_Marshal
  - TPMS_CAPABILITY_DATA_Marshal
  - TPMS_CLOCK_INFO_Marshal
  - TPMS_TIME_INFO_Marshal
  - TPMS_TIME_ATTEST_INFO_Marshal
  - TPMS_CERTIFY_INFO_Marshal
  - TPMS_QUOTE_INFO_Marshal
  - TPMS_COMMAND_AUDIT_INFO_Marshal
  - TPMS_SESSION_AUDIT_INFO_Marshal
  - TPMS_CREATION_INFO_Marshal
  - TPMS_NV_CERTIFY_INFO_Marshal
  - TPMS_NV_DIGEST_CERTIFY_INFO_Marshal
  - TPMI_ST_ATTEST_Marshal
  - TPMU_ATTEST_Marshal
  - TPMS_ATTEST_Marshal
  - TPM2B_ATTEST_Marshal
  - TPMI_AES_KEY_BITS_Marshal
  - TPMI_TDES_KEY_BITS_Marshal
  - TPMI_CAMELLIA_KEY_BITS_Marshal
  - TPMU_SYM_KEY_BITS_Marshal
  - TPMU_SYM_MODE_Marshal
  - TPMT_SYM_DEF_OBJECT_Marshal
  - TPM2B_SYM_KEY_Marshal
  - TPMS_SYMCIPHER_PARMS_Marshal
  - TPM2B_SENSITIVE_DATA_Marshal
  - TPMS_SCHEME_HASH_Marshal
  - TPMS_SCHEME_ECDAA_Marshal
  - TPMI_ALG_KEYEDHASH_SCHEME_Marshal
  - TPMS_SCHEME_HMAC_Marshal
  - TPMS_SCHEME_XOR_Marshal
  - TPMT_KEYEDHASH_SCHEME_Marshal
  - TPMS_SIG_SCHEME_RSASSA_Marshal
  - TPMS_SIG_SCHEME_RSAPSS_Marshal
  - TPMS_SIG_SCHEME_ECDSA_Marshal
  - TPMS_SIG_SCHEME_SM2_Marshal
  - TPMS_SIG_SCHEME_ECSCHNORR_Marshal
  - TPMS_SIG_SCHEME_ECDAA_Marshal
  - TPMS_ENC_SCHEME_OAEP_Marshal
  - TPMS_ENC_SCHEME_RSAES_Marshal
  - TPMU_SCHEME_KEYEDHASH_Marshal
  - TPMS_KEY_SCHEME_ECDH_Marshal
  - TPMS_KEY_SCHEME_ECMQV_Marshal
  - TPMS_KDF_SCHEME_MGF1_Marshal
  - TPMS_KDF_SCHEME_KDF1_SP800_56A_Marshal
  - TPMS_KDF_SCHEME_KDF2_Marshal
  - TPMS_KDF_SCHEME_KDF1_SP800_108_Marshal
  - TPMU_KDF_SCHEME_Marshal
  - TPMT_KDF_SCHEME_Marshal
  - TPMU_ASYM_SCHEME_Marshal
  - TPMI_ALG_RSA_SCHEME_Marshal
  - TPMT_RSA_SCHEME_Marshal
  - TPM2B_PUBLIC_KEY_RSA_Marshal
  - TPMI_RSA_KEY_BITS_Marshal
  - TPM2B_PRIVATE_KEY_RSA_Marshal
  - TPM2B_ECC_PARAMETER_Marshal
  - TPMS_ECC_POINT_Marshal
  - TPM2B_ECC_POINT_Marshal
  - TPMI_ALG_ECC_SCHEME_Marshal
  - TPMI_ECC_CURVE_Marshal
  - TPMT_ECC_SCHEME_Marshal
  - TPMS_ALGORITHM_DETAIL_ECC_Marshal
  - TPMS_SIGNATURE_RSA_Marshal
  - TPMS_SIGNATURE_RSASSA_Marshal
  - TPMS_SIGNATURE_RSAPSS_Marshal
  - TPMS_SIGNATURE_ECC_Marshal
  - TPMS_SIGNATURE_ECDSA_Marshal
  - TPMS_SIGNATURE_ECDAA_Marshal
  - TPMS_SIGNATURE_SM2_Marshal
  - TPMS_SIGNATURE_ECSCHNORR_Marshal
  - TPMU_SIGNATURE_Marshal
  - TPMT_SIGNATURE_Marshal
  - TPM2B_ENCRYPTED_SECRET_Marshal
  - TPMI_ALG_PUBLIC_Marshal
  - TPMU_PUBLIC_ID_Marshal
  - TPMS_KEYEDHASH_PARMS_Marshal
  - TPMS_RSA_PARMS_Marshal
  - TPMS_ECC_PARMS_Marshal
  - TPMU_PUBLIC_PARMS_Marshal
  - TPMT_PUBLIC_Marshal
  - TPM2B_PUBLIC_Marshal
  - TPMU_SENSITIVE_COMPOSITE_Marshal
  - TPMT_SENSITIVE_Marshal
  - TPM2B_PRIVATE_Marshal
  - TPM2B_ID_OBJECT_Marshal
  - TPMA_NV_Marshal
  - TPMA_NV_EXP_Marshal
  - TPMS_NV_PUBLIC_Marshal
  - TPM2B_NV_PUBLIC_Marshal
  - TPMS_NV_PUBLIC_EXP_ATTR_Marshal
  - TPMU_NV_PUBLIC_2_Marshal
  - TPMT_NV_PUBLIC_2_Marshal
  - TPM2B_NV_PUBLIC_2_Marshal
  - TPM2B_CONTEXT_DATA_Marshal
  - TPMS_CONTEXT_Marshal
  - TPMS_CREATION_DATA_Marshal
  - TPM2B_CREATION_DATA_Marshal
  - TPM_AT_Marshal
  - TPMS_AC_OUTPUT_Marshal
  - TPML_AC_CAPABILITIES_Marshal
  source_file: /src/libtpms/src/tpm2/Marshal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyCommandCode_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyCommandCode_policySession
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/PolicyCommandCode_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyCommandCode_code
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/PolicyCommandCode_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      - name: code
        type: TPM_CC
      item_type: struct
      name: PolicyCommandCode_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyCommandCode_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/tpm_to_platform_interface.h
  types:
    enum:
    - enumerators:
      - name: PLAT_TPM_CLOCK_ADJUST_COARSE_SLOWER
        value: '-3'
      - name: PLAT_TPM_CLOCK_ADJUST_FINE_SLOWER
        value: '-1'
      - name: PLAT_TPM_CLOCK_ADJUST_FINE_FASTER
        value: '1'
      - name: PLAT_TPM_CLOCK_ADJUST_MEDIUM_SLOWER
        value: '-2'
      - name: PLAT_TPM_CLOCK_ADJUST_MEDIUM_FASTER
        value: '2'
      - name: PLAT_TPM_CLOCK_ADJUST_COARSE_FASTER
        value: '3'
      item_type: enum
      name: _plat__ClockAdjustStep
      pos:
        line_end: 136
        line_start: 128
        source_file: /src/libtpms/src/tpm2/tpm_to_platform_interface.h
    preproc_defs:
    - item_type: preproc_def
      name: NV_READY
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/libtpms/src/tpm2/tpm_to_platform_interface.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NV_WRITEFAILURE
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/libtpms/src/tpm2/tpm_to_platform_interface.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NV_RATE_LIMIT
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/libtpms/src/tpm2/tpm_to_platform_interface.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NV_HAS_CHANGED
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/libtpms/src/tpm2/tpm_to_platform_interface.h
      type_or_value: (1)
    - item_type: preproc_def
      name: NV_IS_SAME
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/libtpms/src/tpm2/tpm_to_platform_interface.h
      type_or_value: (0)
    - item_type: preproc_def
      name: NV_INVALID_LOCATION
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/libtpms/src/tpm2/tpm_to_platform_interface.h
      type_or_value: (-1)
    structs: []
    typedefs: []
    union: []
- function_names:
  - BnFromBytes
  - BnFrom2B
  - BnToBytes
  - BnTo2B
  - BnPointFromBytes
  - BnPointToBytes
  source_file: /src/libtpms/src/tpm2/BnConvert.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CryptHmacSign
  - CryptHMACVerifySignature
  - CryptGenerateKeyedHash
  - CryptIsSchemeAnonymous
  - ParmDecryptSym
  - ParmEncryptSym
  - CryptGenerateKeySymmetric
  - CryptXORObfuscation
  - CryptInit
  - CryptStartup
  - CryptIsAsymAlgorithm
  - CryptSecretEncrypt
  - CryptSecretDecrypt
  - CryptParameterEncryption
  - CryptParameterDecryption
  - CryptComputeSymmetricUnique
  - CryptCreateObject
  - CryptGetSignHashAlg
  - CryptIsSplitSign
  - CryptIsAsymSignScheme
  - CryptIsValidSignScheme
  - CryptIsAsymDecryptScheme
  - CryptSelectSignScheme
  - CryptSign
  - CryptValidateSignature
  - CryptGetTestResult
  - CryptValidateKeys
  - CryptSelectMac
  - CryptMacIsValidForKey
  - CryptSmacIsValidAlg
  - CryptSymModeIsValid
  source_file: /src/libtpms/src/tpm2/CryptUtil.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/VendorInfo.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_SPEC_FAMILY
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libtpms/src/tpm2/VendorInfo.h
      type_or_value: (0x322E3000)
    - item_type: preproc_def
      name: TPM_SPEC_LEVEL_NUM
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libtpms/src/tpm2/VendorInfo.h
      type_or_value: "0\t\t// libtpms added: TPM_SPEC_LEVEL without leading zeros
        and '()'"
    - item_type: preproc_def
      name: TPM_SPEC_LEVEL
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libtpms/src/tpm2/VendorInfo.h
      type_or_value: (00)
    - item_type: preproc_def
      name: TPM_SPEC_VERSION
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/libtpms/src/tpm2/VendorInfo.h
      type_or_value: "183\t// libtpms changed: removed '()'"
    - item_type: preproc_def
      name: TPM_SPEC_YEAR
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libtpms/src/tpm2/VendorInfo.h
      type_or_value: (2024)
    - item_type: preproc_def
      name: TPM_SPEC_DAY_OF_YEAR
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/libtpms/src/tpm2/VendorInfo.h
      type_or_value: (25)
    - item_type: preproc_def
      name: MAX_VENDOR_PROPERTY
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/libtpms/src/tpm2/VendorInfo.h
      type_or_value: (1)
    - item_type: preproc_def
      name: PLATFORM_FAMILY
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libtpms/src/tpm2/VendorInfo.h
      type_or_value: "(1)\t\t"
    - item_type: preproc_def
      name: PLATFORM_LEVEL
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libtpms/src/tpm2/VendorInfo.h
      type_or_value: "TPM_SPEC_LEVEL_NUM\t\t// libtpms: changed"
    - item_type: preproc_def
      name: PLATFORM_VERSION
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/VendorInfo.h
      type_or_value: (0x00000106)
    - item_type: preproc_def
      name: PLATFORM_YEAR
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/VendorInfo.h
      type_or_value: "TPM_SPEC_YEAR\t\t// libtpms: changed"
    - item_type: preproc_def
      name: PLATFORM_DAY_OF_YEAR
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/VendorInfo.h
      type_or_value: "TPM_SPEC_DAY_OF_YEAR\t// libtpms: changed"
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ACT_spt_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/GetCapability_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_GetCapability_capability
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/GetCapability_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_GetCapability_property
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/GetCapability_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_GetCapability_propertyCount
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/GetCapability_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    structs:
    - fields:
      - name: capability
        type: TPM_CAP
      - name: property
        type: UINT32
      - name: propertyCount
        type: UINT32
      item_type: struct
      name: GetCapability_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/GetCapability_fp.h
    - fields:
      - name: moreData
        type: TPMI_YES_NO
      - name: capabilityData
        type: TPMS_CAPABILITY_DATA
      item_type: struct
      name: GetCapability_Out
      pos:
        line_end: 82
        line_start: 78
        source_file: /src/libtpms/src/tpm2/GetCapability_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/HierarchyChangeAuth_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_HierarchyChangeAuth_authHandle
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/HierarchyChangeAuth_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_HierarchyChangeAuth_newAuth
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/HierarchyChangeAuth_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_HIERARCHY_AUTH
      - name: newAuth
        type: TPM2B_AUTH
      item_type: struct
      name: HierarchyChangeAuth_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/HierarchyChangeAuth_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/MathOnByteBuffers_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PlatformData.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_Certify_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_NV_Certify_signHandle
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/NV_Certify_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_Certify_authHandle
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/NV_Certify_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_NV_Certify_nvIndex
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/NV_Certify_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_3)
    - item_type: preproc_def
      name: RC_NV_Certify_qualifyingData
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/NV_Certify_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_Certify_inScheme
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libtpms/src/tpm2/NV_Certify_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_NV_Certify_size
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libtpms/src/tpm2/NV_Certify_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    - item_type: preproc_def
      name: RC_NV_Certify_offset
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libtpms/src/tpm2/NV_Certify_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_4)
    structs:
    - fields:
      - name: signHandle
        type: TPMI_DH_OBJECT
      - name: authHandle
        type: TPMI_RH_NV_AUTH
      - name: nvIndex
        type: TPMI_RH_NV_INDEX
      - name: qualifyingData
        type: TPM2B_DATA
      - name: inScheme
        type: TPMT_SIG_SCHEME
      - name: size
        type: UINT16
      - name: offset
        type: UINT16
      item_type: struct
      name: NV_Certify_In
      pos:
        line_end: 79
        line_start: 70
        source_file: /src/libtpms/src/tpm2/NV_Certify_fp.h
    - fields:
      - name: certifyInfo
        type: TPM2B_ATTEST
      - name: signature
        type: TPMT_SIGNATURE
      item_type: struct
      name: NV_Certify_Out
      pos:
        line_end: 86
        line_start: 82
        source_file: /src/libtpms/src/tpm2/NV_Certify_fp.h
    typedefs: []
    union: []
- function_names:
  - MemoryIoBufferAllocationReset
  - MemoryIoBufferZero
  - MemoryGetInBuffer
  - MemoryGetOutBuffer
  - IsLabelProperlyFormatted
  source_file: /src/libtpms/src/tpm2/IoBuffers.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UoM
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/libtpms/src/tpm2/IoBuffers.c
      type_or_value: (sizeof(s_actionIoBuffer[0]))
    structs: []
    typedefs: []
    union: []
- function_names:
  - "Crypt_Point* TpmEcc_PointFrom2B(\n    Crypt_Point*    ecP,  // OUT: the preallocated
    point structure\n    TPMS_ECC_POINT* p     // IN: the number to convert\n)"
  - TpmEcc_PointTo2B
  source_file: /src/libtpms/src/tpm2/TpmEcc_Util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Platform_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyLocality_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyLocality_policySession
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/PolicyLocality_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyLocality_locality
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/PolicyLocality_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      - name: locality
        type: TPMA_LOCALITY
      item_type: struct
      name: PolicyLocality_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyLocality_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Quote_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_Quote_signHandle
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/Quote_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Quote_qualifyingData
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/Quote_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Quote_inScheme
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/Quote_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_Quote_PCRselect
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/Quote_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    structs:
    - fields:
      - name: signHandle
        type: TPMI_DH_OBJECT
      - name: qualifyingData
        type: TPM2B_DATA
      - name: inScheme
        type: TPMT_SIG_SCHEME
      - name: PCRselect
        type: TPML_PCR_SELECTION
      item_type: struct
      name: Quote_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/Quote_fp.h
    - fields:
      - name: quoted
        type: TPM2B_ATTEST
      - name: signature
        type: TPMT_SIGNATURE
      item_type: struct
      name: Quote_Out
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/libtpms/src/tpm2/Quote_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_DefineSpace2_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_NV_DefineSpace2_authHandle
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/NV_DefineSpace2_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_DefineSpace2_auth
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/NV_DefineSpace2_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_DefineSpace2_publicInfo
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/NV_DefineSpace2_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_PROVISION
      - name: auth
        type: TPM2B_AUTH
      - name: publicInfo
        type: TPM2B_NV_PUBLIC_2
      item_type: struct
      name: NV_DefineSpace2_In
      pos:
        line_end: 74
        line_start: 69
        source_file: /src/libtpms/src/tpm2/NV_DefineSpace2_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_ReadLock_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_NV_ReadLock_authHandle
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/NV_ReadLock_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_ReadLock_nvIndex
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/NV_ReadLock_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_NV_AUTH
      - name: nvIndex
        type: TPMI_RH_NV_INDEX
      item_type: struct
      name: NV_ReadLock_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/NV_ReadLock_fp.h
    typedefs: []
    union: []
- function_names:
  - CopyFromOldPrimeT
  - ObjectGetHierarchyFromAttributes
  - RSA2048_OBJECT_To_OBJECT
  - RSA2048_OBJECT_Buffer_To_OBJECT
  - CopyFromRSA3072PrimeT
  - CopyToRSA3072PrimeT
  - RSA3072_OBJECT_To_OBJECT
  - OBJECT_To_RSA3072_OBJECT
  - RSA3072_OBJECT_Buffer_To_OBJECT
  - OBJECT_To_Buffer_As_RSA3072_OBJECT
  source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: TPMI_ALG_PUBLIC
      - name: nameAlg
        type: TPMI_ALG_HASH
      - name: objectAttributes
        type: TPMA_OBJECT
      - name: authPolicy
        type: TPM2B_DIGEST
      - name: parameters
        type: TPMU_PUBLIC_PARMS
      - name: unique
        type: RSA2048_TPMU_PUBLIC_ID
      item_type: struct
      name: RSA2048_TPMT_PUBLIC
      pos:
        line_end: 70
        line_start: 63
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    - fields:
      - name: sensitiveType
        type: TPMI_ALG_PUBLIC
      - name: authValue
        type: TPM2B_AUTH
      - name: seedValue
        type: TPM2B_DIGEST
      - name: sensitive
        type: RSA2048_TPMU_SENSITIVE_COMPOSITE
      item_type: struct
      name: RSA2048_TPMT_SENSITIVE
      pos:
        line_end: 105
        line_start: 100
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    - fields:
      - name: Q
        type: bn_old_prime_t
      - name: dP
        type: bn_old_prime_t
      - name: dQ
        type: bn_old_prime_t
      - name: qInv
        type: bn_old_prime_t
      item_type: struct
      name: RSA2048_privateExponent
      pos:
        line_end: 117
        line_start: 111
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    - fields:
      - name: attributes
        type: OBJECT_ATTRIBUTES
      - name: publicArea
        type: RSA2048_TPMT_PUBLIC
      - name: sensitive
        type: RSA2048_TPMT_SENSITIVE
      - name: privateExponent
        type: RSA2048_privateExponent_t
      - name: qualifiedName
        type: TPM2B_NAME
      - name: evictHandle
        type: TPMI_DH_OBJECT
      - name: name
        type: TPM2B_NAME
      - name: _pad
        type: UINT32
      item_type: struct
      name: RSA2048_OBJECT
      pos:
        line_end: 149
        line_start: 129
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    - fields:
      - name: type
        type: TPMI_ALG_PUBLIC
      - name: nameAlg
        type: TPMI_ALG_HASH
      - name: objectAttributes
        type: TPMA_OBJECT
      - name: authPolicy
        type: TPM2B_DIGEST
      - name: parameters
        type: TPMU_PUBLIC_PARMS
      - name: unique
        type: RSA3072_TPMU_PUBLIC_ID
      item_type: struct
      name: RSA3072_TPMT_PUBLIC
      pos:
        line_end: 280
        line_start: 273
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    - fields:
      - name: sensitiveType
        type: TPMI_ALG_PUBLIC
      - name: authValue
        type: TPM2B_AUTH
      - name: seedValue
        type: TPM2B_DIGEST
      - name: sensitive
        type: RSA3072_TPMU_SENSITIVE_COMPOSITE
      item_type: struct
      name: RSA3072_TPMT_SENSITIVE
      pos:
        line_end: 316
        line_start: 311
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    - fields:
      - name: Q
        type: bn_rsa3072_prime_t
      - name: dP
        type: bn_rsa3072_prime_t
      - name: dQ
        type: bn_rsa3072_prime_t
      - name: qInv
        type: bn_rsa3072_prime_t
      item_type: struct
      name: RSA3072_privateExponent
      pos:
        line_end: 329
        line_start: 323
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    - fields:
      - name: attributes
        type: OBJECT_ATTRIBUTES
      - name: publicArea
        type: RSA3072_TPMT_PUBLIC
      - name: sensitive
        type: RSA3072_TPMT_SENSITIVE
      - name: qualifiedName
        type: TPM2B_NAME
      - name: evictHandle
        type: TPMI_DH_OBJECT
      - name: name
        type: TPM2B_NAME
      - name: seedCompatLevel
        type: SEED_COMPAT_LEVEL
      - name: _pad[3]
        type: UINT8
      item_type: struct
      name: RSA3072_OBJECT
      pos:
        line_end: 356
        line_start: 332
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    typedefs: []
    union:
    - fields:
      - name: t
        type: "struct {\n\tUINT16                  size;\n\tBYTE                    buffer[2048/8];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: RSA2048_TPM2B_PUBLIC_KEY_RSA
      pos:
        line_end: 53
        line_start: 47
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    - fields:
      - name: keyedHash
        type: TPM2B_DIGEST
      - name: sym
        type: TPM2B_DIGEST
      - name: rsa
        type: RSA2048_TPM2B_PUBLIC_KEY_RSA
      - name: ecc
        type: TPMS_ECC_POINT
      item_type: union
      name: RSA2048_TPMU_PUBLIC_ID
      pos:
        line_end: 61
        line_start: 55
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    - fields:
      - name: t
        type: "struct {\n\tUINT16                  size;\n\tBYTE                    buffer[((2048/8)/2)*5];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: RSA2048_TPM2B_PRIVATE_KEY_RSA
      pos:
        line_end: 80
        line_start: 74
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    - fields:
      - name: t
        type: "struct {\n\tUINT16                  size;\n\tBYTE                    buffer[((2048/8)/2)*5];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: RSA2048_TPM2B_PRIVATE_VENDOR_SPECIFIC
      pos:
        line_end: 90
        line_start: 84
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    - fields:
      - name: rsa
        type: RSA2048_TPM2B_PRIVATE_KEY_RSA
      - name: ecc
        type: TPM2B_ECC_PARAMETER
      - name: bits
        type: TPM2B_SENSITIVE_DATA
      - name: sym
        type: TPM2B_SYM_KEY
      - name: any
        type: RSA2048_TPM2B_PRIVATE_VENDOR_SPECIFIC
      item_type: union
      name: RSA2048_TPMU_SENSITIVE_COMPOSITE
      pos:
        line_end: 98
        line_start: 92
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    - fields:
      - name: t
        type: "struct {\n\tUINT16                  size;\n\tBYTE                    buffer[3072/8];\n
          \   }"
      - name: b
        type: TPM2B
      item_type: union
      name: RSA3072_TPM2B_PUBLIC_KEY_RSA
      pos:
        line_end: 260
        line_start: 254
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    - fields:
      - name: keyedHash
        type: TPM2B_DIGEST
      - name: sym
        type: TPM2B_DIGEST
      - name: rsa
        type: RSA3072_TPM2B_PUBLIC_KEY_RSA
      - name: ecc
        type: TPMS_ECC_POINT
      - name: derive
        type: TPMS_DERIVE
      item_type: union
      name: RSA3072_TPMU_PUBLIC_ID
      pos:
        line_end: 268
        line_start: 262
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    - fields:
      - name: t
        type: "struct {\n\tUINT16                  size;\n\tBYTE                    buffer[((3072
          / 8) / 2) * 5];\n    }"
      - name: b
        type: TPM2B
      item_type: union
      name: RSA3072_TPM2B_PRIVATE_KEY_RSA
      pos:
        line_end: 289
        line_start: 283
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    - fields:
      - name: t
        type: "struct {\n\tUINT16                  size;\n\tBYTE                    buffer[((3072
          / 8) / 2) * 5];\n    }"
      - name: b
        type: TPM2B
      item_type: union
      name: RSA3072_TPM2B_PRIVATE_VENDOR_SPECIFIC
      pos:
        line_end: 298
        line_start: 292
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
    - fields:
      - name: rsa
        type: RSA3072_TPM2B_PRIVATE_KEY_RSA
      - name: ecc
        type: TPM2B_ECC_PARAMETER
      - name: bits
        type: TPM2B_SENSITIVE_DATA
      - name: sym
        type: TPM2B_SYM_KEY
      - name: any
        type: RSA3072_TPM2B_PRIVATE_VENDOR_SPECIFIC
      item_type: union
      name: RSA3072_TPMU_SENSITIVE_COMPOSITE
      pos:
        line_end: 306
        line_start: 300
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.c
- function_names: []
  source_file: /src/libtpms/src/tpm2/CryptEccData.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyAuthorize_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyAuthorize_policySession
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/PolicyAuthorize_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyAuthorize_approvedPolicy
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/PolicyAuthorize_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyAuthorize_policyRef
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/PolicyAuthorize_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_PolicyAuthorize_keySign
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/PolicyAuthorize_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    - item_type: preproc_def
      name: RC_PolicyAuthorize_checkTicket
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/PolicyAuthorize_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_4)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      - name: approvedPolicy
        type: TPM2B_DIGEST
      - name: policyRef
        type: TPM2B_NONCE
      - name: keySign
        type: TPM2B_NAME
      - name: checkTicket
        type: TPMT_TK_VERIFIED
      item_type: struct
      name: PolicyAuthorize_In
      pos:
        line_end: 77
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyAuthorize_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ResponseCodeProcessing_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ChangeEPS_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ChangeEPS_authHandle
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/ChangeEPS_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_PLATFORM
      item_type: struct
      name: ChangeEPS_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/ChangeEPS_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Volatile.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/CryptSelfTest_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/EvictControl_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_EvictControl_auth
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/EvictControl_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_EvictControl_objectHandle
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/EvictControl_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_EvictControl_persistentHandle
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/EvictControl_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: auth
        type: TPMI_RH_PROVISION
      - name: objectHandle
        type: TPMI_DH_OBJECT
      - name: persistentHandle
        type: TPMI_DH_PERSISTENT
      item_type: struct
      name: EvictControl_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/EvictControl_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Marshal_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/platform_pcr_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/MakeCredential_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_MakeCredential_handle
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/MakeCredential_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_MakeCredential_credential
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/MakeCredential_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_MakeCredential_objectName
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/MakeCredential_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: handle
        type: TPMI_DH_OBJECT
      - name: credential
        type: TPM2B_DIGEST
      - name: objectName
        type: TPM2B_NAME
      item_type: struct
      name: MakeCredential_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/MakeCredential_fp.h
    - fields:
      - name: credentialBlob
        type: TPM2B_ID_OBJECT
      - name: secret
        type: TPM2B_ENCRYPTED_SECRET
      item_type: struct
      name: MakeCredential_Out
      pos:
        line_end: 82
        line_start: 78
        source_file: /src/libtpms/src/tpm2/MakeCredential_fp.h
    typedefs: []
    union: []
- function_names:
  - _rpc__Signal_PowerOn
  - _rpc__Signal_Restart
  - _rpc__Signal_PowerOff
  - _rpc__ForceFailureMode
  - _rpc__Signal_PhysicalPresenceOn
  - _rpc__Signal_PhysicalPresenceOff
  - _rpc__Signal_Hash_Start
  - _rpc__Signal_Hash_Data
  - _rpc__Signal_HashEnd
  - _rpc__Send_Command
  - _rpc__Signal_CancelOn
  - _rpc__Signal_CancelOff
  - _rpc__Signal_NvOn
  - _rpc__Signal_NvOff
  - _rpc__RsaKeyCacheControl
  - _rpc__ACT_GetSignaled
  - _rpc__SetTpmFirmwareHash
  - _rpc__SetTpmFirmwareSvn
  - _rpc__Signal_SetTPMEstablished
  - _rpc__Signal_ResetTPMEstablished
  - _rpc__Signal_GetTPMEstablished
  - _rpc__Signal_IsPowerOn
  source_file: /src/libtpms/src/tpm2/TPMCmdp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - UnsignedCompareB
  - SignedCompareB
  - ModExpB
  - DivideB
  - AdjustNumberB
  - ShiftLeft
  source_file: /src/libtpms/src/tpm2/MathOnByteBuffers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_DO_SELF_TEST
  - CODELOCATOR
  - CODELOCATOR
  - SETFAILED
  - FAIL
  - FAIL_NORET
  - FAIL_IMMEDIATE
  - FAIL_BOOL
  - FAIL_RC
  - FAIL_VOID
  - FAIL_NULL
  - FAIL_EXIT
  - FAIL
  - FAIL_NORET
  - FAIL_VOID
  - FAIL_IMMEDIATE
  - FAIL_BOOL
  - FAIL_RC
  - FAIL_NULL
  - FAIL_EXIT
  - VERIFY
  - VERIFY_OR_EXIT
  - VERIFY_RC
  - VERIFY_NOT_FAILED
  - VERIFY_RC_VOID
  - VERIFY_CRYPTO
  - VERIFY_CRYPTO_BOOL
  - VERIFY_CRYPTO_OR_NULL
  - VERIFY_CRYPTO_OR_EXIT
  - VERIFY_CRYPTO_OR_EXIT_RC
  - VERIFY_CRYPTO_OR_EXIT_FALSE
  - VERIFY_CRYPTO_RC_OR_EXIT
  - pAssert
  - pAssert
  - pAssert_ZERO
  - pAssert_RC
  - pAssert_BOOL
  - pAssert_NULL
  - pAssert_NORET
  - pAssert_VOID_OK
  - ERROR_EXIT
  - GOTO_ERROR_UNLESS
  - IsOdd
  - BITS_TO_BYTES
  - TEST_BIT
  - SET_BIT
  - CLEAR_BIT
  - NOT_REFERENCED
  - IS_ATTRIBUTE
  - SET_ATTRIBUTE
  - CLEAR_ATTRIBUTE
  - GET_ATTRIBUTE
  - TPMA_ZERO_INITIALIZER
  - IS_ATTRIBUTE
  - SET_ATTRIBUTE
  - CLEAR_ATTRIBUTE
  - GET_ATTRIBUTE
  - TPMA_ZERO_INITIALIZER
  - INITIALIZER
  - MAKE_OID
  source_file: /src/libtpms/src/tpm2/GpMacros.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: 'NULL'
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libtpms/src/tpm2/GpMacros.h
      type_or_value: '0'
    - item_type: preproc_def
      name: FUNCTION_NAME
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/GpMacros.h
      type_or_value: '__func__     '
    - item_type: preproc_def
      name: FUNCTION_NAME
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/GpMacros.h
      type_or_value: __FUNCTION__
    - item_type: preproc_def
      name: TPM_FAIL_RETURN
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/libtpms/src/tpm2/GpMacros.h
      type_or_value: NORETURN void
    - item_type: preproc_def
      name: TPM_FAIL_RETURN
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/libtpms/src/tpm2/GpMacros.h
      type_or_value: void
    - item_type: preproc_def
      name: NORETURN
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/libtpms/src/tpm2/GpMacros.h
      type_or_value: _Noreturn
    - item_type: preproc_def
      name: STD_RESPONSE_HEADER
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/libtpms/src/tpm2/GpMacros.h
      type_or_value: (sizeof(TPM_ST) + sizeof(UINT32) + sizeof(TPM_RC))
    - item_type: preproc_def
      name: EXPIRATION_BIT
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/libtpms/src/tpm2/GpMacros.h
      type_or_value: ((UINT64)1 << 63)
    - item_type: preproc_def
      name: EXTERN
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/libtpms/src/tpm2/GpMacros.h
      type_or_value: extern
    - item_type: preproc_def
      name: CONTEXT_COUNTER
      pos:
        line_end: 496
        line_start: 495
        source_file: /src/libtpms/src/tpm2/GpMacros.h
      type_or_value: UINT64
    structs: []
    typedefs: []
    union: []
- function_names:
  - ObjectFlush
  - ObjectSetInUse
  - ObjectStartup
  - ObjectCleanupEvict
  - IsObjectPresent
  - ObjectIsSequence
  - HandleToObject
  - GetQualifiedName
  - GetHierarchy
  - FindEmptyObjectSlot
  - ObjectAllocateSlot
  - ObjectSetLoadedAttributes
  - ObjectLoad
  - AllocateSequenceSlot
  - ObjectCreateHMACSequence
  - ObjectCreateHashSequence
  - ObjectCreateEventSequence
  - ObjectTerminateEvent
  - ObjectContextLoad
  - ObjectContextLoadLibtpms
  - FlushObject
  - ObjectFlushHierarchy
  - ObjectLoadEvict
  - ObjectComputeName
  - PublicMarshalAndComputeName
  - ComputeQualifiedName
  - ObjectIsStorage
  - ObjectCapGetLoaded
  - ObjectCapGetOneLoaded
  - ObjectCapGetTransientAvail
  - ObjectGetPublicAttributes
  - ObjectGetProperties
  source_file: /src/libtpms/src/tpm2/Object.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/RSA_Encrypt_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_RSA_Encrypt_keyHandle
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/RSA_Encrypt_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_RSA_Encrypt_message
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/RSA_Encrypt_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_RSA_Encrypt_inScheme
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/RSA_Encrypt_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_RSA_Encrypt_label
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/RSA_Encrypt_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    structs:
    - fields:
      - name: keyHandle
        type: TPMI_DH_OBJECT
      - name: message
        type: TPM2B_PUBLIC_KEY_RSA
      - name: inScheme
        type: TPMT_RSA_DECRYPT
      - name: label
        type: TPM2B_DATA
      item_type: struct
      name: RSA_Encrypt_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/RSA_Encrypt_fp.h
    - fields:
      - name: outData
        type: TPM2B_PUBLIC_KEY_RSA
      item_type: struct
      name: RSA_Encrypt_Out
      pos:
        line_end: 82
        line_start: 79
        source_file: /src/libtpms/src/tpm2/RSA_Encrypt_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/HashTestData.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*key'
        type: TPM2B
      - name: data[64]
        type: BYTE
      - name: datalen
        type: UINT32
      - name: out[16]
        type: BYTE
      - name: outlen
        type: UINT16
      item_type: struct
      name: CMACTest
      pos:
        line_end: 168
        line_start: 162
        source_file: /src/libtpms/src/tpm2/HashTestData.h
    typedefs: []
    union: []
- function_names:
  - MUST_BE_0_OR_1
  source_file: /src/libtpms/src/tpm2/VerifyConfiguration.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2_CreatePrimary
  - TPM2_HierarchyControl
  - TPM2_SetPrimaryPolicy
  - SET_ACT_POLICY
  - TPM2_ChangePPS
  - TPM2_ChangeEPS
  - TPM2_Clear
  - TPM2_ClearControl
  - TPM2_HierarchyChangeAuth
  source_file: /src/libtpms/src/tpm2/HierarchyCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2_SetCommandCodeAuditStatus
  source_file: /src/libtpms/src/tpm2/AuditCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmEcc_Signature_Util_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Attest_spt_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmEcc_Util_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/simulatorPrivate.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/RuntimeAttributes_fp.h
  types:
    enum:
    - enumerators:
      - name: RUNTIME_ATTR_IMPLEMENTED
      - name: RUNTIME_ATTR_NUM
      - name: RUNTIME_ATTR_DISABLED
      - name: RUNTIME_ATTR_CAN_BE_DISABLED
      - name: RUNTIME_ATTR_ENABLED
      item_type: enum
      name: RuntimeAttributeType
      pos:
        line_end: 88
        line_start: 81
        source_file: /src/libtpms/src/tpm2/RuntimeAttributes_fp.h
    preproc_defs:
    - item_type: preproc_def
      name: NUM_ENTRIES_ATTRIBUTE_PROPERTIES
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/libtpms/src/tpm2/RuntimeAttributes_fp.h
      type_or_value: '10'
    - item_type: preproc_def
      name: RUNTIME_ATTRIBUTE_NO_UNPADDED_ENCRYPTION
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/libtpms/src/tpm2/RuntimeAttributes_fp.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: RUNTIME_ATTRIBUTE_NO_SHA1_SIGNING
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/libtpms/src/tpm2/RuntimeAttributes_fp.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: RUNTIME_ATTRIBUTE_NO_SHA1_VERIFICATION
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libtpms/src/tpm2/RuntimeAttributes_fp.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: RUNTIME_ATTRIBUTE_NO_SHA1_HMAC_CREATION
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/libtpms/src/tpm2/RuntimeAttributes_fp.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: RUNTIME_ATTRIBUTE_NO_SHA1_HMAC_VERIFICATION
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libtpms/src/tpm2/RuntimeAttributes_fp.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: RUNTIME_ATTRIBUTE_DRBG_CONTINOUS_TEST
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/libtpms/src/tpm2/RuntimeAttributes_fp.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: RUNTIME_ATTRIBUTE_PAIRWISE_CONSISTENCY_TEST
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/libtpms/src/tpm2/RuntimeAttributes_fp.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: RUNTIME_ATTRIBUTE_NO_ECC_KEY_DERIVATION
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/libtpms/src/tpm2/RuntimeAttributes_fp.h
      type_or_value: (1 << 7)
    structs:
    - fields:
      - name: attributeFlags
        type: unsigned int
      - name: enabledAttributesPrint[(NUM_ENTRIES_ATTRIBUTE_PROPERTIES + 7) / 8]
        type: unsigned char
      - name: '*attributesProfile'
        type: char
      item_type: struct
      name: RuntimeAttributes
      pos:
        line_end: 60
        line_start: 55
        source_file: /src/libtpms/src/tpm2/RuntimeAttributes_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/_TPM_Init_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_DefineSpace_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_NV_DefineSpace_authHandle
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/NV_DefineSpace_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_DefineSpace_auth
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/NV_DefineSpace_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_DefineSpace_publicInfo
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/NV_DefineSpace_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_PROVISION
      - name: auth
        type: TPM2B_AUTH
      - name: publicInfo
        type: TPM2B_NV_PUBLIC
      item_type: struct
      name: NV_DefineSpace_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/NV_DefineSpace_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Clear_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_Clear_authHandle
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/Clear_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_CLEAR
      item_type: struct
      name: Clear_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/Clear_fp.h
    typedefs: []
    union: []
- function_names:
  - TPM2_NV_DefineSpace
  - TPM2_NV_UndefineSpace
  - TPM2_NV_UndefineSpaceSpecial
  - TPM2_NV_ReadPublic
  - TPM2_NV_Write
  - TPM2_NV_Increment
  - TPM2_NV_Extend
  - TPM2_NV_SetBits
  - TPM2_NV_WriteLock
  - TPM2_NV_GlobalWriteLock
  - TPM2_NV_Read
  - TPM2_NV_ReadLock
  - TPM2_NV_ChangeAuth
  - TPM2_NV_Certify
  - TPM2_NV_ReadPublic2
  - TPM2_NV_DefineSpace2
  source_file: /src/libtpms/src/tpm2/NVCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyParameters_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyParameters_policySession
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/PolicyParameters_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyParameters_pHash
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/PolicyParameters_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      - name: pHash
        type: TPM2B_DIGEST
      item_type: struct
      name: PolicyParameters_In
      pos:
        line_end: 73
        line_start: 69
        source_file: /src/libtpms/src/tpm2/PolicyParameters_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/CreateLoaded_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_CreateLoaded_parentHandle
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/CreateLoaded_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_CreateLoaded_inSensitive
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/CreateLoaded_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_CreateLoaded_inPublic
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/CreateLoaded_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: parentHandle
        type: TPMI_DH_PARENT
      - name: inSensitive
        type: TPM2B_SENSITIVE_CREATE
      - name: inPublic
        type: TPM2B_TEMPLATE
      item_type: struct
      name: CreateLoaded_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/CreateLoaded_fp.h
    - fields:
      - name: objectHandle
        type: TPM_HANDLE
      - name: outPrivate
        type: TPM2B_PRIVATE
      - name: outPublic
        type: TPM2B_PUBLIC
      - name: name
        type: TPM2B_NAME
      item_type: struct
      name: CreateLoaded_Out
      pos:
        line_end: 84
        line_start: 78
        source_file: /src/libtpms/src/tpm2/CreateLoaded_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/EC_Ephemeral_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_EC_Ephemeral_curveID
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/EC_Ephemeral_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: curveID
        type: TPMI_ECC_CURVE
      item_type: struct
      name: EC_Ephemeral_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/EC_Ephemeral_fp.h
    - fields:
      - name: Q
        type: TPM2B_ECC_POINT
      - name: counter
        type: UINT16
      item_type: struct
      name: EC_Ephemeral_Out
      pos:
        line_end: 80
        line_start: 76
        source_file: /src/libtpms/src/tpm2/EC_Ephemeral_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/CommandDispatcher_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_DEFAULT_TEST_HASH
  - CLEAR_BOTH
  - SET_BOTH
  - TEST_BOTH
  - TestHash
  - HASH_CASE_FOR_TEST
  - MakeIv
  - TestSymmetricAlgorithm
  - AllSymsAreDone
  - AllModesAreDone
  - TestSymmetric
  - RsaKeyInitialize
  - TestRsaEncryptDecrypt
  - TestRsaSignAndVerify
  - TestRsa
  - LoadEccParameter
  - LoadEccPoint
  - TestECDH
  - TestEccSignAndVerify
  - TestKDFa
  - TestEcc
  - TestAlgorithm
  - HASH_CASE_TEST
  source_file: /src/libtpms/src/tpm2/AlgorithmTests.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CHECK_CANCELED
      pos:
        line_end: 109
        line_start: 106
        source_file: /src/libtpms/src/tpm2/AlgorithmTests.c
      type_or_value: "if(_plat__IsCanceled() && toTest != &g_toTest) \\\n          return
        TPM_RC_CANCELED;"
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2_Vendor_TCG_Test
  source_file: /src/libtpms/src/tpm2/Vendor_TCG_Test.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2_SelfTest
  - TPM2_IncrementalSelfTest
  - TPM2_GetTestResult
  source_file: /src/libtpms/src/tpm2/TestingCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/X509_ECC_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyRestart_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyRestart_sessionHandle
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/PolicyRestart_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: sessionHandle
        type: TPMI_SH_POLICY
      item_type: struct
      name: PolicyRestart_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyRestart_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/KdfTestData.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TEST_KDF_KEY_SIZE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libtpms/src/tpm2/KdfTestData.h
      type_or_value: '20'
    - item_type: preproc_def
      name: KDF_TEST_ALG
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libtpms/src/tpm2/KdfTestData.h
      type_or_value: TPM_ALG_SHA512
    - item_type: preproc_def
      name: KDF_TEST_ALG
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/libtpms/src/tpm2/KdfTestData.h
      type_or_value: TPM_ALG_SHA384
    - item_type: preproc_def
      name: KDF_TEST_ALG
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/libtpms/src/tpm2/KdfTestData.h
      type_or_value: TPM_ALG_SHA256
    - item_type: preproc_def
      name: KDF_TEST_ALG
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/libtpms/src/tpm2/KdfTestData.h
      type_or_value: TPM_ALG_SHA1
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PlatformClock.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EncryptDecryptShared
  source_file: /src/libtpms/src/tpm2/EncryptDecrypt_spt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _plat__GetUnique
  source_file: /src/libtpms/src/tpm2/Unique.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2_HMAC_Start
  - TPM2_MAC_Start
  - TPM2_HashSequenceStart
  - TPM2_SequenceUpdate
  - TPM2_SequenceComplete
  - TPM2_EventSequenceComplete
  source_file: /src/libtpms/src/tpm2/HashCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2B_TYPE
  - TPM2B_INIT
  - TPM2B_BYTE_VALUE
  source_file: /src/libtpms/src/tpm2/TPMB.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: size
        type: NUMBYTES
      - name: buffer[1]
        type: BYTE
      item_type: struct
      name: TPM2B
      pos:
        line_end: 78
        line_start: 74
        source_file: /src/libtpms/src/tpm2/TPMB.h
    typedefs:
    - item_type: typedef
      name: NUMBYTES
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/libtpms/src/tpm2/TPMB.h
      type: UINT16
    - item_type: typedef
      name: '* PC2B'
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/libtpms/src/tpm2/TPMB.h
      type: TPM2B
    union: []
- function_names:
  - ExtMath_LibInit
  - ExtMath_Debug_CompatibilityCheck
  - ExtMath_Initialize_Int
  - ExtMath_IntFromBytes
  - ExtMath_IntToBytes
  - ExtMath_SetWord
  - ExtMath_Copy
  - ExtMath_Multiply
  - ExtMath_Divide
  - ExtMath_GCD
  - ExtMath_Add
  - ExtMath_AddWord
  - ExtMath_Subtract
  - ExtMath_SubtractWord
  - ExtMath_Mod
  - ExtMath_ModMult
  - ExtMath_ModExp
  - ExtMath_ModInverse
  - crypt_word_t::ExtMath_ModWord
  - ExtMath_UnsignedCmp
  - ExtMath_UnsignedCmpWord
  - ExtMath_IsEqualWord
  - ExtMath_IsZero
  - ExtMath_MostSigBitNum
  - ExtMath_GetLeastSignificant32bits
  - ExtMath_SizeInBits
  - ExtMath_SetBit
  - ExtMath_TestBit
  - ExtMath_MaskBits
  - ExtMath_ShiftRight
  - Crypt_Point* ExtEcc_Initialize_Point(Crypt_Point* point, NUMBYTES bitCount)
  - "Crypt_EccCurve* ExtEcc_CurveInitialize(Crypt_EccCurve* E,\n                                                        TPM_ECC_CURVE
    \  curveId)"
  - ExtEcc_CurveFree
  - "Crypt_Point* ExtEcc_PointFromBytes(Crypt_Point* point,\n                                              const
    BYTE*  x,\n                                              NUMBYTES     nBytesX,\n
    \                                             const BYTE*  y,\n                                              NUMBYTES
    \    nBytesY)"
  - ExtEcc_PointToBytes
  - ExtEcc_PointMultiply
  - ExtEcc_PointMultiplyAndAdd
  - ExtEcc_PointAdd
  - ExtEcc_IsPointOnCurve
  - ExtEcc_PointX
  - ExtEcc_IsInfinityPoint
  - ExtEcc_CurveGetPrime
  - ExtEcc_CurveGetOrder
  - ExtEcc_CurveGetCofactor
  - ExtEcc_CurveGet_a
  - ExtEcc_CurveGet_b
  - Crypt_Point* ExtEcc_CurveGetG(TPM_ECC_CURVE curveId)
  - ExtEcc_CurveGetGx
  - ExtEcc_CurveGetGy
  - TPM_ECC_CURVE::ExtEcc_CurveGetCurveId
  source_file: /src/libtpms/src/tpm2/TpmBigNumThunks.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ZeroMemory
  - closesocket
  - WSAGetLastError
  source_file: /src/libtpms/src/tpm2/simulator_sysheaders.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INVALID_SOCKET
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libtpms/src/tpm2/simulator_sysheaders.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: SOCKET_ERROR
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libtpms/src/tpm2/simulator_sysheaders.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: WSAEADDRINUSE
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/libtpms/src/tpm2/simulator_sysheaders.h
      type_or_value: EADDRINUSE
    - item_type: preproc_def
      name: INT_PTR
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/libtpms/src/tpm2/simulator_sysheaders.h
      type_or_value: intptr_t
    - item_type: preproc_def
      name: _strcmpi
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libtpms/src/tpm2/simulator_sysheaders.h
      type_or_value: strcasecmp
    structs: []
    typedefs:
    - item_type: typedef
      name: socklen_t
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/libtpms/src/tpm2/simulator_sysheaders.h
      type: int
    - item_type: typedef
      name: SOCKET
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/libtpms/src/tpm2/simulator_sysheaders.h
      type: int
    union: []
- function_names:
  - TPM2_Commit
  - TPM2_EC_Ephemeral
  source_file: /src/libtpms/src/tpm2/EphemeralCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2_Create
  - TPM2_Load
  - TPM2_LoadExternal
  - TPM2_ReadPublic
  - TPM2_ActivateCredential
  - TPM2_MakeCredential
  - TPM2_Unseal
  - TPM2_ObjectChangeAuth
  - TPM2_CreateLoaded
  source_file: /src/libtpms/src/tpm2/ObjectCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/MAC_Start_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_MAC_Start_handle
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/MAC_Start_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_MAC_Start_auth
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/MAC_Start_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_MAC_Start_inScheme
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/MAC_Start_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: handle
        type: TPMI_DH_OBJECT
      - name: auth
        type: TPM2B_AUTH
      - name: inScheme
        type: TPMI_ALG_MAC_SCHEME
      item_type: struct
      name: MAC_Start_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/MAC_Start_fp.h
    - fields:
      - name: sequenceHandle
        type: TPMI_DH_OBJECT
      item_type: struct
      name: MAC_Start_Out
      pos:
        line_end: 81
        line_start: 78
        source_file: /src/libtpms/src/tpm2/MAC_Start_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyTemplate_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyTemplate_policySession
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/PolicyTemplate_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyTemplate_templateHash
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/PolicyTemplate_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      - name: templateHash
        type: TPM2B_DIGEST
      item_type: struct
      name: PolicyTemplate_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyTemplate_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ReadPublic_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ReadPublic_objectHandle
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/ReadPublic_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: objectHandle
        type: TPMI_DH_OBJECT
      item_type: struct
      name: ReadPublic_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/ReadPublic_fp.h
    - fields:
      - name: outPublic
        type: TPM2B_PUBLIC
      - name: name
        type: TPM2B_NAME
      - name: qualifiedName
        type: TPM2B_NAME
      item_type: struct
      name: ReadPublic_Out
      pos:
        line_end: 81
        line_start: 76
        source_file: /src/libtpms/src/tpm2/ReadPublic_fp.h
    typedefs: []
    union: []
- function_names:
  - SHA1_OID
  - SHA256_OID
  - SHA384_OID
  - SHA512_OID
  - SM3_256_OID
  - SHA3_256_OID
  - SHA3_384_OID
  - SHA3_512_OID
  - OID_SIZE
  source_file: /src/libtpms/src/tpm2/OIDs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALG_SHA1
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: ALG_SHA256
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: ALG_SHA384
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: ALG_SHA512
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: ALG_SM3_256
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: ALG_SHA3_256
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: ALG_SHA3_384
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: ALG_SHA3_512
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: NIST_HASH
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x09, 0x60, 0x86, 0x48, 1, 101, 3, 4, 2
    - item_type: preproc_def
      name: NIST_SIG
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x09, 0x60, 0x86, 0x48, 1, 101, 3, 4, 3
    - item_type: preproc_def
      name: OID_SHA1_VALUE
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1A
    - item_type: preproc_def
      name: OID_SHA256_VALUE
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: NIST_HASH, 1
    - item_type: preproc_def
      name: OID_SHA384_VALUE
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: NIST_HASH, 2
    - item_type: preproc_def
      name: OID_SHA512_VALUE
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: NIST_HASH, 3
    - item_type: preproc_def
      name: OID_SM3_256_VALUE
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x08, 0x2A, 0x81, 0x1C, 0xCF, 0x55, 0x01, 0x83, 0x11
    - item_type: preproc_def
      name: OID_SHA3_256_VALUE
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: NIST_HASH, 8
    - item_type: preproc_def
      name: OID_SHA3_384_VALUE
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: NIST_HASH, 9
    - item_type: preproc_def
      name: OID_SHA3_512_VALUE
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: NIST_HASH, 10
    - item_type: preproc_def
      name: OID_MGF1_VALUE
      pos:
        line_end: 185
        line_start: 183
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x08
    - item_type: preproc_def
      name: OID_RSAPSS_VALUE
      pos:
        line_end: 189
        line_start: 187
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0A
    - item_type: preproc_def
      name: OID_PKCS1_PUB_VALUE
      pos:
        line_end: 194
        line_start: 192
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01
    - item_type: preproc_def
      name: OID_PKCS1_SHA1_VALUE
      pos:
        line_end: 199
        line_start: 197
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05
    - item_type: preproc_def
      name: OID_PKCS1_SHA256_VALUE
      pos:
        line_end: 203
        line_start: 201
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B
    - item_type: preproc_def
      name: OID_PKCS1_SHA384_VALUE
      pos:
        line_end: 207
        line_start: 205
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0C
    - item_type: preproc_def
      name: OID_PKCS1_SHA512_VALUE
      pos:
        line_end: 211
        line_start: 209
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0D
    - item_type: preproc_def
      name: OID_PKCS1_SM3_256_VALUE
      pos:
        line_end: 215
        line_start: 213
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x08, 0x2A, 0x81, 0x1C, 0xCF, 0x55, 0x01, 0x83, 0x78
    - item_type: preproc_def
      name: OID_PKCS1_SHA3_256_VALUE
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: NIST_SIG, 14
    - item_type: preproc_def
      name: OID_PKCS1_SHA3_384_VALUE
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: NIST_SIG, 15
    - item_type: preproc_def
      name: OID_PKCS1_SHA3_512_VALUE
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: NIST_SIG, 16
    - item_type: preproc_def
      name: OID_ECDSA_SHA1_VALUE
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x07, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x04, 0x01
    - item_type: preproc_def
      name: OID_ECDSA_SHA256_VALUE
      pos:
        line_end: 233
        line_start: 231
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x04, 0x03, 0x02
    - item_type: preproc_def
      name: OID_ECDSA_SHA384_VALUE
      pos:
        line_end: 237
        line_start: 235
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x04, 0x03, 0x03
    - item_type: preproc_def
      name: OID_ECDSA_SHA512_VALUE
      pos:
        line_end: 241
        line_start: 239
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x04, 0x03, 0x04
    - item_type: preproc_def
      name: OID_ECDSA_SM3_256_VALUE
      pos:
        line_end: 245
        line_start: 243
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x08, 0x2A, 0x81, 0x1C, 0xCF, 0x55, 0x01, 0x83, 0x75
    - item_type: preproc_def
      name: OID_ECDSA_SHA3_256_VALUE
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: NIST_SIG, 10
    - item_type: preproc_def
      name: OID_ECDSA_SHA3_384_VALUE
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: NIST_SIG, 11
    - item_type: preproc_def
      name: OID_ECDSA_SHA3_512_VALUE
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: NIST_SIG, 12
    - item_type: preproc_def
      name: OID_ECC_PUBLIC_VALUE
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x07, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01
    - item_type: preproc_def
      name: OID_ECC_NIST_P192_VALUE
      pos:
        line_end: 263
        line_start: 261
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x01
    - item_type: preproc_def
      name: OID_ECC_NIST_P224_VALUE
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x21
    - item_type: preproc_def
      name: OID_ECC_NIST_P256_VALUE
      pos:
        line_end: 274
        line_start: 272
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07
    - item_type: preproc_def
      name: OID_ECC_NIST_P384_VALUE
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x22
    - item_type: preproc_def
      name: OID_ECC_NIST_P521_VALUE
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x23
    - item_type: preproc_def
      name: OID_ECC_BN_P256_VALUE
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: OID_ECC_BN_P638_VALUE
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: OID_ECC_SM2_P256_VALUE
      pos:
        line_end: 301
        line_start: 299
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 0x06, 0x08, 0x2A, 0x81, 0x1C, 0xCF, 0x55, 0x01, 0x82, 0x2D
    - item_type: preproc_def
      name: OID_ECC_BN_P256
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/libtpms/src/tpm2/OIDs.h
      type_or_value: 'NULL'
    structs: []
    typedefs: []
    union: []
- function_names:
  - MemoryCopy
  - MemoryEqual
  - MemoryCopy2B
  - MemoryConcat2B
  - MemoryEqual2B
  - MemorySet
  - MemoryPad2B
  - Uint16ToByteArray
  - Uint32ToByteArray
  - Uint64ToByteArray
  - ByteArrayToUint8
  - ByteArrayToUint16
  - ByteArrayToUint32
  - ByteArrayToUint64
  source_file: /src/libtpms/src/tpm2/Memory.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyCapability_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyCapability_policySession
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/PolicyCapability_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyCapability_operandB
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/PolicyCapability_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyCapability_offset
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/PolicyCapability_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_PolicyCapability_operation
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/PolicyCapability_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    - item_type: preproc_def
      name: RC_PolicyCapability_capability
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/PolicyCapability_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_4)
    - item_type: preproc_def
      name: RC_PolicyCapability_property
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/PolicyCapability_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_5)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      - name: operandB
        type: TPM2B_OPERAND
      - name: offset
        type: UINT16
      - name: operation
        type: TPM_EO
      - name: capability
        type: TPM_CAP
      - name: property
        type: UINT32
      item_type: struct
      name: PolicyCapability_In
      pos:
        line_end: 77
        line_start: 69
        source_file: /src/libtpms/src/tpm2/PolicyCapability_fp.h
    typedefs: []
    union: []
- function_names:
  - SafeGetStringLength
  - FromHex
  - TpmEccDebug_FromHex
  - TpmEccDebug_HexEqual
  source_file: /src/libtpms/src/tpm2/TpmMath_Debug.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_Extend_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_NV_Extend_authHandle
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/NV_Extend_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_Extend_nvIndex
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/NV_Extend_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_NV_Extend_data
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/NV_Extend_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_NV_AUTH
      - name: nvIndex
        type: TPMI_RH_NV_INDEX
      - name: data
        type: TPM2B_MAX_NV_BUFFER
      item_type: struct
      name: NV_Extend_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/NV_Extend_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyNV_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyNV_authHandle
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/PolicyNV_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyNV_nvIndex
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/PolicyNV_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_PolicyNV_policySession
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/PolicyNV_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_3)
    - item_type: preproc_def
      name: RC_PolicyNV_operandB
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/PolicyNV_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyNV_offset
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/PolicyNV_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_PolicyNV_operation
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/PolicyNV_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_NV_AUTH
      - name: nvIndex
        type: TPMI_RH_NV_INDEX
      - name: policySession
        type: TPMI_SH_POLICY
      - name: operandB
        type: TPM2B_OPERAND
      - name: offset
        type: UINT16
      - name: operation
        type: TPM_EO
      item_type: struct
      name: PolicyNV_In
      pos:
        line_end: 78
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyNV_fp.h
    typedefs: []
    union: []
- function_names:
  - TPM2_PolicySigned
  - TPM2_PolicySecret
  - TPM2_PolicyTicket
  - TPM2_PolicyOR
  - TPM2_PolicyPCR
  - TPM2_PolicyPhysicalPresence
  - TPM2_PolicyLocality
  - TPM2_PolicyNV
  - TPM2_PolicyCounterTimer
  - TPM2_PolicyCommandCode
  - TPM2_PolicyCpHash
  - TPM2_PolicyNameHash
  - TPM2_PolicyDuplicationSelect
  - TPM2_PolicyAuthorize
  - TPM2_PolicyAuthValue
  - TPM2_PolicyPassword
  - TPM2_PolicyGetDigest
  - TPM2_PolicyNvWritten
  - TPM2_PolicyTemplate
  - TPM2_PolicyAuthorizeNV
  - TPM2_PolicyCapability
  - TPM2_PolicyParameters
  source_file: /src/libtpms/src/tpm2/EACommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: alg
        type: TPMS_ALG_PROPERTY
      - name: handle
        type: TPM_HANDLE
      - name: commandAttributes
        type: TPMA_CC
      - name: command
        type: TPM_CC
      - name: pcrSelect
        type: TPMS_TAGGED_PCR_SELECT
      - name: tpmProperty
        type: TPMS_TAGGED_PROPERTY
      - name: policy
        type: TPMS_TAGGED_POLICY
      item_type: union
      name: propertyUnion
      pos:
        line_end: 1684
        line_start: 1669
        source_file: /src/libtpms/src/tpm2/EACommands.c
- function_names:
  - TpmEcc_SignEcdaa
  source_file: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDAA.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyNvWritten_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyNvWritten_policySession
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/PolicyNvWritten_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyNvWritten_writtenSet
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/PolicyNvWritten_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      - name: writtenSet
        type: TPMI_YES_NO
      item_type: struct
      name: PolicyNvWritten_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyNvWritten_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_spt_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2_ReadClock
  - TPM2_ClockSet
  - TPM2_ClockRateAdjust
  source_file: /src/libtpms/src/tpm2/ClockCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PolicyParameterChecks
  - PolicyContextUpdate
  - ComputeAuthTimeout
  - PolicyDigestClear
  - PolicySptCheckCondition
  source_file: /src/libtpms/src/tpm2/Policy_spt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ContextLoad_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ContextLoad_context
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/ContextLoad_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: context
        type: TPMS_CONTEXT
      item_type: struct
      name: ContextLoad_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/ContextLoad_fp.h
    - fields:
      - name: loadedHandle
        type: TPMI_DH_CONTEXT
      item_type: struct
      name: ContextLoad_Out
      pos:
        line_end: 79
        line_start: 76
        source_file: /src/libtpms/src/tpm2/ContextLoad_fp.h
    typedefs: []
    union: []
- function_names:
  - ParseHandleBuffer
  - CommandDispatcher
  source_file: /src/libtpms/src/tpm2/CommandDispatcher.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PAD_LIST
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/libtpms/src/tpm2/CommandDispatcher.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PAD_LIST
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/libtpms/src/tpm2/CommandDispatcher.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TEST_COMMAND
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/libtpms/src/tpm2/CommandDispatcher.c
      type_or_value: TPM_CC_Startup
    structs:
    - fields:
      - name: command
        type: COMMAND_t
      - name: inSize
        type: UINT16
      - name: outSize
        type: UINT16
      - name: typesOffset
        type: UINT16
      - name: offsets[1]
        type: UINT16
      item_type: struct
      name: COMMAND_DESCRIPTOR_t
      pos:
        line_end: 131
        line_start: 124
        source_file: /src/libtpms/src/tpm2/CommandDispatcher.c
    typedefs:
    - item_type: typedef
      name: (NoFlagFunction)(void* target, BYTE** buffer, INT32* size)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/libtpms/src/tpm2/CommandDispatcher.c
      type: TPM_RC
    - item_type: typedef
      name: (FlagFunction)(void* target, BYTE** buffer, INT32* size, BOOL flag)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/libtpms/src/tpm2/CommandDispatcher.c
      type: TPM_RC
    - item_type: typedef
      name: '* UNMARSHAL_t'
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/libtpms/src/tpm2/CommandDispatcher.c
      type: FlagFunction
    - item_type: typedef
      name: (MarshalFunction)(void* source, BYTE** buffer, INT32* size)
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/libtpms/src/tpm2/CommandDispatcher.c
      type: INT16
    - item_type: typedef
      name: '* MARSHAL_t'
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/libtpms/src/tpm2/CommandDispatcher.c
      type: MarshalFunction
    - item_type: typedef
      name: (COMMAND_NO_ARGS)(void)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/libtpms/src/tpm2/CommandDispatcher.c
      type: TPM_RC
    - item_type: typedef
      name: (COMMAND_IN_ARG)(void* in)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/libtpms/src/tpm2/CommandDispatcher.c
      type: TPM_RC
    - item_type: typedef
      name: (COMMAND_OUT_ARG)(void* out)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/libtpms/src/tpm2/CommandDispatcher.c
      type: TPM_RC
    - item_type: typedef
      name: (COMMAND_INOUT_ARG)(void* in, void* out)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/libtpms/src/tpm2/CommandDispatcher.c
      type: TPM_RC
    union:
    - fields:
      - name: '*   noArgs'
        type: COMMAND_NO_ARGS
      - name: '*    inArg'
        type: COMMAND_IN_ARG
      - name: '*   outArg'
        type: COMMAND_OUT_ARG
      - name: '* inOutArg'
        type: COMMAND_INOUT_ARG
      item_type: union
      name: COMMAND_t
      pos:
        line_end: 87
        line_start: 81
        source_file: /src/libtpms/src/tpm2/CommandDispatcher.c
- function_names: []
  source_file: /src/libtpms/src/tpm2/RuntimeProfile_fp.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: RuntimeAlgorithm
        type: struct RuntimeAlgorithm
      - name: RuntimeCommands
        type: struct RuntimeCommands
      - name: RuntimeAttributes
        type: struct RuntimeAttributes
      - name: '*profileName'
        type: char
      - name: '*runtimeProfileJSON'
        type: char
      - name: stateFormatLevel
        type: unsigned int
      - name: wasNullProfile
        type: BOOL
      - name: '*profileDescription'
        type: char
      item_type: struct
      name: RuntimeProfile
      pos:
        line_end: 59
        line_start: 50
        source_file: /src/libtpms/src/tpm2/RuntimeProfile_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Hierarchy_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PCR_SAVE_SPACE
  - DefineActData
  - DefineActPolicySpace
  - CONTEXT_SLOT_MASKED
  - NV_READ_PERSISTENT
  - NV_WRITE_PERSISTENT
  - CLEAR_PERSISTENT
  - NV_SYNC_PERSISTENT
  - CP_HASH
  - RP_HASH
  source_file: /src/libtpms/src/tpm2/Global.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RSA_prime_flag
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: AUTH_NONE
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: ((AUTH_ROLE)(0))
    - item_type: preproc_def
      name: AUTH_USER
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: ((AUTH_ROLE)(1))
    - item_type: preproc_def
      name: AUTH_ADMIN
      pos:
        line_end: 325
        line_start: 324
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: ((AUTH_ROLE)(2))
    - item_type: preproc_def
      name: AUTH_DUP
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: ((AUTH_ROLE)(3))
    - item_type: preproc_def
      name: EXPIRES_ON_RESET
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: INT32_MIN
    - item_type: preproc_def
      name: TIMEOUT_ON_RESET
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: UINT64_MAX
    - item_type: preproc_def
      name: EXPIRES_ON_RESTART
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: (INT32_MIN + 1)
    - item_type: preproc_def
      name: TIMEOUT_ON_RESTART
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: (UINT64_MAX - 1)
    - item_type: preproc_def
      name: COMMIT_INDEX_MASK
      pos:
        line_end: 602
        line_start: 601
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: ((UINT16)((sizeof(gr.commitArray) * 8) - 1))
    - item_type: preproc_def
      name: g_timeEpoch
      pos:
        line_end: 647
        line_start: 646
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: gp.timeEpoch
    - item_type: preproc_def
      name: SU_NONE_VALUE
      pos:
        line_end: 687
        line_start: 686
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: (0xFFFF)
    - item_type: preproc_def
      name: TPM_SU_NONE
      pos:
        line_end: 688
        line_start: 687
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: (TPM_SU)(SU_NONE_VALUE)
    - item_type: preproc_def
      name: SU_DA_USED_VALUE
      pos:
        line_end: 694
        line_start: 693
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: (SU_NONE_VALUE - 1)
    - item_type: preproc_def
      name: TPM_SU_DA_USED
      pos:
        line_end: 695
        line_start: 694
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: (TPM_SU)(SU_DA_USED_VALUE)
    - item_type: preproc_def
      name: PRE_STARTUP_FLAG
      pos:
        line_end: 704
        line_start: 703
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: STARTUP_LOCALITY_3
      pos:
        line_end: 705
        line_start: 704
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: '0x4000'
    - item_type: preproc_def
      name: TPM_SU_STATE_MASK
      pos:
        line_end: 706
        line_start: 705
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: ~(PRE_STARTUP_FLAG | STARTUP_LOCALITY_3) // libtpms added
    - item_type: preproc_def
      name: UT_NONE
      pos:
        line_end: 726
        line_start: 725
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: (UPDATE_TYPE)0
    - item_type: preproc_def
      name: UT_NV
      pos:
        line_end: 727
        line_start: 726
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: (UPDATE_TYPE)1
    - item_type: preproc_def
      name: UT_ORDERLY
      pos:
        line_end: 728
        line_start: 727
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: (UPDATE_TYPE)(UT_NV + 2)
    - item_type: preproc_def
      name: s_selfHealTimer
      pos:
        line_end: 1014
        line_start: 1013
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: go.selfHealTimer
    - item_type: preproc_def
      name: s_lockoutTimer
      pos:
        line_end: 1015
        line_start: 1014
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: go.lockoutTimer
    - item_type: preproc_def
      name: drbgDefault
      pos:
        line_end: 1018
        line_start: 1017
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: go.drbgState
    - item_type: preproc_def
      name: NV_PERSISTENT_DATA
      pos:
        line_end: 1217
        line_start: 1216
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: (0)
    - item_type: preproc_def
      name: NV_STATE_RESET_DATA
      pos:
        line_end: 1218
        line_start: 1217
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: (NV_PERSISTENT_DATA + sizeof(PERSISTENT_DATA))
    - item_type: preproc_def
      name: NV_STATE_CLEAR_DATA
      pos:
        line_end: 1219
        line_start: 1218
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: (NV_STATE_RESET_DATA + sizeof(STATE_RESET_DATA))
    - item_type: preproc_def
      name: NV_ORDERLY_DATA
      pos:
        line_end: 1220
        line_start: 1219
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: (NV_STATE_CLEAR_DATA + sizeof(STATE_CLEAR_DATA))
    - item_type: preproc_def
      name: NV_INDEX_RAM_DATA
      pos:
        line_end: 1222
        line_start: 1220
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: "TPM2_ROUNDUP(NV_ORDERLY_DATA + sizeof(ORDERLY_DATA),\\\n                                         1024) "
    - item_type: preproc_def
      name: NV_USER_DYNAMIC
      pos:
        line_end: 1223
        line_start: 1222
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: (NV_INDEX_RAM_DATA + sizeof(s_indexOrderlyRam))
    - item_type: preproc_def
      name: NV_USER_DYNAMIC_END
      pos:
        line_end: 1224
        line_start: 1223
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: NV_MEMORY_SIZE
    - item_type: preproc_def
      name: UNIMPLEMENTED_COMMAND_INDEX
      pos:
        line_end: 1245
        line_start: 1244
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: ((COMMAND_INDEX)(~0))
    - item_type: preproc_def
      name: UNDEFINED_INDEX
      pos:
        line_end: 1371
        line_start: 1370
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: (0xFFFF)
    - item_type: preproc_def
      name: NV_REF_INIT
      pos:
        line_end: 1443
        line_start: 1442
        source_file: /src/libtpms/src/tpm2/Global.h
      type_or_value: (NV_REF)0xFFFFFFFF
    structs:
    - fields: []
      item_type: struct
      name: OBJECT_ATTRIBUTES
      pos:
        line_end: 224
        line_start: 156
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields:
      - name: attributes
        type: OBJECT_ATTRIBUTES
      - name: publicArea
        type: TPMT_PUBLIC
      - name: sensitive
        type: TPMT_SENSITIVE
      - name: qualifiedName
        type: TPM2B_NAME
      - name: evictHandle
        type: TPMI_DH_OBJECT
      - name: name
        type: TPM2B_NAME
      - name: hierarchy
        type: TPMI_RH_HIERARCHY
      - name: seedCompatLevel
        type: SEED_COMPAT_LEVEL
      - name: _pad[3]
        type: UINT8
      item_type: struct
      name: OBJECT
      pos:
        line_end: 278
        line_start: 244
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields:
      - name: attributes
        type: OBJECT_ATTRIBUTES
      - name: type
        type: TPMI_ALG_PUBLIC
      - name: nameAlg
        type: TPMI_ALG_HASH
      - name: objectAttributes
        type: TPMA_OBJECT
      - name: auth
        type: TPM2B_AUTH
      - name: state
        type: "union\n    {\n        HASH_STATE hashState[HASH_COUNT];\n        HMAC_STATE
          hmacState;\n    }"
      item_type: struct
      name: HASH_OBJECT
      pos:
        line_end: 303
        line_start: 289
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields: []
      item_type: struct
      name: SESSION_ATTRIBUTES
      pos:
        line_end: 421
        line_start: 337
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields:
      - name: attributes
        type: SESSION_ATTRIBUTES
      - name: pcrCounter
        type: UINT32
      - name: startTime
        type: UINT64
      - name: timeout
        type: UINT64
      - name: epoch
        type: CLOCK_NONCE
      - name: commandCode
        type: TPM_CC
      - name: authHashAlg
        type: TPM_ALG_ID
      - name: commandLocality
        type: TPMA_LOCALITY
      - name: symmetric
        type: TPMT_SYM_DEF
      - name: sessionKey
        type: TPM2B_AUTH
      - name: nonceTPM
        type: TPM2B_NONCE
      - name: u1
        type: "union\n    {\n        TPM2B_NAME boundEntity;  // value used to track
          the entity to\n                                 // which the session is
          bound\n\n        TPM2B_DIGEST cpHash;        // the required cpHash value
          for the\n                                    // command being authorized\n
          \       TPM2B_DIGEST nameHash;      // the required nameHash\n        TPM2B_DIGEST
          templateHash;  // the required template for creation\n        TPM2B_DIGEST
          pHash;         // the required parameter hash value for the\n                                    //
          command being authorized\n    }"
      - name: u2
        type: "union\n    {\n        TPM2B_DIGEST auditDigest;   // audit session
          digest\n        TPM2B_DIGEST policyDigest;  // policyHash\n    }"
      item_type: struct
      name: SESSION
      pos:
        line_end: 479
        line_start: 435
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields:
      - name: (PCR_SAVE_SPACE)
        type: FOR_EACH_HASH
      - name: pcrCounter
        type: UINT32
      item_type: struct
      name: PCR_SAVE
      pos:
        line_end: 508
        line_start: 499
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields:
      - name: hashAlg[NUM_POLICY_PCR_GROUP]
        type: TPMI_ALG_HASH
      - name: a_unused
        type: TPM2B_DIGEST
      - name: policy[NUM_POLICY_PCR_GROUP]
        type: TPM2B_DIGEST
      item_type: struct
      name: PCR_POLICY
      pos:
        line_end: 519
        line_start: 514
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields:
      - name: auth[NUM_AUTHVALUE_PCR_GROUP]
        type: TPM2B_DIGEST
      item_type: struct
      name: PCR_AUTH_VALUE
      pos:
        line_end: 528
        line_start: 525
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields:
      - name: publicArea
        type: TPMS_NV_PUBLIC
      - name: authValue
        type: TPM2B_AUTH
      item_type: struct
      name: NV_INDEX
      pos:
        line_end: 554
        line_start: 550
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields:
      - name: pinCount
        type: UINT32
      - name: pinLimit
        type: UINT32
      item_type: struct
      name: PIN_DATA
      pos:
        line_end: 578
        line_start: 574
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields:
      - name: pinLimit
        type: UINT32
      - name: pinCount
        type: UINT32
      item_type: struct
      name: PIN_DATA
      pos:
        line_end: 584
        line_start: 580
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields:
      - name: platformReserved[PERSISTENT_DATA_PLATFORM_SPACE]
        type: BYTE
      - name: disableClear
        type: BOOL
      - name: ownerAlg
        type: TPMI_ALG_HASH
      - name: endorsementAlg
        type: TPMI_ALG_HASH
      - name: lockoutAlg
        type: TPMI_ALG_HASH
      - name: ownerPolicy
        type: TPM2B_DIGEST
      - name: endorsementPolicy
        type: TPM2B_DIGEST
      - name: lockoutPolicy
        type: TPM2B_DIGEST
      - name: ownerAuth
        type: TPM2B_AUTH
      - name: endorsementAuth
        type: TPM2B_AUTH
      - name: lockoutAuth
        type: TPM2B_AUTH
      - name: EPSeed
        type: TPM2B_SEED
      - name: SPSeed
        type: TPM2B_SEED
      - name: PPSeed
        type: TPM2B_SEED
      - name: EPSeedCompatLevel
        type: SEED_COMPAT_LEVEL
      - name: SPSeedCompatLevel
        type: SEED_COMPAT_LEVEL
      - name: PPSeedCompatLevel
        type: SEED_COMPAT_LEVEL
      - name: phProof
        type: TPM2B_PROOF
      - name: shProof
        type: TPM2B_PROOF
      - name: ehProof
        type: TPM2B_PROOF
      - name: totalResetCount
        type: UINT64
      - name: resetCount
        type: UINT32
      - name: pcrAllocated
        type: TPML_PCR_SELECTION
      - name: ppList[(COMMAND_COUNT + 7) / 8]
        type: BYTE
      - name: failedTries
        type: UINT32
      - name: maxTries
        type: UINT32
      - name: recoveryTime
        type: UINT32
      - name: lockoutRecovery
        type: UINT32
      - name: lockOutAuthEnabled
        type: BOOL
      - name: orderlyState
        type: TPM_SU
      - name: auditCommands[((COMMAND_COUNT + 1) + 7) / 8]
        type: BYTE
      - name: auditHashAlg
        type: TPMI_ALG_HASH
      - name: auditCounter
        type: UINT64
      - name: algorithmSet
        type: UINT32
      - name: firmwareV1
        type: UINT32
      - name: firmwareV2
        type: UINT32
      item_type: struct
      name: PERSISTENT_DATA
      pos:
        line_end: 950
        line_start: 795
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields:
      - name: clock
        type: UINT64
      - name: clockSafe
        type: TPMI_YES_NO
      - name: drbgState
        type: DRBG_STATE
      item_type: struct
      name: orderly_data
      pos:
        line_end: 1010
        line_start: 960
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields:
      - name: shEnable
        type: BOOL
      - name: ehEnable
        type: BOOL
      - name: phEnableNV
        type: BOOL
      - name: platformAlg
        type: TPMI_ALG_HASH
      - name: platformPolicy
        type: TPM2B_DIGEST
      - name: platformAuth
        type: TPM2B_AUTH
      - name: pcrSave
        type: PCR_SAVE
      - name: pcrAuthValues
        type: PCR_AUTHVALUE
      item_type: struct
      name: state_clear_data
      pos:
        line_end: 1070
        line_start: 1034
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields:
      - name: nullProof
        type: TPM2B_PROOF
      - name: nullSeed
        type: TPM2B_SEED
      - name: nullSeedCompatLevel
        type: SEED_COMPAT_LEVEL
      - name: clearCount
        type: UINT32
      - name: objectContextID
        type: UINT64
      - name: contextArray[MAX_ACTIVE_SESSIONS]
        type: CONTEXT_SLOT
      - name: contextCounter
        type: CONTEXT_COUNTER
      - name: commandAuditDigest
        type: TPM2B_DIGEST
      - name: restartCount
        type: UINT32
      - name: pcrCounter
        type: UINT32
      item_type: struct
      name: state_reset_data
      pos:
        line_end: 1179
        line_start: 1086
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields: []
      item_type: struct
      name: _COMMAND_FLAGS_
      pos:
        line_end: 1260
        line_start: 1247
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields:
      - name: tag
        type: TPM_ST
      - name: code
        type: TPM_CC
      - name: index
        type: COMMAND_INDEX
      - name: handleNum
        type: UINT32
      - name: handles[MAX_HANDLE_NUM]
        type: TPM_HANDLE
      - name: sessionNum
        type: UINT32
      - name: parameterSize
        type: INT32
      - name: authSize
        type: INT32
      - name: '* parameterBuffer'
        type: BYTE
      - name: '* responseBuffer'
        type: BYTE
      - name: FOR_EACH_HASH(RP_HASH)
        type: FOR_EACH_HASH
      item_type: struct
      name: COMMAND
      pos:
        line_end: 1297
        line_start: 1273
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields:
      - name: occupied
        type: BOOL
      - name: session
        type: SESSION
      item_type: struct
      name: SESSION_SLOT
      pos:
        line_end: 1475
        line_start: 1471
        source_file: /src/libtpms/src/tpm2/Global.h
    typedefs:
    - item_type: typedef
      name: AUTH_VALUE[sizeof(TPMU_HA)]
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/libtpms/src/tpm2/Global.h
      type: BYTE
    - item_type: typedef
      name: TIME_INFO[sizeof(TPMS_TIME_INFO)]
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/libtpms/src/tpm2/Global.h
      type: BYTE
    - item_type: typedef
      name: NAME[sizeof(TPMU_NAME)]
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/libtpms/src/tpm2/Global.h
      type: BYTE
    - item_type: typedef
      name: CLOCK_NONCE
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/libtpms/src/tpm2/Global.h
      type: UINT64
    - item_type: typedef
      name: CLOCK_NONCE
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/libtpms/src/tpm2/Global.h
      type: UINT32
    - item_type: typedef
      name: HASH_OBJECT_BUFFER[sizeof(HASH_OBJECT)]
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/libtpms/src/tpm2/Global.h
      type: BYTE
    - item_type: typedef
      name: ANY_OBJECT_BUFFER[sizeof(ANY_OBJECT)]
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/libtpms/src/tpm2/Global.h
      type: BYTE
    - item_type: typedef
      name: AUTH_ROLE
      pos:
        line_end: 321
        line_start: 321
        source_file: /src/libtpms/src/tpm2/Global.h
      type: UINT32
    - item_type: typedef
      name: SESSION_BUF[sizeof(SESSION)]
      pos:
        line_end: 486
        line_start: 486
        source_file: /src/libtpms/src/tpm2/Global.h
      type: BYTE
    - item_type: typedef
      name: NV_REF
      pos:
        line_end: 562
        line_start: 562
        source_file: /src/libtpms/src/tpm2/Global.h
      type: UINT32
    - item_type: typedef
      name: '*  NV_RAM_REF'
      pos:
        line_end: 564
        line_start: 564
        source_file: /src/libtpms/src/tpm2/Global.h
      type: BYTE
    - item_type: typedef
      name: UPDATE_TYPE
      pos:
        line_end: 724
        line_start: 724
        source_file: /src/libtpms/src/tpm2/Global.h
      type: BYTE
    - item_type: typedef
      name: COMMAND_INDEX
      pos:
        line_end: 1243
        line_start: 1243
        source_file: /src/libtpms/src/tpm2/Global.h
      type: UINT16
    - item_type: typedef
      name: (FailFunction)(const char *function, int line, int code)
      pos:
        line_end: 1518
        line_start: 1518
        source_file: /src/libtpms/src/tpm2/Global.h
      type: void
    union:
    - fields:
      - name: entity
        type: OBJECT
      - name: hash
        type: HASH_OBJECT
      item_type: union
      name: ANY_OBJECT
      pos:
        line_end: 314
        line_start: 310
        source_file: /src/libtpms/src/tpm2/Global.h
    - fields:
      - name: intVal
        type: UINT64
      - name: pin
        type: PIN_DATA
      item_type: union
      name: NV_PIN
      pos:
        line_end: 591
        line_start: 587
        source_file: /src/libtpms/src/tpm2/Global.h
- function_names:
  - HandleGetType
  - NextPermanentHandle
  - ACT_IMPLEMENTED_CASE
  - PermanentCapGetHandles
  - PermanentCapGetOneHandle
  - PermanentHandleGetPolicy
  - PermanentHandleGetOnePolicy
  source_file: /src/libtpms/src/tpm2/Handle.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/RsaTestData.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RSA_TEST_KEY_SIZE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libtpms/src/tpm2/RsaTestData.h
      type_or_value: '256'
    - item_type: preproc_def
      name: OAEP_TEST_LABEL
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/libtpms/src/tpm2/RsaTestData.h
      type_or_value: '"OAEP Test Value"'
    structs:
    - fields:
      - name: size
        type: UINT16
      - name: buffer[RSA_TEST_KEY_SIZE]
        type: BYTE
      item_type: struct
      name: TPM2B_RSA_TEST_KEY
      pos:
        line_end: 70
        line_start: 66
        source_file: /src/libtpms/src/tpm2/RsaTestData.h
    - fields:
      - name: size
        type: UINT16
      - name: buffer[RSA_TEST_KEY_SIZE / 2]
        type: BYTE
      item_type: struct
      name: TPM2B_RSA_TEST_PRIME
      pos:
        line_end: 78
        line_start: 74
        source_file: /src/libtpms/src/tpm2/RsaTestData.h
    typedefs:
    - item_type: typedef
      name: TPM2B_RSA_TEST_VALUE
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/libtpms/src/tpm2/RsaTestData.h
      type: TPM2B_RSA_TEST_KEY
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ChangePPS_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ChangePPS_authHandle
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/ChangePPS_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_PLATFORM
      item_type: struct
      name: ChangePPS_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/ChangePPS_fp.h
    typedefs: []
    union: []
- function_names:
  - TO_ECC_56
  - TO_ECC_48
  - TO_ECC_40
  - TO_ECC_32
  - TO_ECC_24
  - TO_ECC_16
  - TO_ECC_8
  - TO_ECC_24
  - TO_ECC_16
  - TO_ECC_8
  - TO_ECC_192
  - TO_ECC_224
  - TO_ECC_256
  - TO_ECC_384
  - TO_ECC_528
  - TO_ECC_640
  - BN_MIN_ALLOC
  - ECC_CONST
  - BnGetCurveData
  source_file: /src/libtpms/src/tpm2/BnEccConstants.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TO_ECC_64
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libtpms/src/tpm2/BnEccConstants.c
      type_or_value: TO_CRYPT_WORD_64
    - item_type: preproc_def
      name: TO_ECC_32
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/BnEccConstants.c
      type_or_value: BIG_ENDIAN_BYTES_TO_UINT32
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmEcc_Signature_ECDSA_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CryptRunSelfTests
  - CryptSelfTest
  - CryptIncrementalSelfTest
  - CryptInitializeToTest
  - CryptTestAlgorithm
  source_file: /src/libtpms/src/tpm2/CryptSelfTest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Vendor_TCG_Test_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_Vendor_TCG_Test_inputData
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/Vendor_TCG_Test_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: inputData
        type: TPM2B_DATA
      item_type: struct
      name: Vendor_TCG_Test_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/Vendor_TCG_Test_fp.h
    - fields:
      - name: outputData
        type: TPM2B_DATA
      item_type: struct
      name: Vendor_TCG_Test_Out
      pos:
        line_end: 79
        line_start: 76
        source_file: /src/libtpms/src/tpm2/Vendor_TCG_Test_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/GetSessionAuditDigest_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_GetSessionAuditDigest_privacyAdminHandle
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/GetSessionAuditDigest_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_GetSessionAuditDigest_signHandle
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/GetSessionAuditDigest_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_GetSessionAuditDigest_sessionHandle
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/GetSessionAuditDigest_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_3)
    - item_type: preproc_def
      name: RC_GetSessionAuditDigest_qualifyingData
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/GetSessionAuditDigest_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_GetSessionAuditDigest_inScheme
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/GetSessionAuditDigest_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: privacyAdminHandle
        type: TPMI_RH_ENDORSEMENT
      - name: signHandle
        type: TPMI_DH_OBJECT
      - name: sessionHandle
        type: TPMI_SH_HMAC
      - name: qualifyingData
        type: TPM2B_DATA
      - name: inScheme
        type: TPMT_SIG_SCHEME
      item_type: struct
      name: GetSessionAuditDigest_In
      pos:
        line_end: 77
        line_start: 70
        source_file: /src/libtpms/src/tpm2/GetSessionAuditDigest_fp.h
    - fields:
      - name: auditInfo
        type: TPM2B_ATTEST
      - name: signature
        type: TPMT_SIGNATURE
      item_type: struct
      name: GetSessionAuditDigest_Out
      pos:
        line_end: 84
        line_start: 80
        source_file: /src/libtpms/src/tpm2/GetSessionAuditDigest_fp.h
    typedefs: []
    union: []
- function_names:
  - _plat__LocalityGet
  - _plat__LocalitySet
  source_file: /src/libtpms/src/tpm2/LocalityPlat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TimePowerOn
  - TimeNewEpoch
  - TimeStartup
  - TimeClockUpdate
  - TimeUpdate
  - TimeUpdateToCurrent
  - TimeSetAdjustRate
  - TimeGetMarshaled
  - TimeFillInfo
  source_file: /src/libtpms/src/tpm2/Time.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CLOCK_UPDATE_MASK
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/libtpms/src/tpm2/Time.c
      type_or_value: ((1ULL << NV_CLOCK_UPDATE_INTERVAL) - 1)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmMath_Util_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/SetCapability_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SetCapability_authHandle
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libtpms/src/tpm2/SetCapability_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: SetCapability_setCapabilityData
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libtpms/src/tpm2/SetCapability_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_HIERARCHY
      - name: setCapabilityData
        type: TPM2B_SET_CAPABILITY_DATA
      item_type: struct
      name: SetCapability_In
      pos:
        line_end: 71
        line_start: 67
        source_file: /src/libtpms/src/tpm2/SetCapability_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/LibtpmsCallbacks.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIBTPMS_CALLBACK_FALLTHROUGH
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/libtpms/src/tpm2/LibtpmsCallbacks.h
      type_or_value: '-2'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Certify_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_Certify_objectHandle
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/Certify_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Certify_signHandle
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/Certify_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_Certify_qualifyingData
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/Certify_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Certify_inScheme
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/Certify_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: objectHandle
        type: TPMI_DH_OBJECT
      - name: signHandle
        type: TPMI_DH_OBJECT
      - name: qualifyingData
        type: TPM2B_DATA
      - name: inScheme
        type: TPMT_SIG_SCHEME
      item_type: struct
      name: Certify_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/Certify_fp.h
    - fields:
      - name: certifyInfo
        type: TPM2B_ATTEST
      - name: signature
        type: TPMT_SIGNATURE
      item_type: struct
      name: Certify_Out
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/libtpms/src/tpm2/Certify_fp.h
    typedefs: []
    union: []
- function_names:
  - libtpms_plat__NVEnable
  - libtpms_plat__NVDisable
  - libtpms_plat__IsNvAvailable
  - libtpms_plat__NvCommit
  - libtpms_plat__PhysicalPresenceAsserted
  source_file: /src/libtpms/src/tpm2/LibtpmsCallbacks.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/AlgorithmTests_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/DebugHelpers_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TpmEcc_SignEcSm2
  - TpmEcc_ValidateSignatureEcSm2
  source_file: /src/libtpms/src/tpm2/TpmEcc_Signature_SM2.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2_GetRandom
  - TPM2_StirRandom
  source_file: /src/libtpms/src/tpm2/RandomCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/DictionaryAttackLockReset_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_DictionaryAttackLockReset_lockHandle
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/DictionaryAttackLockReset_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: lockHandle
        type: TPMI_RH_LOCKOUT
      item_type: struct
      name: DictionaryAttackLockReset_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/DictionaryAttackLockReset_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/GetCommandAuditDigest_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_GetCommandAuditDigest_privacyHandle
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/GetCommandAuditDigest_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_GetCommandAuditDigest_signHandle
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/GetCommandAuditDigest_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_GetCommandAuditDigest_qualifyingData
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/GetCommandAuditDigest_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_GetCommandAuditDigest_inScheme
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/GetCommandAuditDigest_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: privacyHandle
        type: TPMI_RH_ENDORSEMENT
      - name: signHandle
        type: TPMI_DH_OBJECT
      - name: qualifyingData
        type: TPM2B_DATA
      - name: inScheme
        type: TPMT_SIG_SCHEME
      item_type: struct
      name: GetCommandAuditDigest_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/GetCommandAuditDigest_fp.h
    - fields:
      - name: auditInfo
        type: TPM2B_ATTEST
      - name: signature
        type: TPMT_SIGNATURE
      item_type: struct
      name: GetCommandAuditDigest_Out
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/libtpms/src/tpm2/GetCommandAuditDigest_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/EventSequenceComplete_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_EventSequenceComplete_pcrHandle
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/EventSequenceComplete_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_EventSequenceComplete_sequenceHandle
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/EventSequenceComplete_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_EventSequenceComplete_buffer
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/EventSequenceComplete_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: pcrHandle
        type: TPMI_DH_PCR
      - name: sequenceHandle
        type: TPMI_DH_OBJECT
      - name: buffer
        type: TPM2B_MAX_BUFFER
      item_type: struct
      name: EventSequenceComplete_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/EventSequenceComplete_fp.h
    - fields:
      - name: results
        type: TPML_DIGEST_VALUES
      item_type: struct
      name: EventSequenceComplete_Out
      pos:
        line_end: 81
        line_start: 78
        source_file: /src/libtpms/src/tpm2/EventSequenceComplete_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/SymmetricTest.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: 'YES'
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SET
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: '1'
    - item_type: preproc_def
      name: 'NO'
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CLEAR
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: '0'
    - item_type: preproc_def
      name: 'TRUE'
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: '1'
    - item_type: preproc_def
      name: 'FALSE'
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: DEBUG
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: 'YES'
    - item_type: preproc_def
      name: SIMULATION
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: "NO\t\t\t// libtpms: changed to NO"
    - item_type: preproc_def
      name: CRYPTO_LIB_REPORTING
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: "NO\t\t\t// libtpms: NO"
    - item_type: preproc_def
      name: DRBG_DEBUG_PRINT
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: (NO  * DEBUG)
    - item_type: preproc_def
      name: CERTIFYX509_DEBUG
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: "(NO * DEBUG)\t// libtpms: NO"
    - item_type: preproc_def
      name: USE_DEBUG_RNG
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: (NO  * DEBUG)
    - item_type: preproc_def
      name: RSA_INSTRUMENT
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: (NO  * DEBUG)
    - item_type: preproc_def
      name: USE_RSA_KEY_CACHE
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: (NO  * DEBUG)
    - item_type: preproc_def
      name: USE_KEY_CACHE_FILE
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: (NO  * DEBUG)
    - item_type: preproc_def
      name: ALLOW_FORCE_FAILURE_MODE
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: "NO\t\t// libtpms: NO"
    - item_type: preproc_def
      name: LIBRARY_COMPATIBILITY_CHECK
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: "YES\t\t// libtpms: YES"
    - item_type: preproc_def
      name: COMPILER_CHECKS
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: 'YES'
    - item_type: preproc_def
      name: RUNTIME_SIZE_CHECKS
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: "NO\t\t// libtpms: NO"
    - item_type: preproc_def
      name: FIPS_COMPLIANT
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: "NO\t\t// libtpms: NO"
    - item_type: preproc_def
      name: USE_SPEC_COMPLIANT_PROOFS
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: 'YES'
    - item_type: preproc_def
      name: SKIP_PROOF_ERRORS
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: TABLE_DRIVEN_DISPATCH
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: 'YES'
    - item_type: preproc_def
      name: TABLE_DRIVEN_MARSHAL
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: USE_MARSHALING_DEFINES
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: 'YES'
    - item_type: preproc_def
      name: COMPRESSED_LISTS
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: 'NO '
    - item_type: preproc_def
      name: USE_BIT_FIELD_STRUCTURES
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RSA_KEY_SIEVE
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: 'YES'
    - item_type: preproc_def
      name: _DRBG_STATE_SAVE
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: 'YES'
    - item_type: preproc_def
      name: USE_DA_USED
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: "YES\t\t// libtpms: YES"
    - item_type: preproc_def
      name: ENABLE_SELF_TESTS
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: 'YES'
    - item_type: preproc_def
      name: CLOCK_STOPS
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: ACCUMULATE_SELF_HEAL_TIMER
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: 'YES'
    - item_type: preproc_def
      name: FAIL_TRACE
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/libtpms/src/tpm2/TpmBuildSwitches.h
      type_or_value: 'YES'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/StirRandom_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_StirRandom_inData
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/StirRandom_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: inData
        type: TPM2B_SENSITIVE_DATA
      item_type: struct
      name: StirRandom_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/StirRandom_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/IoBuffers_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509FindExtensionByOID
  - X509GetExtensionBits
  - X509ProcessExtensions
  - X509AddSigningAlgorithm
  - X509AddPublicKey
  - X509PushAlgorithmIdentifierSequence
  source_file: /src/libtpms/src/tpm2/X509_spt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/SetAlgorithmSet_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_SetAlgorithmSet_authHandle
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/SetAlgorithmSet_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_SetAlgorithmSet_algorithmSet
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/SetAlgorithmSet_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_PLATFORM
      - name: algorithmSet
        type: UINT32
      item_type: struct
      name: SetAlgorithmSet_In
      pos:
        line_end: 75
        line_start: 71
        source_file: /src/libtpms/src/tpm2/SetAlgorithmSet_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Response_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NIST_P192_ID
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: TPM_ECC_NIST_P192
    - item_type: preproc_def
      name: NIST_P192_KEY_SIZE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '192'
    - item_type: preproc_def
      name: NIST_P224_ID
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: TPM_ECC_NIST_P224
    - item_type: preproc_def
      name: NIST_P224_KEY_SIZE
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '224'
    - item_type: preproc_def
      name: NIST_P256_ID
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: TPM_ECC_NIST_P256
    - item_type: preproc_def
      name: NIST_P256_KEY_SIZE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '256'
    - item_type: preproc_def
      name: NIST_P384_ID
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: TPM_ECC_NIST_P384
    - item_type: preproc_def
      name: NIST_P384_KEY_SIZE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '384'
    - item_type: preproc_def
      name: NIST_P521_ID
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: TPM_ECC_NIST_P521
    - item_type: preproc_def
      name: NIST_P521_KEY_SIZE
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '521'
    - item_type: preproc_def
      name: BN_P256_ID
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: TPM_ECC_BN_P256
    - item_type: preproc_def
      name: BN_P256_KEY_SIZE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '256'
    - item_type: preproc_def
      name: BN_P638_ID
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: TPM_ECC_BN_P638
    - item_type: preproc_def
      name: BN_P638_KEY_SIZE
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '638'
    - item_type: preproc_def
      name: SM2_P256_ID
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: TPM_ECC_SM2_P256
    - item_type: preproc_def
      name: SM2_P256_KEY_SIZE
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '256'
    - item_type: preproc_def
      name: BP_P256_R1_ID
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: TPM_ECC_BP_P256_R1
    - item_type: preproc_def
      name: BP_P256_R1_KEY_SIZE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '256'
    - item_type: preproc_def
      name: BP_P384_R1_ID
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: TPM_ECC_BP_P384_R1
    - item_type: preproc_def
      name: BP_P384_R1_KEY_SIZE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '384'
    - item_type: preproc_def
      name: BP_P512_R1_ID
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: TPM_ECC_BP_P512_R1
    - item_type: preproc_def
      name: BP_P512_R1_KEY_SIZE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '512'
    - item_type: preproc_def
      name: CURVE_25519_ID
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: TPM_ECC_CURVE_25519
    - item_type: preproc_def
      name: CURVE_25519_KEY_SIZE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '256'
    - item_type: preproc_def
      name: CURVE_448_ID
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: TPM_ECC_CURVE_448
    - item_type: preproc_def
      name: CURVE_448_KEY_SIZE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '448'
    - item_type: preproc_def
      name: ECC_CURVES
      pos:
        line_end: 132
        line_start: 124
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: "{                                                                    \\\n
        \         TPM_ECC_NIST_P192, TPM_ECC_NIST_P224, TPM_ECC_NIST_P256,         \\\n
        \             TPM_ECC_NIST_P384, TPM_ECC_NIST_P521, TPM_ECC_BN_P256,       \\\n
        \             TPM_ECC_BN_P638, TPM_ECC_SM2_P256, TPM_ECC_BP_P256_R1,       \\\n
        \             TPM_ECC_BP_P384_R1, TPM_ECC_BP_P512_R1, TPM_ECC_CURVE_25519,
        \\\n              TPM_ECC_CURVE_448                                            \\\n
        \     }"
    - item_type: preproc_def
      name: ECC_CURVE_COUNT
      pos:
        line_end: 137
        line_start: 133
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: "(ECC_NIST_P192 + ECC_NIST_P224 + ECC_NIST_P256 + ECC_NIST_P384
        + ECC_NIST_P521 \\\n       + ECC_BN_P256 + ECC_BN_P638 + ECC_SM2_P256 + ECC_BP_P256_R1
        + ECC_BP_P384_R1  \\\n       + ECC_BP_P512_R1 + ECC_CURVE_25519 + ECC_CURVE_448)"
    - item_type: preproc_def
      name: MAX_ECC_KEY_BITS
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: BN_P638_KEY_SIZE
    - item_type: preproc_def
      name: MAX_ECC_KEY_BITS
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: NIST_P521_KEY_SIZE
    - item_type: preproc_def
      name: MAX_ECC_KEY_BITS
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: BP_P512_R1_KEY_SIZE
    - item_type: preproc_def
      name: MAX_ECC_KEY_BITS
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: CURVE_448_KEY_SIZE
    - item_type: preproc_def
      name: MAX_ECC_KEY_BITS
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: NIST_P384_KEY_SIZE
    - item_type: preproc_def
      name: MAX_ECC_KEY_BITS
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: BP_P384_R1_KEY_SIZE
    - item_type: preproc_def
      name: MAX_ECC_KEY_BITS
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: NIST_P256_KEY_SIZE
    - item_type: preproc_def
      name: MAX_ECC_KEY_BITS
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: BN_P256_KEY_SIZE
    - item_type: preproc_def
      name: MAX_ECC_KEY_BITS
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: SM2_P256_KEY_SIZE
    - item_type: preproc_def
      name: MAX_ECC_KEY_BITS
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: CURVE_25519_KEY_SIZE
    - item_type: preproc_def
      name: MAX_ECC_KEY_BITS
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: BP_P256_R1_KEY_SIZE
    - item_type: preproc_def
      name: MAX_ECC_KEY_BITS
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: NIST_P224_KEY_SIZE
    - item_type: preproc_def
      name: MAX_ECC_KEY_BITS
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: NIST_P192_KEY_SIZE
    - item_type: preproc_def
      name: MAX_ECC_KEY_BYTES
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: ((MAX_ECC_KEY_BITS + 7) / 8)
    - item_type: preproc_def
      name: RSA_KEY_SIZES_BITS
      pos:
        line_end: 187
        line_start: 184
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: "(RSA_1024 * 1024), (RSA_2048 * 2048), (RSA_3072 * 3072), (RSA_4096
        * 4096), \\\n          (RSA_16384 * 16384)"
    - item_type: preproc_def
      name: RSA_MAX_KEY_SIZE_BITS
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: RSA_MAX_KEY_SIZE_BITS
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: RSA_MAX_KEY_SIZE_BITS
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '3072'
    - item_type: preproc_def
      name: RSA_MAX_KEY_SIZE_BITS
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: RSA_MAX_KEY_SIZE_BITS
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: MAX_RSA_KEY_BITS
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: RSA_MAX_KEY_SIZE_BITS
    - item_type: preproc_def
      name: MAX_RSA_KEY_BYTES
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: BITS_TO_BYTES(RSA_MAX_KEY_SIZE_BITS)
    - item_type: preproc_def
      name: AES_KEY_SIZES_BITS
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: (AES_128 * 128), (AES_192 * 192), (AES_256 * 256)
    - item_type: preproc_def
      name: AES_MAX_KEY_SIZE_BITS
      pos:
        line_end: 210
        line_start: 208
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: MAX((AES_256 * 256), MAX((AES_192 * 192), (AES_128 * 128)))
    - item_type: preproc_def
      name: MAX_AES_KEY_BITS
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: AES_MAX_KEY_SIZE_BITS
    - item_type: preproc_def
      name: MAX_AES_KEY_BYTES
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: BITS_TO_BYTES(MAX_AES_KEY_BITS)
    - item_type: preproc_def
      name: AES_BLOCK_SIZES
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: (AES_128 * 128 / 8), (AES_192 * 128 / 8), (AES_256 * 128 / 8)
    - item_type: preproc_def
      name: MAX_AES_BLOCK_SIZE_BYTES
      pos:
        line_end: 215
        line_start: 213
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: MAX((AES_256 * 128 / 8), MAX((AES_192 * 128 / 8), (AES_128 *
        128 / 8)))
    - item_type: preproc_def
      name: AES_MAX_BLOCK_SIZE
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: MAX_AES_BLOCK_SIZE_BYTES
    - item_type: preproc_def
      name: SM4_KEY_SIZES_BITS
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: (SM4_128 * 128)
    - item_type: preproc_def
      name: SM4_MAX_KEY_SIZE_BITS
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: (SM4_128 * 128)
    - item_type: preproc_def
      name: MAX_SM4_KEY_BITS
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: SM4_MAX_KEY_SIZE_BITS
    - item_type: preproc_def
      name: MAX_SM4_KEY_BYTES
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: BITS_TO_BYTES(MAX_SM4_KEY_BITS)
    - item_type: preproc_def
      name: SM4_BLOCK_SIZES
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: (SM4_128 * 128 / 8)
    - item_type: preproc_def
      name: MAX_SM4_BLOCK_SIZE_BYTES
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: (SM4_128 * 128 / 8)
    - item_type: preproc_def
      name: SM4_MAX_BLOCK_SIZE
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: MAX_SM4_BLOCK_SIZE_BYTES
    - item_type: preproc_def
      name: CAMELLIA_KEY_SIZES_BITS
      pos:
        line_end: 229
        line_start: 227
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: (CAMELLIA_128 * 128), (CAMELLIA_192 * 192), (CAMELLIA_256 * 256)
    - item_type: preproc_def
      name: CAMELLIA_MAX_KEY_SIZE_BITS
      pos:
        line_end: 231
        line_start: 229
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: MAX((CAMELLIA_256 * 256), MAX((CAMELLIA_192 * 192), (CAMELLIA_128
        * 128)))
    - item_type: preproc_def
      name: MAX_CAMELLIA_KEY_BITS
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: CAMELLIA_MAX_KEY_SIZE_BITS
    - item_type: preproc_def
      name: MAX_CAMELLIA_KEY_BYTES
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: BITS_TO_BYTES(MAX_CAMELLIA_KEY_BITS)
    - item_type: preproc_def
      name: CAMELLIA_BLOCK_SIZES
      pos:
        line_end: 235
        line_start: 233
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: (CAMELLIA_128 * 128 / 8), (CAMELLIA_192 * 128 / 8), (CAMELLIA_256
        * 128 / 8)
    - item_type: preproc_def
      name: MAX_CAMELLIA_BLOCK_SIZE_BYTES
      pos:
        line_end: 238
        line_start: 235
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: "MAX((CAMELLIA_256 * 128 / 8),     \\\n        MAX((CAMELLIA_192
        * 128 / 8), (CAMELLIA_128 * 128 / 8)))"
    - item_type: preproc_def
      name: CAMELLIA_MAX_BLOCK_SIZE
      pos:
        line_end: 239
        line_start: 238
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: MAX_CAMELLIA_BLOCK_SIZE_BYTES
    - item_type: preproc_def
      name: TDES_KEY_SIZES_BITS
      pos:
        line_end: 242
        line_start: 241
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: (TDES_128 * 128), (TDES_192 * 192)
    - item_type: preproc_def
      name: TDES_MAX_KEY_SIZE_BITS
      pos:
        line_end: 244
        line_start: 242
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: MAX((TDES_192 * 192), (TDES_128 * 128))
    - item_type: preproc_def
      name: MAX_TDES_KEY_BITS
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: TDES_MAX_KEY_SIZE_BITS
    - item_type: preproc_def
      name: MAX_TDES_KEY_BYTES
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: BITS_TO_BYTES(MAX_TDES_KEY_BITS)
    - item_type: preproc_def
      name: TDES_BLOCK_SIZES
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: (TDES_128 * 8), (TDES_192 * 8)
    - item_type: preproc_def
      name: MAX_TDES_BLOCK_SIZE_BYTES
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: MAX((TDES_192 * 8), (TDES_128 * 8))
    - item_type: preproc_def
      name: TDES_MAX_BLOCK_SIZE
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: MAX_TDES_BLOCK_SIZE_BYTES
    - item_type: preproc_def
      name: SYM_COUNT
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: "ALG_AES + ALG_SM4 + ALG_CAMELLIA + ALG_TDES\t\t\t// libtpms
        changed begin"
    - item_type: preproc_def
      name: MAX_SYM_BLOCK_SIZE
      pos:
        line_end: 256
        line_start: 253
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: "MAX(TDES_MAX_BLOCK_SIZE, \\\n    MAX(CAMELLIA_MAX_BLOCK_SIZE,
        MAX(SM4_MAX_BLOCK_SIZE, AES_MAX_BLOCK_SIZE)))"
    - item_type: preproc_def
      name: MAX_SYM_KEY_BITS
      pos:
        line_end: 258
        line_start: 256
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: MAX(CAMELLIA_MAX_KEY_SIZE_BITS, MAX(SM4_MAX_KEY_SIZE_BITS, AES_MAX_KEY_SIZE_BITS))
    - item_type: preproc_def
      name: MAX_SYM_KEY_BYTES
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: ((MAX_SYM_KEY_BITS + 7) / 8)
    - item_type: preproc_def
      name: SHA1_DIGEST_SIZE
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '20'
    - item_type: preproc_def
      name: SHA1_BLOCK_SIZE
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '64'
    - item_type: preproc_def
      name: SHA256_DIGEST_SIZE
      pos:
        line_end: 269
        line_start: 268
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '32'
    - item_type: preproc_def
      name: SHA256_BLOCK_SIZE
      pos:
        line_end: 270
        line_start: 269
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '64'
    - item_type: preproc_def
      name: SHA384_DIGEST_SIZE
      pos:
        line_end: 273
        line_start: 272
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '48'
    - item_type: preproc_def
      name: SHA384_BLOCK_SIZE
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '128'
    - item_type: preproc_def
      name: SHA512_DIGEST_SIZE
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '64'
    - item_type: preproc_def
      name: SHA512_BLOCK_SIZE
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '128'
    - item_type: preproc_def
      name: SM3_256_DIGEST_SIZE
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '32'
    - item_type: preproc_def
      name: SM3_256_BLOCK_SIZE
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '64'
    - item_type: preproc_def
      name: SHA3_256_DIGEST_SIZE
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '32'
    - item_type: preproc_def
      name: SHA3_256_BLOCK_SIZE
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '136'
    - item_type: preproc_def
      name: SHA3_384_DIGEST_SIZE
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '48'
    - item_type: preproc_def
      name: SHA3_384_BLOCK_SIZE
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '104'
    - item_type: preproc_def
      name: SHA3_512_DIGEST_SIZE
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '64'
    - item_type: preproc_def
      name: SHA3_512_BLOCK_SIZE
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: '72'
    - item_type: preproc_def
      name: HASH_COUNT
      pos:
        line_end: 299
        line_start: 296
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: "(ALG_SHA1 + ALG_SHA256 + ALG_SHA384 + ALG_SHA512 + ALG_SM3_256
        + ALG_SHA3_256 \\\n     + ALG_SHA3_384 + ALG_SHA3_512)"
    - item_type: preproc_def
      name: MAX_HASH_BLOCK_SIZE
      pos:
        line_end: 312
        line_start: 303
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: "MAX((ALG_SHA3_512 * SHA3_512_BLOCK_SIZE),                     \\\n
        \       MAX((ALG_SHA3_384 * SHA3_384_BLOCK_SIZE),                 \\\n            MAX((ALG_SHA3_256
        * SHA3_256_BLOCK_SIZE),             \\\n                MAX((ALG_SM3_256 *
        SM3_256_BLOCK_SIZE),           \\\n                    MAX((ALG_SHA512 * SHA512_BLOCK_SIZE),
        \        \\\n                        MAX((ALG_SHA384 * SHA384_BLOCK_SIZE),
        \    \\\n                            MAX((ALG_SHA256 * SHA256_BLOCK_SIZE),
        \\\n                                (ALG_SHA1 * SHA1_BLOCK_SIZE))))))))"
    - item_type: preproc_def
      name: MAX_HASH_DIGEST_SIZE
      pos:
        line_end: 322
        line_start: 313
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: "MAX((ALG_SHA3_512 * SHA3_512_DIGEST_SIZE),                     \\\n
        \       MAX((ALG_SHA3_384 * SHA3_384_DIGEST_SIZE),                 \\\n            MAX((ALG_SHA3_256
        * SHA3_256_DIGEST_SIZE),             \\\n                MAX((ALG_SM3_256
        * SM3_256_DIGEST_SIZE),           \\\n                    MAX((ALG_SHA512
        * SHA512_DIGEST_SIZE),         \\\n                        MAX((ALG_SHA384
        * SHA384_DIGEST_SIZE),     \\\n                            MAX((ALG_SHA256
        * SHA256_DIGEST_SIZE), \\\n                                (ALG_SHA1 * SHA1_DIGEST_SIZE))))))))"
    - item_type: preproc_def
      name: MAX_DIGEST_SIZE
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type_or_value: MAX_HASH_DIGEST_SIZE
    structs: []
    typedefs:
    - item_type: typedef
      name: TPM2B_HASH_BLOCK
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/libtpms/src/tpm2/TpmAlgorithmDefines.h
      type: TPM2B_MAX_HASH_BLOCK
    union: []
- function_names:
  - UINT8_Unmarshal
  - INT8_Unmarshal
  - UINT16_Unmarshal
  - UINT32_Unmarshal
  - UINT64_Unmarshal
  - Array_Unmarshal
  - TPM2B_Unmarshal
  - TPM_KEY_BITS_Unmarshal
  - TPM_GENERATED_Unmarshal
  - TPM_ALG_ID_Unmarshal
  - TPM_ECC_CURVE_Unmarshal
  - TPM_CC_Unmarshal
  - TPM_CLOCK_ADJUST_Unmarshal
  - TPM_EO_Unmarshal
  - TPM_ST_Unmarshal
  - TPM_SU_Unmarshal
  - TPM_SE_Unmarshal
  - TPM_CAP_Unmarshal
  - TPM_PT_Unmarshal
  - TPM_PT_PCR_Unmarshal
  - TPM_HANDLE_Unmarshal
  - TPMA_ALGORITHM_Unmarshal
  - TPMA_OBJECT_Unmarshal
  - TPMA_SESSION_Unmarshal
  - TPMA_LOCALITY_Unmarshal
  - TPMA_CC_Unmarshal
  - TPMI_YES_NO_Unmarshal
  - TPMI_DH_OBJECT_Unmarshal
  - TPMI_DH_PARENT_Unmarshal
  - TPMI_DH_PERSISTENT_Unmarshal
  - TPMI_DH_ENTITY_Unmarshal
  - TPMI_DH_PCR_Unmarshal
  - TPMI_SH_AUTH_SESSION_Unmarshal
  - TPMI_SH_HMAC_Unmarshal
  - TPMI_SH_POLICY_Unmarshal
  - TPMI_DH_CONTEXT_Unmarshal
  - TPMI_DH_SAVED_Unmarshal
  - TPMI_RH_HIERARCHY_Unmarshal
  - TPMI_RH_ENABLES_Unmarshal
  - TPMI_RH_HIERARCHY_AUTH_Unmarshal
  - TPMI_RH_HIERARCHY_POLICY_Unmarshal
  - TPMI_RH_PLATFORM_Unmarshal
  - TPMI_RH_ENDORSEMENT_Unmarshal
  - TPMI_RH_PROVISION_Unmarshal
  - TPMI_RH_CLEAR_Unmarshal
  - TPMI_RH_NV_AUTH_Unmarshal
  - TPMI_RH_LOCKOUT_Unmarshal
  - TPMI_RH_NV_INDEX_Unmarshal
  - TPMI_RH_NV_DEFINED_INDEX_Unmarshal
  - TPMI_RH_NV_LEGACY_INDEX_Unmarshal
  - TPMI_RH_NV_EXP_INDEX_Unmarshal
  - TPMI_RH_AC_Unmarshal
  - TPMI_RH_ACT_Unmarshal
  - TPMI_ALG_HASH_Unmarshal
  - TPMI_ALG_SYM_Unmarshal
  - TPMI_ALG_SYM_OBJECT_Unmarshal
  - TPMI_ALG_SYM_MODE_Unmarshal
  - TPMI_ALG_KDF_Unmarshal
  - TPMI_ALG_SIG_SCHEME_Unmarshal
  - TPMI_ECC_KEY_EXCHANGE_Unmarshal
  - TPMI_ST_COMMAND_TAG_Unmarshal
  - TPMI_ALG_MAC_SCHEME_Unmarshal
  - TPMI_ALG_CIPHER_MODE_Unmarshal
  - TPMS_EMPTY_Unmarshal
  - TPMU_HA_Unmarshal
  - TPMT_HA_Unmarshal
  - TPM2B_DIGEST_Unmarshal
  - TPM2B_DATA_Unmarshal
  - TPM2B_NONCE_Unmarshal
  - TPM2B_AUTH_Unmarshal
  - TPM2B_EVENT_Unmarshal
  - TPM2B_MAX_BUFFER_Unmarshal
  - TPM2B_MAX_NV_BUFFER_Unmarshal
  - TPM2B_TIMEOUT_Unmarshal
  - TPM2B_IV_Unmarshal
  - TPM2B_NAME_Unmarshal
  - TPMS_PCR_SELECTION_Unmarshal
  - TPMT_TK_CREATION_Unmarshal
  - TPMT_TK_VERIFIED_Unmarshal
  - TPMT_TK_AUTH_Unmarshal
  - TPMT_TK_HASHCHECK_Unmarshal
  - TPMS_ALG_PROPERTY_Unmarshal
  - TPMS_TAGGED_PROPERTY_Unmarshal
  - TPMS_TAGGED_PCR_SELECT_Unmarshal
  - TPML_CC_Unmarshal
  - TPMS_TAGGED_POLICY_Unmarshal
  - TPML_CCA_Unmarshal
  - TPML_ALG_Unmarshal
  - TPML_HANDLE_Unmarshal
  - TPML_DIGEST_Unmarshal
  - TPML_DIGEST_VALUES_Unmarshal
  - TPML_PCR_SELECTION_Unmarshal
  - TPML_ALG_PROPERTY_Unmarshal
  - TPML_TAGGED_TPM_PROPERTY_Unmarshal
  - TPML_TAGGED_PCR_PROPERTY_Unmarshal
  - TPML_ECC_CURVE_Unmarshal
  - TPML_TAGGED_POLICY_Unmarshal
  - TPMU_CAPABILITIES_Unmarshal
  - TPMS_CAPABILITY_DATA_Unmarshal
  - TPMS_SET_CAPABILITY_DATA_Unmarshal
  - TPM2B_SET_CAPABILITY_DATA_Unmarshal
  - TPMS_CLOCK_INFO_Unmarshal
  - TPMS_TIME_INFO_Unmarshal
  - TPMS_TIME_ATTEST_INFO_Unmarshal
  - TPMS_CERTIFY_INFO_Unmarshal
  - TPMS_QUOTE_INFO_Unmarshal
  - TPMS_COMMAND_AUDIT_INFO_Unmarshal
  - TPMS_SESSION_AUDIT_INFO_Unmarshal
  - TPMS_CREATION_INFO_Unmarshal
  - TPMS_NV_CERTIFY_INFO_Unmarshal
  - TPMI_ST_ATTEST_Unmarshal
  - TPMU_ATTEST_Unmarshal
  - TPMS_ATTEST_Unmarshal
  - TPM2B_ATTEST_Unmarshal
  - TPMI_AES_KEY_BITS_Unmarshal
  - TPMI_CAMELLIA_KEY_BITS_Unmarshal
  - TPMI_SM4_KEY_BITS_Unmarshal
  - TPMI_TDES_KEY_BITS_Unmarshal
  - TPMU_SYM_KEY_BITS_Unmarshal
  - TPMU_SYM_MODE_Unmarshal
  - TPMT_SYM_DEF_Unmarshal
  - TPMT_SYM_DEF_OBJECT_Unmarshal
  - TPM2B_SYM_KEY_Unmarshal
  - TPMS_SYMCIPHER_PARMS_Unmarshal
  - TPM2B_LABEL_Unmarshal
  - TPMS_DERIVE_Unmarshal
  - TPM2B_SENSITIVE_DATA_Unmarshal
  - TPMS_SENSITIVE_CREATE_Unmarshal
  - TPM2B_SENSITIVE_CREATE_Unmarshal
  - TPMS_SCHEME_HASH_Unmarshal
  - TPMS_SCHEME_ECDAA_Unmarshal
  - TPMI_ALG_KEYEDHASH_SCHEME_Unmarshal
  - TPMS_SCHEME_HMAC_Unmarshal
  - TPMS_SCHEME_XOR_Unmarshal
  - TPMU_SCHEME_KEYEDHASH_Unmarshal
  - TPMT_KEYEDHASH_SCHEME_Unmarshal
  - TPMS_SIG_SCHEME_RSAPSS_Unmarshal
  - TPMS_SIG_SCHEME_RSASSA_Unmarshal
  - TPMS_SIG_SCHEME_ECDAA_Unmarshal
  - TPMS_SIG_SCHEME_ECDSA_Unmarshal
  - TPMS_SIG_SCHEME_ECSCHNORR_Unmarshal
  - TPMS_SIG_SCHEME_SM2_Unmarshal
  - TPMU_SIG_SCHEME_Unmarshal
  - TPMT_SIG_SCHEME_Unmarshal
  - TPMS_ENC_SCHEME_OAEP_Unmarshal
  - TPMS_ENC_SCHEME_RSAES_Unmarshal
  - TPMS_KEY_SCHEME_ECDH_Unmarshal
  - TPMS_KEY_SCHEME_ECMQV_Unmarshal
  - TPMS_KDF_SCHEME_KDF1_SP800_108_Unmarshal
  - TPMS_KDF_SCHEME_KDF1_SP800_56A_Unmarshal
  - TPMS_KDF_SCHEME_KDF2_Unmarshal
  - TPMS_KDF_SCHEME_MGF1_Unmarshal
  - TPMU_KDF_SCHEME_Unmarshal
  - TPMT_KDF_SCHEME_Unmarshal
  - TPMI_ALG_ASYM_SCHEME_Unmarshal
  - TPMU_ASYM_SCHEME_Unmarshal
  - TPMI_ALG_RSA_SCHEME_Unmarshal
  - TPMT_RSA_SCHEME_Unmarshal
  - TPMI_ALG_RSA_DECRYPT_Unmarshal
  - TPMT_RSA_DECRYPT_Unmarshal
  - TPM2B_PUBLIC_KEY_RSA_Unmarshal
  - TPMI_RSA_KEY_BITS_Unmarshal
  - TPM2B_PRIVATE_KEY_RSA_Unmarshal
  - TPM2B_ECC_PARAMETER_Unmarshal
  - TPMS_ECC_POINT_Unmarshal
  - TPM2B_ECC_POINT_Unmarshal
  - TPMI_ALG_ECC_SCHEME_Unmarshal
  - TPMI_ECC_CURVE_Unmarshal
  - TPMT_ECC_SCHEME_Unmarshal
  - TPMS_SIGNATURE_RSA_Unmarshal
  - TPMS_SIGNATURE_RSASSA_Unmarshal
  - TPMS_SIGNATURE_RSAPSS_Unmarshal
  - TPMS_SIGNATURE_ECC_Unmarshal
  - TPMS_SIGNATURE_ECDSA_Unmarshal
  - TPMS_SIGNATURE_ECDAA_Unmarshal
  - TPMS_SIGNATURE_SM2_Unmarshal
  - TPMS_SIGNATURE_ECSCHNORR_Unmarshal
  - TPMU_SIGNATURE_Unmarshal
  - TPMT_SIGNATURE_Unmarshal
  - TPM2B_ENCRYPTED_SECRET_Unmarshal
  - TPMI_ALG_PUBLIC_Unmarshal
  - TPMU_PUBLIC_ID_Unmarshal
  - TPMS_KEYEDHASH_PARMS_Unmarshal
  - TPMS_RSA_PARMS_Unmarshal
  - TPMS_ECC_PARMS_Unmarshal
  - TPMU_PUBLIC_PARMS_Unmarshal
  - TPMT_PUBLIC_PARMS_Unmarshal
  - TPMT_PUBLIC_Unmarshal
  - TPM2B_PUBLIC_Unmarshal
  - TPM2B_TEMPLATE_Unmarshal
  - TPMU_SENSITIVE_COMPOSITE_Unmarshal
  - TPMT_SENSITIVE_Unmarshal
  - TPM2B_SENSITIVE_Unmarshal
  - TPM2B_PRIVATE_Unmarshal
  - TPM2B_ID_OBJECT_Unmarshal
  - TPMA_NV_Unmarshal
  - TPMS_NV_PUBLIC_Unmarshal
  - TPM2B_NV_PUBLIC_Unmarshal
  - TPMA_NV_EXP_Unmarshal
  - TPMS_NV_PUBLIC_EXP_ATTR_Unmarshal
  - TPMU_NV_PUBLIC_2_Unmarshal
  - TPMT_NV_PUBLIC_2_Unmarshal
  - TPM2B_NV_PUBLIC_2_Unmarshal
  - TPM2B_CONTEXT_SENSITIVE_Unmarshal
  - TPM2B_CONTEXT_DATA_Unmarshal
  - TPMS_CONTEXT_Unmarshal
  - TPM_AT_Unmarshal
  - TPMU_SET_CAPABILITIES_Unmarshal
  - TPMS_SET_CAPABILITY_DATA_Unmarshal
  - TPM2B_SET_CAPABILITY_DATA_Unmarshal
  source_file: /src/libtpms/src/tpm2/Unmarshal.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: size
        type: UINT16
      - name: setCapabilityData
        type: TPMS_SET_CAPABILITY_DATA
      item_type: struct
      name: TPM2B_SET_CAPABILITY_DATA
      pos:
        line_end: 2599
        line_start: 2596
        source_file: /src/libtpms/src/tpm2/Unmarshal.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Load_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_Load_parentHandle
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/Load_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Load_inPrivate
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/Load_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Load_inPublic
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/Load_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: parentHandle
        type: TPMI_DH_OBJECT
      - name: inPrivate
        type: TPM2B_PRIVATE
      - name: inPublic
        type: TPM2B_PUBLIC
      item_type: struct
      name: Load_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/Load_fp.h
    - fields:
      - name: objectHandle
        type: TPM_HANDLE
      - name: name
        type: TPM2B_NAME
      item_type: struct
      name: Load_Out
      pos:
        line_end: 82
        line_start: 78
        source_file: /src/libtpms/src/tpm2/Load_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ObjectChangeAuth_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ObjectChangeAuth_objectHandle
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/ObjectChangeAuth_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_ObjectChangeAuth_parentHandle
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/ObjectChangeAuth_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_ObjectChangeAuth_newAuth
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/ObjectChangeAuth_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: objectHandle
        type: TPMI_DH_OBJECT
      - name: parentHandle
        type: TPMI_DH_OBJECT
      - name: newAuth
        type: TPM2B_AUTH
      item_type: struct
      name: ObjectChangeAuth_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/ObjectChangeAuth_fp.h
    - fields:
      - name: outPrivate
        type: TPM2B_PRIVATE
      item_type: struct
      name: ObjectChangeAuth_Out
      pos:
        line_end: 81
        line_start: 78
        source_file: /src/libtpms/src/tpm2/ObjectChangeAuth_fp.h
    typedefs: []
    union: []
- function_names:
  - TPM2_GetCapability
  - TPM2_TestParms
  - TPM2_SetCapability
  source_file: /src/libtpms/src/tpm2/CapabilityCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _plat__Signal_PowerOn
  - _plat__WasPowerLost
  - _plat__Signal_Reset
  - _plat__Signal_PowerOff
  source_file: /src/libtpms/src/tpm2/PowerPlat.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FillInAttestInfo
  - SignAttestInfo
  - IsSigningObject
  source_file: /src/libtpms/src/tpm2/Attest_spt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/DictionaryAttackParameters_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_DictionaryAttackParameters_lockHandle
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/DictionaryAttackParameters_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_DictionaryAttackParameters_newMaxTries
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/DictionaryAttackParameters_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_DictionaryAttackParameters_newRecoveryTime
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/DictionaryAttackParameters_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_DictionaryAttackParameters_lockoutRecovery
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/DictionaryAttackParameters_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    structs:
    - fields:
      - name: lockHandle
        type: TPMI_RH_LOCKOUT
      - name: newMaxTries
        type: UINT32
      - name: newRecoveryTime
        type: UINT32
      - name: lockoutRecovery
        type: UINT32
      item_type: struct
      name: DictionaryAttackParameters_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/DictionaryAttackParameters_fp.h
    typedefs: []
    union: []
- function_names:
  - TPM2_Duplicate
  - TPM2_Rewrap
  - TPM2_Import
  source_file: /src/libtpms/src/tpm2/DuplicationCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Unmarshal_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PCR_Extend_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PCR_Extend_pcrHandle
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/PCR_Extend_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PCR_Extend_digests
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/PCR_Extend_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: pcrHandle
        type: TPMI_DH_PCR
      - name: digests
        type: TPML_DIGEST_VALUES
      item_type: struct
      name: PCR_Extend_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PCR_Extend_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/SetPrimaryPolicy_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_SetPrimaryPolicy_authHandle
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/SetPrimaryPolicy_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_SetPrimaryPolicy_authPolicy
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/SetPrimaryPolicy_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_SetPrimaryPolicy_hashAlg
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/SetPrimaryPolicy_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_HIERARCHY_POLICY
      - name: authPolicy
        type: TPM2B_DIGEST
      - name: hashAlg
        type: TPMI_ALG_HASH
      item_type: struct
      name: SetPrimaryPolicy_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/SetPrimaryPolicy_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/X509_spt_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyOR_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyOR_policySession
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/PolicyOR_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyOR_pHashList
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/PolicyOR_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      - name: pHashList
        type: TPML_DIGEST
      item_type: struct
      name: PolicyOR_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyOR_fp.h
    typedefs: []
    union: []
- function_names:
  - MAX
  - MIN
  - SIZEOF_MEMBER
  source_file: /src/libtpms/src/tpm2/MinMax.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_Increment_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_NV_Increment_authHandle
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/NV_Increment_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_Increment_nvIndex
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/NV_Increment_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_NV_AUTH
      - name: nvIndex
        type: TPMI_RH_NV_INDEX
      item_type: struct
      name: NV_Increment_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/NV_Increment_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ClockSet_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ClockSet_auth
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/ClockSet_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_ClockSet_newTime
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/ClockSet_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: auth
        type: TPMI_RH_PROVISION
      - name: newTime
        type: UINT64
      item_type: struct
      name: ClockSet_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/ClockSet_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ExecCommand_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Policy_spt_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
  types:
    enum:
    - enumerators:
      - name: tpmPlatformAvailable
        value: '0x01'
      - name: tpmSupportsPP
        value: '0x08'
      - name: tpmUsesTbs
        value: '0x02'
      - name: tpmInRawMode
        value: '0x04'
      item_type: enum
      name: TpmEndPointInfo
      pos:
        line_end: 124
        line_start: 118
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
    preproc_defs:
    - item_type: preproc_def
      name: TPM_SIGNAL_POWER_ON
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TPM_SIGNAL_POWER_OFF
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TPM_SIGNAL_PHYS_PRES_ON
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TPM_SIGNAL_PHYS_PRES_OFF
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TPM_SIGNAL_HASH_START
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '5'
    - item_type: preproc_def
      name: TPM_SIGNAL_HASH_DATA
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '6'
    - item_type: preproc_def
      name: TPM_SIGNAL_HASH_END
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '7'
    - item_type: preproc_def
      name: TPM_SEND_COMMAND
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '8'
    - item_type: preproc_def
      name: TPM_SIGNAL_CANCEL_ON
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '9'
    - item_type: preproc_def
      name: TPM_SIGNAL_CANCEL_OFF
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '10'
    - item_type: preproc_def
      name: TPM_SIGNAL_NV_ON
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '11'
    - item_type: preproc_def
      name: TPM_SIGNAL_NV_OFF
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '12'
    - item_type: preproc_def
      name: TPM_SIGNAL_KEY_CACHE_ON
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '13'
    - item_type: preproc_def
      name: TPM_SIGNAL_KEY_CACHE_OFF
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '14'
    - item_type: preproc_def
      name: TPM_REMOTE_HANDSHAKE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '15'
    - item_type: preproc_def
      name: TPM_SET_ALTERNATIVE_RESULT
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '16'
    - item_type: preproc_def
      name: TPM_SIGNAL_RESET
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '17'
    - item_type: preproc_def
      name: TPM_SIGNAL_RESTART
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '18'
    - item_type: preproc_def
      name: TPM_SESSION_END
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '20'
    - item_type: preproc_def
      name: TPM_STOP
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '21'
    - item_type: preproc_def
      name: TPM_GET_COMMAND_RESPONSE_SIZES
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '25'
    - item_type: preproc_def
      name: TPM_ACT_GET_SIGNALED
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '26'
    - item_type: preproc_def
      name: TPM_TEST_FAILURE_MODE
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '30'
    - item_type: preproc_def
      name: TPM_SET_FW_HASH
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '35'
    - item_type: preproc_def
      name: TPM_SET_FW_SVN
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type_or_value: '36'
    structs:
    - fields:
      - name: BufferSize
        type: unsigned long
      - name: '* Buffer'
        type: unsigned char
      item_type: struct
      name: in_buffer
      pos:
        line_end: 136
        line_start: 132
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
    - fields:
      - name: BufferSize
        type: uint32_t
      - name: Buffer
        type: _OUTPUT_BUFFER
      item_type: struct
      name: out_buffer
      pos:
        line_end: 144
        line_start: 140
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
    typedefs:
    - item_type: typedef
      name: '* _OUTPUT_BUFFER'
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type: unsigned char
    - item_type: typedef
      name: DWORD
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type: unsigned long
    - item_type: typedef
      name: '*         LPVOID'
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/libtpms/src/tpm2/TpmTcpProtocol.h
      type: void
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Duplicate_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_Duplicate_objectHandle
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/Duplicate_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Duplicate_newParentHandle
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/Duplicate_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_Duplicate_encryptionKeyIn
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/Duplicate_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Duplicate_symmetricAlg
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/Duplicate_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: objectHandle
        type: TPMI_DH_OBJECT
      - name: newParentHandle
        type: TPMI_DH_OBJECT
      - name: encryptionKeyIn
        type: TPM2B_DATA
      - name: symmetricAlg
        type: TPMT_SYM_DEF_OBJECT
      item_type: struct
      name: Duplicate_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/Duplicate_fp.h
    - fields:
      - name: encryptionKeyOut
        type: TPM2B_DATA
      - name: duplicate
        type: TPM2B_PRIVATE
      - name: outSymSeed
        type: TPM2B_ENCRYPTED_SECRET
      item_type: struct
      name: Duplicate_Out
      pos:
        line_end: 84
        line_start: 79
        source_file: /src/libtpms/src/tpm2/Duplicate_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/FlushContext_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_FlushContext_flushHandle
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/FlushContext_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: flushHandle
        type: TPMI_DH_CONTEXT
      item_type: struct
      name: FlushContext_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/FlushContext_fp.h
    typedefs: []
    union: []
- function_names:
  - ActSignal
  - ActGetDataPointer
  - RETURN_ACT_POINTER
  - _plat__ACT_GetImplemented
  - _plat__ACT_GetRemaining
  - _plat__ACT_GetSignaled
  - _plat__ACT_SetSignaled
  - _plat__ACT_GetPending
  - _plat__ACT_UpdateCounter
  - _plat__ACT_EnableTicks
  - ActDecrement
  - _plat__ACT_Tick
  - DECREMENT_COUNT
  - ActZero
  - _plat__ACT_Initialize
  - ZERO_ACT
  source_file: /src/libtpms/src/tpm2/PlatformACT.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Memory_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/SequenceUpdate_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_SequenceUpdate_sequenceHandle
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/SequenceUpdate_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_SequenceUpdate_buffer
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/SequenceUpdate_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: sequenceHandle
        type: TPMI_DH_OBJECT
      - name: buffer
        type: TPM2B_MAX_BUFFER
      item_type: struct
      name: SequenceUpdate_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/SequenceUpdate_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PP_Commands_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PP_Commands_auth
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/PP_Commands_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PP_Commands_setList
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/PP_Commands_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PP_Commands_clearList
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/PP_Commands_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: auth
        type: TPMI_RH_PLATFORM
      - name: setList
        type: TPML_CC
      - name: clearList
        type: TPML_CC
      item_type: struct
      name: PP_Commands_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PP_Commands_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/SequenceComplete_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_SequenceComplete_sequenceHandle
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/SequenceComplete_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_SequenceComplete_buffer
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/SequenceComplete_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_SequenceComplete_hierarchy
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/SequenceComplete_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: sequenceHandle
        type: TPMI_DH_OBJECT
      - name: buffer
        type: TPM2B_MAX_BUFFER
      - name: hierarchy
        type: TPMI_RH_HIERARCHY
      item_type: struct
      name: SequenceComplete_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/SequenceComplete_fp.h
    - fields:
      - name: result
        type: TPM2B_DIGEST
      - name: validation
        type: TPMT_TK_HASHCHECK
      item_type: struct
      name: SequenceComplete_Out
      pos:
        line_end: 82
        line_start: 78
        source_file: /src/libtpms/src/tpm2/SequenceComplete_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Object_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NvDynamic_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - REVERSE_ENDIAN_16
  - REVERSE_ENDIAN_32
  - REVERSE_ENDIAN_64
  - NOT_REFERENCED
  - _REDUCE_WARNING_LEVEL_
  - TPM_STATIC_ASSERT
  source_file: /src/libtpms/src/tpm2/CompilerDependencies_msvc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIB_EXPORT
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/CompilerDependencies_msvc.h
      type_or_value: __declspec(dllexport)  // VS compatible version
    - item_type: preproc_def
      name: LIB_IMPORT
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/CompilerDependencies_msvc.h
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: TPM_INLINE
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/CompilerDependencies_msvc.h
      type_or_value: inline
    - item_type: preproc_def
      name: NORETURN
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libtpms/src/tpm2/CompilerDependencies_msvc.h
      type_or_value: __declspec(noreturn)
    - item_type: preproc_def
      name: _NORMAL_WARNING_LEVEL_
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/libtpms/src/tpm2/CompilerDependencies_msvc.h
      type_or_value: __pragma(warning(pop))
    structs: []
    typedefs: []
    union: []
- function_names:
  - IF_ACT_0_IMPLEMENTED
  - IF_ACT_1_IMPLEMENTED
  - IF_ACT_2_IMPLEMENTED
  - IF_ACT_3_IMPLEMENTED
  - IF_ACT_4_IMPLEMENTED
  - IF_ACT_5_IMPLEMENTED
  - IF_ACT_6_IMPLEMENTED
  - IF_ACT_7_IMPLEMENTED
  - IF_ACT_8_IMPLEMENTED
  - IF_ACT_9_IMPLEMENTED
  - IF_ACT_A_IMPLEMENTED
  - IF_ACT_B_IMPLEMENTED
  - IF_ACT_C_IMPLEMENTED
  - IF_ACT_D_IMPLEMENTED
  - IF_ACT_E_IMPLEMENTED
  - IF_ACT_F_IMPLEMENTED
  - FOR_EACH_ACT
  - CASE_ACT_HANDLE
  - CASE_ACT_NUMBER
  source_file: /src/libtpms/src/tpm2/ACT.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RH_ACT_0
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_1
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_2
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_3
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_4
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_5
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_6
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_7
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_8
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_9
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_A
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_B
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_C
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_D
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_E
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: RH_ACT_F
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: 'NO'
    - item_type: preproc_def
      name: TPM_RH_ACT_1
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: (TPM_RH_ACT_0 + 1)
    - item_type: preproc_def
      name: TPM_RH_ACT_2
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: (TPM_RH_ACT_0 + 2)
    - item_type: preproc_def
      name: TPM_RH_ACT_3
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: (TPM_RH_ACT_0 + 3)
    - item_type: preproc_def
      name: TPM_RH_ACT_4
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: (TPM_RH_ACT_0 + 4)
    - item_type: preproc_def
      name: TPM_RH_ACT_5
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: (TPM_RH_ACT_0 + 5)
    - item_type: preproc_def
      name: TPM_RH_ACT_6
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: (TPM_RH_ACT_0 + 6)
    - item_type: preproc_def
      name: TPM_RH_ACT_7
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: (TPM_RH_ACT_0 + 7)
    - item_type: preproc_def
      name: TPM_RH_ACT_8
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: (TPM_RH_ACT_0 + 8)
    - item_type: preproc_def
      name: TPM_RH_ACT_9
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: (TPM_RH_ACT_0 + 9)
    - item_type: preproc_def
      name: TPM_RH_ACT_A
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: (TPM_RH_ACT_0 + 0xA)
    - item_type: preproc_def
      name: TPM_RH_ACT_B
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: (TPM_RH_ACT_0 + 0xB)
    - item_type: preproc_def
      name: TPM_RH_ACT_C
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: (TPM_RH_ACT_0 + 0xC)
    - item_type: preproc_def
      name: TPM_RH_ACT_D
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: (TPM_RH_ACT_0 + 0xD)
    - item_type: preproc_def
      name: TPM_RH_ACT_E
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: (TPM_RH_ACT_0 + 0xE)
    - item_type: preproc_def
      name: TPM_RH_ACT_F
      pos:
        line_end: 236
        line_start: 235
        source_file: /src/libtpms/src/tpm2/ACT.h
      type_or_value: (TPM_RH_ACT_0 + 0xF)
    structs:
    - fields:
      - name: remaining
        type: UINT32
      - name: hashAlg
        type: TPM_ALG_ID
      - name: authPolicy
        type: TPM2B_DIGEST
      item_type: struct
      name: ACT_STATE
      pos:
        line_end: 268
        line_start: 263
        source_file: /src/libtpms/src/tpm2/ACT.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Locality_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/EccTestData.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TpmSizeChecks
  source_file: /src/libtpms/src/tpm2/TpmSizeChecks.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: attributes
        type: TPMA_OBJECT
      - name: uint32Value
        type: UINT32
      item_type: union
      name: u
      pos:
        line_end: 194
        line_start: 190
        source_file: /src/libtpms/src/tpm2/TpmSizeChecks.c
- function_names:
  - ASN1UnmarshalContextInitialize
  - ASN1DecodeLength
  - ASN1NextTag
  - ASN1GetBitStringValue
  - ASN1InitialializeMarshalContext
  - ASN1StartMarshalContext
  - ASN1EndMarshalContext
  - ASN1EndEncapsulation
  - ASN1PushByte
  - ASN1PushBytes
  - ASN1PushNull
  - ASN1PushLength
  - ASN1PushTagAndLength
  - ASN1PushTaggedOctetString
  - ASN1PushUINT
  - ASN1PushInteger
  - ASN1PushOID
  source_file: /src/libtpms/src/tpm2/TpmASN1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/tpm_public.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyPCR_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyPCR_policySession
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/PolicyPCR_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyPCR_pcrDigest
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/PolicyPCR_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyPCR_pcrs
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/PolicyPCR_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      - name: pcrDigest
        type: TPM2B_DIGEST
      - name: pcrs
        type: TPML_PCR_SELECTION
      item_type: struct
      name: PolicyPCR_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyPCR_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Ticket_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ContextIdSetOldest
  - SessionStartup
  - SessionIsLoaded
  - SessionIsSaved
  - SequenceNumberForSavedContextIsValid
  - SessionPCRValueIsCurrent
  - SessionGet
  - ContextIdSessionCreate
  - SessionCreate
  - SessionContextSave
  - SessionContextLoad
  - SessionFlush
  - SessionComputeBoundEntity
  - SessionSetStartTime
  - SessionResetPolicyData
  - SessionCapGetLoaded
  - SessionCapGetOneLoaded
  - SessionCapGetSaved
  - SessionCapGetOneSaved
  - SessionCapGetLoadedNumber
  - SessionCapGetLoadedAvail
  - SessionCapGetActiveNumber
  - SessionCapGetActiveAvail
  - IsCpHashUnionOccupied
  source_file: /src/libtpms/src/tpm2/Session.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_CONTEXT_GAP
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/libtpms/src/tpm2/Session.c
      type_or_value: '((UINT64)(CONTEXT_SLOT_MASKED(~0) + 1)) '
    structs: []
    typedefs: []
    union: []
- function_names:
  - MarshalUint16
  - MarshalUint32
  - Unmarshal32
  - Unmarshal16
  - SetForceFailureMode
  - TpmSetFailureMode
  - TpmLogFailure
  - TpmFailureMode
  - UnmarshalFail
  source_file: /src/libtpms/src/tpm2/TpmFail.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: tag
        type: TPM_ST
      - name: size
        type: UINT32
      - name: code
        type: TPM_RC
      item_type: struct
      name: HEADER
      pos:
        line_end: 82
        line_start: 77
        source_file: /src/libtpms/src/tpm2/TpmFail.c
    - fields:
      - name: tag[sizeof(TPM_ST)]
        type: BYTE
      - name: size[sizeof(UINT32)]
        type: BYTE
      - name: code[sizeof(TPM_RC)]
        type: BYTE
      item_type: struct
      name: PACKED_HEADER
      pos:
        line_end: 89
        line_start: 84
        source_file: /src/libtpms/src/tpm2/TpmFail.c
    - fields:
      - name: size[sizeof(UINT16)]
        type: BYTE
      - name: values
        type: "struct\n    {\n        BYTE function[sizeof(UINT32)];\n        BYTE
          line[sizeof(UINT32)];\n        BYTE code[sizeof(UINT32)];\n    }"
      - name: returnCode[sizeof(TPM_RC)]
        type: BYTE
      item_type: struct
      name: GET_TEST_RESULT_PARAMETERS
      pos:
        line_end: 101
        line_start: 91
        source_file: /src/libtpms/src/tpm2/TpmFail.c
    - fields:
      - name: moreData[sizeof(TPMI_YES_NO)]
        type: BYTE
      - name: capability[sizeof(TPM_CAP)]
        type: BYTE
      - name: tpmProperty[sizeof(TPML_TAGGED_TPM_PROPERTY)]
        type: BYTE
      item_type: struct
      name: GET_CAPABILITY_PARAMETERS
      pos:
        line_end: 108
        line_start: 103
        source_file: /src/libtpms/src/tpm2/TpmFail.c
    - fields:
      - name: header[sizeof(PACKED_HEADER)]
        type: BYTE
      - name: getTestResult[sizeof(GET_TEST_RESULT_PARAMETERS)]
        type: BYTE
      item_type: struct
      name: TEST_RESPONSE
      pos:
        line_end: 114
        line_start: 110
        source_file: /src/libtpms/src/tpm2/TpmFail.c
    - fields:
      - name: header[sizeof(PACKED_HEADER)]
        type: BYTE
      - name: getCap[sizeof(GET_CAPABILITY_PARAMETERS)]
        type: BYTE
      item_type: struct
      name: CAPABILITY_RESPONSE
      pos:
        line_end: 120
        line_start: 116
        source_file: /src/libtpms/src/tpm2/TpmFail.c
    typedefs: []
    union:
    - fields:
      - name: test[sizeof(TEST_RESPONSE)]
        type: BYTE
      - name: cap[sizeof(CAPABILITY_RESPONSE)]
        type: BYTE
      item_type: union
      name: RESPONSES
      pos:
        line_end: 126
        line_start: 122
        source_file: /src/libtpms/src/tpm2/TpmFail.c
- function_names: []
  source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm_fp.h
  types:
    enum:
    - enumerators:
      - name: RUNTIME_ALGO_IMPLEMENTED
      - name: RUNTIME_ALGO_ENABLED
      - name: RUNTIME_ALGO_DISABLED
      - name: RUNTIME_ALGO_CAN_BE_DISABLED
      - name: RUNTIME_ALGO_NUM
      item_type: enum
      name: RuntimeAlgorithmType
      pos:
        line_end: 96
        line_start: 89
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm_fp.h
    preproc_defs:
    - item_type: preproc_def
      name: NUM_ENTRIES_ALGORITHM_PROPERTIES
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm_fp.h
      type_or_value: (size_t)(TPM_ALG_LAST + 1)
    - item_type: preproc_def
      name: NUM_ENTRIES_ECC_ALGO_PROPERTIES
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm_fp.h
      type_or_value: (size_t)(TPM_ECC_SM2_P256 + 1)
    - item_type: preproc_def
      name: RUNTIME_ALGORITHM_ECC_NIST_BIT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm_fp.h
      type_or_value: '0'
    - item_type: preproc_def
      name: RUNTIME_ALGORITHM_ECC_BN_BIT
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm_fp.h
      type_or_value: '1'
    structs:
    - fields:
      - name: algosMinimumKeySizes[NUM_ENTRIES_ALGORITHM_PROPERTIES]
        type: UINT16
      - name: enabledAlgorithms
        type: ALGORITHM_VECTOR
      - name: enabledEccShortcuts[1]
        type: unsigned char
      - name: enabledEccCurves[(NUM_ENTRIES_ECC_ALGO_PROPERTIES + 7) / 8]
        type: unsigned char
      - name: '*algorithmProfile'
        type: char
      item_type: struct
      name: RuntimeAlgorithm
      pos:
        line_end: 56
        line_start: 47
        source_file: /src/libtpms/src/tpm2/RuntimeAlgorithm_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/_TPM_Hash_End_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ENTRY
  - ConvertFromCompressedBitArray
  - FindCCInCompressedListIndexArray
  - ConvertToCompressedBitArray
  source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: cc
        type: TPM_CC
      item_type: struct
      name: "CCToCompressedListIndex[] = {\n    ENTRY(TPM_CC_NV_UndefineSpaceSpecial,
        0),\n    ENTRY(TPM_CC_EvictControl, 1),\n    ENTRY(TPM_CC_HierarchyControl,
        2),\n    ENTRY(TPM_CC_NV_UndefineSpace, 3),\n    ENTRY(TPM_CC_ChangeEPS, 4),\n
        \   ENTRY(TPM_CC_ChangePPS, 5),\n    ENTRY(TPM_CC_Clear, 6),\n    ENTRY(TPM_CC_ClearControl,
        7),\n    ENTRY(TPM_CC_ClockSet, 8),\n    ENTRY(TPM_CC_HierarchyChangeAuth,
        9),\n    ENTRY(TPM_CC_NV_DefineSpace, 10),\n    ENTRY(TPM_CC_PCR_Allocate,
        11),\n    ENTRY(TPM_CC_PCR_SetAuthPolicy, 12),\n    ENTRY(TPM_CC_PP_Commands,
        13),\n    ENTRY(TPM_CC_SetPrimaryPolicy, 14),\n    /* CC_FieldUpdateStart
        */\n    ENTRY(TPM_CC_ClockRateAdjust, 15),\n    ENTRY(TPM_CC_CreatePrimary,
        16),\n    ENTRY(TPM_CC_NV_GlobalWriteLock, 17),\n    ENTRY(TPM_CC_GetCommandAuditDigest,
        18),\n    ENTRY(TPM_CC_NV_Increment, 19),\n    ENTRY(TPM_CC_NV_SetBits, 20),\n
        \   ENTRY(TPM_CC_NV_Extend, 21),\n    ENTRY(TPM_CC_NV_Write, 22),\n    ENTRY(TPM_CC_NV_WriteLock,
        23),\n    ENTRY(TPM_CC_DictionaryAttackLockReset, 24),\n    ENTRY(TPM_CC_DictionaryAttackParameters,
        25),\n    ENTRY(TPM_CC_NV_ChangeAuth, 26),\n    ENTRY(TPM_CC_PCR_Event, 27),\n
        \   ENTRY(TPM_CC_PCR_Reset, 28),\n    ENTRY(TPM_CC_SequenceComplete, 29),\n
        \   ENTRY(TPM_CC_SetAlgorithmSet, 30),\n    ENTRY(TPM_CC_SetCommandCodeAuditStatus,
        31),\n    /* CC_FieldUpgradeData */\n    ENTRY(TPM_CC_IncrementalSelfTest,
        32),\n    ENTRY(TPM_CC_SelfTest, 33),\n    ENTRY(TPM_CC_Startup, 34),\n    ENTRY(TPM_CC_Shutdown,
        35),\n    ENTRY(TPM_CC_StirRandom, 36),\n    ENTRY(TPM_CC_ActivateCredential,
        37),\n    ENTRY(TPM_CC_Certify, 38),\n    ENTRY(TPM_CC_PolicyNV, 39),\n    ENTRY(TPM_CC_CertifyCreation,
        40),\n    ENTRY(TPM_CC_Duplicate, 41),\n    ENTRY(TPM_CC_GetTime, 42),\n    ENTRY(TPM_CC_GetSessionAuditDigest,
        43),\n    ENTRY(TPM_CC_NV_Read, 44),\n    ENTRY(TPM_CC_NV_ReadLock, 45),\n
        \   ENTRY(TPM_CC_ObjectChangeAuth, 46),\n    ENTRY(TPM_CC_PolicySecret, 47),\n
        \   ENTRY(TPM_CC_Rewrap, 48),\n    ENTRY(TPM_CC_Create, 49),\n    ENTRY(TPM_CC_ECDH_ZGen,
        50),\n    ENTRY(TPM_CC_HMAC, 51),\n    ENTRY(TPM_CC_Import, 52),\n    ENTRY(TPM_CC_Load,
        53),\n    ENTRY(TPM_CC_Quote, 54),\n    ENTRY(TPM_CC_RSA_Decrypt, 55),\n    ENTRY(TPM_CC_HMAC_Start,
        56),\n    ENTRY(TPM_CC_SequenceUpdate, 57),\n    ENTRY(TPM_CC_Sign, 58),\n
        \   ENTRY(TPM_CC_Unseal, 59),\n    ENTRY(TPM_CC_PolicySigned, 60),\n    ENTRY(TPM_CC_ContextLoad,
        61),\n    ENTRY(TPM_CC_ContextSave, 62),\n    ENTRY(TPM_CC_ECDH_KeyGen, 63),\n
        \   ENTRY(TPM_CC_EncryptDecrypt, 64),\n    ENTRY(TPM_CC_FlushContext, 65),\n
        \   ENTRY(TPM_CC_LoadExternal, 66),\n    ENTRY(TPM_CC_MakeCredential, 67),\n
        \   ENTRY(TPM_CC_NV_ReadPublic, 68),\n    ENTRY(TPM_CC_PolicyAuthorize, 69),\n
        \   ENTRY(TPM_CC_PolicyAuthValue, 70),\n    ENTRY(TPM_CC_PolicyCommandCode,
        71),\n    ENTRY(TPM_CC_PolicyCounterTimer, 72),\n    ENTRY(TPM_CC_PolicyCpHash,
        73),\n    ENTRY(TPM_CC_PolicyLocality, 74),\n    ENTRY(TPM_CC_PolicyNameHash,
        75),\n    ENTRY(TPM_CC_PolicyOR, 76),\n    ENTRY(TPM_CC_PolicyTicket, 77),\n
        \   ENTRY(TPM_CC_ReadPublic, 78),\n    ENTRY(TPM_CC_RSA_Encrypt, 79),\n    ENTRY(TPM_CC_StartAuthSession,
        80),\n    ENTRY(TPM_CC_VerifySignature, 81),\n    ENTRY(TPM_CC_ECC_Parameters,
        82),\n    /* CC_FirmwareRead */\n    ENTRY(TPM_CC_GetCapability, 83),\n    ENTRY(TPM_CC_GetRandom,
        84),\n    ENTRY(TPM_CC_GetTestResult, 85),\n    ENTRY(TPM_CC_Hash, 86),\n
        \   ENTRY(TPM_CC_PCR_Read, 87),\n    ENTRY(TPM_CC_PolicyPCR, 88),\n    ENTRY(TPM_CC_PolicyRestart,
        89),\n    ENTRY(TPM_CC_ReadClock, 90),\n    ENTRY(TPM_CC_PCR_Extend, 91),\n
        \   ENTRY(TPM_CC_PCR_SetAuthValue, 92),\n    ENTRY(TPM_CC_NV_Certify, 93),\n
        \   ENTRY(TPM_CC_EventSequenceComplete, 94),\n    ENTRY(TPM_CC_HashSequenceStart,
        95),\n    ENTRY(TPM_CC_PolicyPhysicalPresence, 96),\n    ENTRY(TPM_CC_PolicyDuplicationSelect,
        97),\n    ENTRY(TPM_CC_PolicyGetDigest, 98),\n    ENTRY(TPM_CC_TestParms,
        99),\n    ENTRY(TPM_CC_Commit, 100),\n    ENTRY(TPM_CC_PolicyPassword, 101),\n
        \   ENTRY(TPM_CC_ZGen_2Phase, 102),\n    ENTRY(TPM_CC_EC_Ephemeral, 103),\n
        \   ENTRY(TPM_CC_PolicyNvWritten, 104),\n    ENTRY(TPM_CC_PolicyTemplate,
        105),\n    ENTRY(TPM_CC_CreateLoaded, 106),\n    ENTRY(TPM_CC_PolicyAuthorizeNV,
        107),\n    ENTRY(TPM_CC_EncryptDecrypt2, 108),\n    /* CC_AC_GetCapability
        -- never enable here */\n    /* CC_AC_Send -- never enable here */\n    /*
        CC_Policy_AC_SendSelect */\n    ENTRY(TPM_CC_CertifyX509, 109),\n    /* CC_ACT_SetTimeout
        -- never enable here */\n    /* CC_ECC_Encrypt -- never enable here */\n    /*
        CC_ECC_Decrypt -- never enable here */\n    /* never add new commands */\n}"
      pos:
        line_end: 53
        line_start: 47
        source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityBitArray.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PCR_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ActivateCredential_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ActivateCredential_activateHandle
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/ActivateCredential_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_ActivateCredential_keyHandle
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/ActivateCredential_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_ActivateCredential_credentialBlob
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/ActivateCredential_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_ActivateCredential_secret
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/ActivateCredential_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: activateHandle
        type: TPMI_DH_OBJECT
      - name: keyHandle
        type: TPMI_DH_OBJECT
      - name: credentialBlob
        type: TPM2B_ID_OBJECT
      - name: secret
        type: TPM2B_ENCRYPTED_SECRET
      item_type: struct
      name: ActivateCredential_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/ActivateCredential_fp.h
    - fields:
      - name: certInfo
        type: TPM2B_DIGEST
      item_type: struct
      name: ActivateCredential_Out
      pos:
        line_end: 82
        line_start: 79
        source_file: /src/libtpms/src/tpm2/ActivateCredential_fp.h
    typedefs: []
    union: []
- function_names:
  - CRYPT_INT_BUF
  source_file: /src/libtpms/src/tpm2/PrimeData.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyCpHash_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyCpHash_policySession
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/PolicyCpHash_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_PolicyCpHash_cpHashA
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/PolicyCpHash_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      - name: cpHashA
        type: TPM2B_DIGEST
      item_type: struct
      name: PolicyCpHash_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyCpHash_fp.h
    typedefs: []
    union: []
- function_names:
  - NvReadAccessChecks
  - NvWriteAccessChecks
  - NvClearOrderly
  - NvIsPinPassIndex
  - NvGetIndexName
  - LegacyAttributesFromExpanded
  - ExpandedAttributesFromLegacy
  - NvPublic2FromNvPublic
  - NvPublicFromNvPublic2
  - NvDefineSpace
  source_file: /src/libtpms/src/tpm2/NV_spt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/BackwardsCompatibilityObject.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM_Manufacture
  - TPM_TearDown
  - TpmEndSimulation
  source_file: /src/libtpms/src/tpm2/Manufacture.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Sign_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_Sign_keyHandle
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/Sign_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Sign_digest
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/Sign_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_Sign_inScheme
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/Sign_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_Sign_validation
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/Sign_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    structs:
    - fields:
      - name: keyHandle
        type: TPMI_DH_OBJECT
      - name: digest
        type: TPM2B_DIGEST
      - name: inScheme
        type: TPMT_SIG_SCHEME
      - name: validation
        type: TPMT_TK_HASHCHECK
      item_type: struct
      name: Sign_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/Sign_fp.h
    - fields:
      - name: signature
        type: TPMT_SIGNATURE
      item_type: struct
      name: Sign_Out
      pos:
        line_end: 82
        line_start: 79
        source_file: /src/libtpms/src/tpm2/Sign_fp.h
    typedefs: []
    union: []
- function_names:
  - TicketIsSafe
  - TicketComputeVerified
  - TicketComputeAuth
  - TicketComputeHashCheck
  - TicketComputeCreation
  source_file: /src/libtpms/src/tpm2/Ticket.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DAPreInstall_Init
  - DAStartup
  - DARegisterFailure
  - DASelfHeal
  source_file: /src/libtpms/src/tpm2/DA.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/NV_Read_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_NV_Read_authHandle
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/NV_Read_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_Read_nvIndex
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/NV_Read_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_2)
    - item_type: preproc_def
      name: RC_NV_Read_size
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/NV_Read_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_NV_Read_offset
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/NV_Read_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: authHandle
        type: TPMI_RH_NV_AUTH
      - name: nvIndex
        type: TPMI_RH_NV_INDEX
      - name: size
        type: UINT16
      - name: offset
        type: UINT16
      item_type: struct
      name: NV_Read_In
      pos:
        line_end: 76
        line_start: 70
        source_file: /src/libtpms/src/tpm2/NV_Read_fp.h
    - fields:
      - name: data
        type: TPM2B_MAX_NV_BUFFER
      item_type: struct
      name: NV_Read_Out
      pos:
        line_end: 82
        line_start: 79
        source_file: /src/libtpms/src/tpm2/NV_Read_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PolicyGetDigest_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_PolicyGetDigest_policySession
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/PolicyGetDigest_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: policySession
        type: TPMI_SH_POLICY
      item_type: struct
      name: PolicyGetDigest_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/PolicyGetDigest_fp.h
    - fields:
      - name: policyDigest
        type: TPM2B_DIGEST
      item_type: struct
      name: PolicyGetDigest_Out
      pos:
        line_end: 79
        line_start: 76
        source_file: /src/libtpms/src/tpm2/PolicyGetDigest_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Unseal_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_Unseal_itemHandle
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/Unseal_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    structs:
    - fields:
      - name: itemHandle
        type: TPMI_DH_OBJECT
      item_type: struct
      name: Unseal_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/Unseal_fp.h
    - fields:
      - name: outData
        type: TPM2B_SENSITIVE_DATA
      item_type: struct
      name: Unseal_Out
      pos:
        line_end: 79
        line_start: 76
        source_file: /src/libtpms/src/tpm2/Unseal_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/SelfTest_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_SelfTest_fullTest
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/SelfTest_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: fullTest
        type: TPMI_YES_NO
      item_type: struct
      name: SelfTest_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/SelfTest_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/ECDH_ZGen_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ECDH_ZGen_keyHandle
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/ECDH_ZGen_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_ECDH_ZGen_inPoint
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/ECDH_ZGen_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: keyHandle
        type: TPMI_DH_OBJECT
      - name: inPoint
        type: TPM2B_ECC_POINT
      item_type: struct
      name: ECDH_ZGen_In
      pos:
        line_end: 74
        line_start: 70
        source_file: /src/libtpms/src/tpm2/ECDH_ZGen_fp.h
    - fields:
      - name: outPoint
        type: TPM2B_ECC_POINT
      item_type: struct
      name: ECDH_ZGen_Out
      pos:
        line_end: 80
        line_start: 77
        source_file: /src/libtpms/src/tpm2/ECDH_ZGen_fp.h
    typedefs: []
    union: []
- function_names:
  - NvInitStatic
  - NvCheckState
  - NvCommit
  - NvPowerOn
  - NvManufacture
  - NvRead
  - NvWrite
  - NvUpdatePersistent
  - NvClearPersistent
  - NvReadPersistent
  source_file: /src/libtpms/src/tpm2/NvReserved.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2_EncryptDecrypt
  - TPM2_EncryptDecrypt2
  - TPM2_Hash
  - TPM2_HMAC
  - TPM2_MAC
  source_file: /src/libtpms/src/tpm2/SymmetricCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _ActResume
  - ActStartup
  - CLEAR_ACT_POLICY
  - RESUME_ACT
  - _ActSaveState
  - ActGetSignaled
  - ActShutdown
  - SAVE_ACT_STATE
  - ActIsImplemented
  - ActCounterUpdate
  - ActGetCapabilityData
  - ActGetOneCapability
  source_file: /src/libtpms/src/tpm2/ACT_spt.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/EncryptDecrypt_spt_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TPM2_VerifySignature
  - TPM2_Sign
  source_file: /src/libtpms/src/tpm2/SigningCommands.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/PRNG_TestVectors.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DRBG_TEST_INITIATE_ENTROPY
      pos:
        line_end: 99
        line_start: 94
        source_file: /src/libtpms/src/tpm2/PRNG_TestVectors.h
      type_or_value: "0x0d, 0x15, 0xaa, 0x80, 0xb1, 0x6c, 0x3a, 0x10, 0x90, 0x6c,
        0xfe, 0xdb, 0x79, \\\n        0x5d, 0xae, 0x0b, 0x5b, 0x81, 0x04, 0x1c, 0x5c,
        0x5b, 0xfa, 0xcb, 0x37,   \\\n        0x3d, 0x44, 0x40, 0xd9, 0x12, 0x0f,
        0x7e, 0x3d, 0x6c, 0xf9, 0x09, 0x86,   \\\n        0xcf, 0x52, 0xd8, 0x5d,
        0x3e, 0x94, 0x7d, 0x8c, 0x06, 0x1f, 0x91"
    - item_type: preproc_def
      name: DRBG_TEST_RESEED_ENTROPY
      pos:
        line_end: 105
        line_start: 100
        source_file: /src/libtpms/src/tpm2/PRNG_TestVectors.h
      type_or_value: "0x6e, 0xe7, 0x93, 0xa3, 0x39, 0x55, 0xd7, 0x2a, 0xd1, 0x2f,
        0xd8, 0x0a, 0x8a, \\\n        0x3f, 0xcf, 0x95, 0xed, 0x3b, 0x4d, 0xac, 0x57,
        0x95, 0xfe, 0x25, 0xcf,   \\\n        0x86, 0x9f, 0x7c, 0x27, 0x57, 0x3b,
        0xbc, 0x56, 0xf1, 0xac, 0xae, 0x13,   \\\n        0xa6, 0x50, 0x42, 0xb3,
        0x40, 0x09, 0x3c, 0x46, 0x4a, 0x7a, 0x22"
    - item_type: preproc_def
      name: DRBG_TEST_GENERATED_INTERM
      pos:
        line_end: 109
        line_start: 106
        source_file: /src/libtpms/src/tpm2/PRNG_TestVectors.h
      type_or_value: "0x28, 0xe0, 0xeb, 0xb8, 0x21, 0x01, 0x66, 0x50, 0x8c, 0x8f,
        0x65, 0xf2, 0x20, \\\n        0x7b, 0xd0, 0xa3"
    - item_type: preproc_def
      name: DRBG_TEST_GENERATED
      pos:
        line_end: 113
        line_start: 110
        source_file: /src/libtpms/src/tpm2/PRNG_TestVectors.h
      type_or_value: "0x94, 0x6f, 0x51, 0x82, 0xd5, 0x45, 0x10, 0xb9, 0x46, 0x12,
        0x48, 0xf5, 0x71, \\\n        0xca, 0x06, 0xc9"
    - item_type: preproc_def
      name: DRBG_TEST_INITIATE_ENTROPY
      pos:
        line_end: 141
        line_start: 137
        source_file: /src/libtpms/src/tpm2/PRNG_TestVectors.h
      type_or_value: "0x8f, 0xc1, 0x1b, 0xdb, 0x5a, 0xab, 0xb7, 0xe0, 0x93, 0xb6,
        0x14, 0x28, 0xe0, \\\n        0x90, 0x73, 0x03, 0xcb, 0x45, 0x9f, 0x3b, 0x60,
        0x0d, 0xad, 0x87, 0x09,   \\\n        0x55, 0xf2, 0x2d, 0xa8, 0x0a, 0x44,
        0xf8"
    - item_type: preproc_def
      name: DRBG_TEST_RESEED_ENTROPY
      pos:
        line_end: 146
        line_start: 142
        source_file: /src/libtpms/src/tpm2/PRNG_TestVectors.h
      type_or_value: "0x0c, 0xd5, 0x3c, 0xd5, 0xec, 0xcd, 0x5a, 0x10, 0xd7, 0xea,
        0x26, 0x61, 0x11, \\\n        0x25, 0x9b, 0x05, 0x57, 0x4f, 0xc6, 0xdd, 0xd8,
        0xbe, 0xd8, 0xbd, 0x72,   \\\n        0x37, 0x8c, 0xf8, 0x2f, 0x1d, 0xba,
        0x2a"
    - item_type: preproc_def
      name: DRBG_TEST_GENERATED_INTERM
      pos:
        line_end: 150
        line_start: 147
        source_file: /src/libtpms/src/tpm2/PRNG_TestVectors.h
      type_or_value: "0xdc, 0x3c, 0xf6, 0xbf, 0x5b, 0xd3, 0x41, 0x13, 0x5f, 0x2c,
        0x68, 0x11, 0xa1, \\\n        0x07, 0x1c, 0x87"
    - item_type: preproc_def
      name: DRBG_TEST_GENERATED
      pos:
        line_end: 154
        line_start: 151
        source_file: /src/libtpms/src/tpm2/PRNG_TestVectors.h
      type_or_value: "0xb6, 0x18, 0x50, 0xde, 0xcf, 0xd7, 0x10, 0x6d, 0x44, 0x76,
        0x9a, 0x8e, 0x6e, \\\n        0x8c, 0x1a, 0xd4"
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Session_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/X509.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: X509_SELECTION
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/X509.h
      type_or_value: '0xA0'
    - item_type: preproc_def
      name: X509_ISSUER_UNIQUE_ID
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/X509.h
      type_or_value: '0xA1'
    - item_type: preproc_def
      name: X509_SUBJECT_UNIQUE_ID
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/X509.h
      type_or_value: '0xA2'
    - item_type: preproc_def
      name: X509_EXTENSIONS
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/X509.h
      type_or_value: '0xA3'
    - item_type: preproc_def
      name: ENCODED_SIZE_REF
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/X509.h
      type_or_value: '0'
    - item_type: preproc_def
      name: VERSION_REF
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/X509.h
      type_or_value: (ENCODED_SIZE_REF + 1)
    - item_type: preproc_def
      name: SERIAL_NUMBER_REF
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/X509.h
      type_or_value: (VERSION_REF + 1)
    - item_type: preproc_def
      name: SIGNATURE_REF
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/X509.h
      type_or_value: (SERIAL_NUMBER_REF + 1)
    - item_type: preproc_def
      name: ISSUER_REF
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/X509.h
      type_or_value: (SIGNATURE_REF + 1)
    - item_type: preproc_def
      name: VALIDITY_REF
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/X509.h
      type_or_value: (ISSUER_REF + 1)
    - item_type: preproc_def
      name: SUBJECT_KEY_REF
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/X509.h
      type_or_value: (VALIDITY_REF + 1)
    - item_type: preproc_def
      name: SUBJECT_PUBLIC_KEY_REF
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/X509.h
      type_or_value: (SUBJECT_KEY_REF + 1)
    - item_type: preproc_def
      name: EXTENSIONS_REF
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/src/tpm2/X509.h
      type_or_value: (SUBJECT_PUBLIC_KEY_REF + 1)
    - item_type: preproc_def
      name: REF_COUNT
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libtpms/src/tpm2/X509.h
      type_or_value: (EXTENSIONS_REF + 1)
    - item_type: preproc_def
      name: OID_KEY_USAGE_EXTENSION_VALUE
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/libtpms/src/tpm2/X509.h
      type_or_value: 0x06, 0x03, 0x55, 0x1D, 0x0F
    - item_type: preproc_def
      name: OID_TCG_TPMA_OBJECT_VALUE
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/libtpms/src/tpm2/X509.h
      type_or_value: 0x06, 0x07, 0x67, 0x81, 0x05, 0x0a, 0x01, 0x01, 0x01
    structs:
    - fields:
      - name: '* buf'
        type: BYTE
      - name: len
        type: INT16
      item_type: struct
      name: stringRef
      pos:
        line_end: 103
        line_start: 99
        source_file: /src/libtpms/src/tpm2/X509.h
    typedefs: []
    union:
    - fields:
      - name: x509
        type: TPMA_X509_KEY_USAGE
      - name: integer
        type: UINT32
      item_type: union
      name: x509KeyUsageUnion
      pos:
        line_end: 110
        line_start: 106
        source_file: /src/libtpms/src/tpm2/X509.h
- function_names: []
  source_file: /src/libtpms/src/tpm2/ECC_Parameters_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ECC_Parameters_curveID
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/ECC_Parameters_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    structs:
    - fields:
      - name: curveID
        type: TPMI_ECC_CURVE
      item_type: struct
      name: ECC_Parameters_In
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/libtpms/src/tpm2/ECC_Parameters_fp.h
    - fields:
      - name: parameters
        type: TPMS_ALGORITHM_DETAIL_ECC
      item_type: struct
      name: ECC_Parameters_Out
      pos:
        line_end: 79
        line_start: 76
        source_file: /src/libtpms/src/tpm2/ECC_Parameters_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/Entity_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AlgorithmCapGetImplemented
  - AlgorithmCapGetOneImplemented
  - AlgorithmGetImplementedVector
  source_file: /src/libtpms/src/tpm2/AlgorithmCap.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: algID
        type: TPM_ALG_ID
      - name: attributes
        type: TPMA_ALGORITHM
      item_type: struct
      name: ALGORITHM
      pos:
        line_end: 72
        line_start: 68
        source_file: /src/libtpms/src/tpm2/AlgorithmCap.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IMPLEMENTATION_PCR
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '24'
    - item_type: preproc_def
      name: PLATFORM_PCR
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '24'
    - item_type: preproc_def
      name: DRTM_PCR
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '17'
    - item_type: preproc_def
      name: HCRTM_PCR
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NUM_LOCALITIES
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '5'
    - item_type: preproc_def
      name: MAX_HANDLE_NUM
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MAX_ACTIVE_SESSIONS
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_LOADED_SESSIONS
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MAX_SESSION_NUM
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MAX_LOADED_OBJECTS
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '3'
    - item_type: preproc_def
      name: MIN_EVICT_OBJECTS
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: "7\t"
    - item_type: preproc_def
      name: NUM_POLICY_PCR_GROUP
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NUM_AUTHVALUE_PCR_GROUP
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MAX_CONTEXT_SIZE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: "2680\t"
    - item_type: preproc_def
      name: MAX_DIGEST_BUFFER
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: MAX_NV_INDEX_SIZE
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: MAX_NV_BUFFER_SIZE
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: MAX_CAP_BUFFER
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: NV_MEMORY_SIZE
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '(128 * 1024 + 65 * 704)  '
    - item_type: preproc_def
      name: MIN_COUNTER_INDICES
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NUM_STATIC_PCR
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_ALG_LIST_SIZE
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '64'
    - item_type: preproc_def
      name: PRIMARY_SEED_SIZE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '64 '
    - item_type: preproc_def
      name: CONTEXT_ENCRYPT_ALGORITHM
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: AES
    - item_type: preproc_def
      name: NV_CLOCK_UPDATE_INTERVAL
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '12 '
    - item_type: preproc_def
      name: NUM_POLICY_PCR
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ORDERLY_BITS
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MAX_SYM_DATA
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '128'
    - item_type: preproc_def
      name: MAX_RNG_ENTROPY_SIZE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '64'
    - item_type: preproc_def
      name: RAM_INDEX_SPACE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '512'
    - item_type: preproc_def
      name: ENABLE_PCR_NO_INCREMENT
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: 'YES'
    - item_type: preproc_def
      name: SIZE_OF_X509_SERIAL_NUMBER
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '20'
    - item_type: preproc_def
      name: PERSISTENT_DATA_PLATFORM_SPACE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: "0\t"
    - item_type: preproc_def
      name: ORDERLY_DATA_PADDING
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STATE_CLEAR_DATA_PADDING
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STATE_RESET_DATA_PADDING
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CONTEXT_SLOT
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: UINT8
    - item_type: preproc_def
      name: CONTEXT_SLOT
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/libtpms/src/tpm2/TpmProfile_Misc.h
      type_or_value: "UINT16\t\t"
    structs: []
    typedefs: []
    union: []
- function_names:
  - RuntimeCommandsEnableAllCommands
  - RuntimeCommandsInit
  - RuntimeCommandsFree
  - RuntimeCommandsSetDefault
  - parseRange
  - RuntimeCommandsSetProfile
  - RuntimeCommandsSwitchProfile
  - RuntimeCommandsCheckEnabled
  - RuntimeCommandsCountEnabled
  - RuntimeCommandPrint
  - RuntimeCommandsPrint
  source_file: /src/libtpms/src/tpm2/RuntimeCommands.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CMD_SEPARATOR_STR
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/libtpms/src/tpm2/RuntimeCommands.c
      type_or_value: '","'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/MathLibraryInterface.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - X509AddSigningAlgorithmRSA
  - X509AddPublicRSA
  source_file: /src/libtpms/src/tpm2/X509_RSA.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/CryptSym_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/CryptCmac_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/CryptSmac_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/CryptEccCrypt_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/CryptDes_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/CryptUtil_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/CryptEccSignature_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/CryptRand_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/CryptHash_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IF_IMPLEMENTED_SHA1
  - IF_IMPLEMENTED_SHA256
  - IF_IMPLEMENTED_SHA384
  - IF_IMPLEMENTED_SHA512
  - IF_IMPLEMENTED_SM3_256
  - IF_IMPLEMENTED_SHA3_256
  - IF_IMPLEMENTED_SHA3_384
  - IF_IMPLEMENTED_SHA3_512
  - FOR_EACH_HASH
  - HASH_TYPE
  - ALIGNED_SIZE
  - HASH_TPM2B
  - PKCS1_OID
  - ECDSA_OID
  source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SMAC_IMPLEMENTED
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type_or_value: (CC_MAC || CC_MAC_Start)
    - item_type: preproc_def
      name: MAX_HASH_STATE_SIZE
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type_or_value: ((2 * MAX_HASH_BLOCK_SIZE) + 16)
    - item_type: preproc_def
      name: MAX_HASH_STATE_SIZE_ALIGNED
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type_or_value: ALIGNED_SIZE(MAX_HASH_STATE_SIZE, HASH_ALIGNMENT)
    - item_type: preproc_def
      name: HASH_START_METHOD_DEF
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type_or_value: void(HASH_START_METHOD)(void)
    - item_type: preproc_def
      name: HASH_DATA_METHOD_DEF
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type_or_value: void(HASH_DATA_METHOD)(void)
    - item_type: preproc_def
      name: HASH_END_METHOD_DEF
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type_or_value: void(HASH_END_METHOD)(void)
    - item_type: preproc_def
      name: HASH_STATE_COPY_METHOD_DEF
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type_or_value: void(HASH_STATE_COPY_METHOD)(void)
    - item_type: preproc_def
      name: HASH_STATE_EXPORT_METHOD_DEF
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type_or_value: void(HASH_STATE_EXPORT_METHOD)(void)
    - item_type: preproc_def
      name: HASH_STATE_IMPORT_METHOD_DEF
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type_or_value: void(HASH_STATE_IMPORT_METHOD)(void)
    - item_type: preproc_def
      name: PKCS1_HASH_REF
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type_or_value: const BYTE* PKCS1;
    - item_type: preproc_def
      name: ECDSA_HASH_REF
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type_or_value: const BYTE* ECDSA;
    - item_type: preproc_def
      name: HASH_STATE_EMPTY
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type_or_value: ((HASH_STATE_TYPE)0)
    - item_type: preproc_def
      name: HASH_STATE_HASH
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type_or_value: ((HASH_STATE_TYPE)1)
    - item_type: preproc_def
      name: HASH_STATE_HMAC
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type_or_value: ((HASH_STATE_TYPE)2)
    - item_type: preproc_def
      name: HASH_STATE_SMAC
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type_or_value: ((HASH_STATE_TYPE)3)
    structs:
    - fields:
      - name: data
        type: SMAC_DATA_METHOD
      - name: end
        type: SMAC_END_METHOD
      item_type: struct
      name: sequenceMethods
      pos:
        line_end: 87
        line_start: 83
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
    - fields:
      - name: symAlg
        type: TPM_ALG_ID
      - name: keySizeBits
        type: UINT16
      - name: bcount
        type: INT16
      - name: iv
        type: TPM2B_IV
      - name: symKey
        type: TPM2B_SYM_KEY
      item_type: struct
      name: tpmCmacState
      pos:
        line_end: 99
        line_start: 92
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
    - fields:
      - name: smacMethods
        type: SMAC_METHODS
      - name: state
        type: SMAC_STATES
      item_type: struct
      name: SMAC_STATE
      pos:
        line_end: 113
        line_start: 109
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
    - fields:
      - name: '*        start'
        type: HASH_START_METHOD
      - name: '*         data'
        type: HASH_DATA_METHOD
      - name: '*          end'
        type: HASH_END_METHOD
      - name: '*   copy'
        type: HASH_STATE_COPY_METHOD
      - name: '* copyOut'
        type: HASH_STATE_EXPORT_METHOD
      - name: '* copyIn'
        type: HASH_STATE_IMPORT_METHOD
      item_type: struct
      name: _HASH_METHODS
      pos:
        line_end: 242
        line_start: 232
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
    - fields:
      - name: method
        type: HASH_METHODS
      - name: blockSize
        type: uint16_t
      - name: digestSize
        type: uint16_t
      - name: contextSize
        type: uint16_t
      - name: hashAlg
        type: uint16_t
      - name: '*  OID'
        type: BYTE
      - name: ECDSA_HASH_REF
        type: PKCS1_HASH_REF
      item_type: struct
      name: HASH_DEF_STRUCT
      pos:
        line_end: 280
        line_start: 270
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
    - fields:
      - name: type
        type: HASH_STATE_TYPE
      - name: hashAlg
        type: TPM_ALG_ID
      - name: def
        type: PHASH_DEF
      - name: state
        type: ANY_HASH_STATE
      item_type: struct
      name: _HASH_STATE
      pos:
        line_end: 329
        line_start: 323
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
    - fields:
      - name: hashState
        type: HASH_STATE
      - name: hmacKey
        type: TPM2B_HASH_BLOCK
      item_type: struct
      name: hmacState
      pos:
        line_end: 342
        line_start: 338
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
    - fields:
      - name: buffer[sizeof(HASH_STATE)]
        type: BYTE
      item_type: struct
      name: EXPORT_HASH_STATE
      pos:
        line_end: 349
        line_start: 346
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
    typedefs:
    - item_type: typedef
      name: "(*SMAC_DATA_METHOD)(\n    union SMAC_STATES* state, UINT32 size, const
        BYTE* buffer)"
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type: void
    - item_type: typedef
      name: "(*SMAC_END_METHOD)(\n    union SMAC_STATES* state, UINT32 size, BYTE*
        buffer)"
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type: UINT16
    - item_type: typedef
      name: '*       PANY_HASH_STATE'
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type: ANY_HASH_STATE
    - item_type: typedef
      name: '* PCANY_HASH_STATE'
      pos:
        line_end: 186
        line_start: 186
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type: ANY_HASH_STATE
    - item_type: typedef
      name: ALIGNED_HASH_STATE
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type: ANY_HASH_STATE
    - item_type: typedef
      name: HASH_STATE_TYPE
      pos:
        line_end: 303
        line_start: 303
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type: BYTE
    - item_type: typedef
      name: '* PCHASH_STATE'
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type: HASH_STATE
    - item_type: typedef
      name: '* PCEXPORT_HASH_STATE'
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
      type: EXPORT_HASH_STATE
    union:
    - fields:
      - name: pad
        type: UINT64
      item_type: union
      name: SMAC_STATES
      pos:
        line_end: 107
        line_start: 101
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
    - fields:
      - name: (HASH_TYPE)
        type: FOR_EACH_HASH
      item_type: union
      name: ANY_HASH_STATE
      pos:
        line_end: 183
        line_start: 167
        source_file: /src/libtpms/src/tpm2/crypto/CryptHash.h
- function_names:
  - CRYPT_ECC_NUM
  - CRYPT_ECC_INITIALIZED
  source_file: /src/libtpms/src/tpm2/crypto/CryptEcc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ECC_BITS
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/libtpms/src/tpm2/crypto/CryptEcc.h
      type_or_value: (MAX_ECC_KEY_BYTES * 8)
    structs:
    - fields:
      - name: curveId
        type: TPM_ECC_CURVE
      - name: keySizeBits
        type: UINT16
      - name: kdf
        type: TPMT_KDF_SCHEME
      - name: sign
        type: TPMT_ECC_SCHEME
      - name: '*           OID'
        type: BYTE
      item_type: struct
      name: TPM_ECC_CURVE_METADATA
      pos:
        line_end: 114
        line_start: 107
        source_file: /src/libtpms/src/tpm2/crypto/CryptEcc.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/CryptTest.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ALGORITHM_VECTOR_BYTES
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libtpms/src/tpm2/crypto/CryptTest.h
      type_or_value: ((TPM_ALG_LAST + 8) / 8)
    structs:
    - fields:
      - name: rng
        type: UINT32
      - name: hash
        type: UINT32
      - name: sym
        type: UINT32
      item_type: struct
      name: CRYPTO_SELF_TEST_STATE
      pos:
        line_end: 92
        line_start: 81
        source_file: /src/libtpms/src/tpm2/crypto/CryptTest.h
    typedefs:
    - item_type: typedef
      name: ALGORITHM_VECTOR[ALGORITHM_VECTOR_BYTES]
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/libtpms/src/tpm2/crypto/CryptTest.h
      type: BYTE
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/ECC_Encrypt_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ECC_Encrypt_keyHandle
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/crypto/ECC_Encrypt_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_ECC_Encrypt_plainText
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/crypto/ECC_Encrypt_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_ECC_Encrypt_inScheme
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/crypto/ECC_Encrypt_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    structs:
    - fields:
      - name: keyHandle
        type: TPMI_DH_OBJECT
      - name: plainText
        type: TPM2B_MAX_BUFFER
      - name: inScheme
        type: TPMT_KDF_SCHEME
      item_type: struct
      name: ECC_Encrypt_In
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/libtpms/src/tpm2/crypto/ECC_Encrypt_fp.h
    - fields:
      - name: C1
        type: TPM2B_ECC_POINT
      - name: C2
        type: TPM2B_MAX_BUFFER
      - name: C3
        type: TPM2B_DIGEST
      item_type: struct
      name: ECC_Encrypt_Out
      pos:
        line_end: 83
        line_start: 78
        source_file: /src/libtpms/src/tpm2/crypto/ECC_Encrypt_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/CryptSelfTest_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - IF_IMPLEMENTED_AES
  - IF_IMPLEMENTED_SM4
  - IF_IMPLEMENTED_CAMELLIA
  - IF_IMPLEMENTED_TDES
  - FOR_EACH_SYM
  - FOR_EACH_SYM_WITHOUT_TDES
  - KEY_SCHEDULE
  - ENCRYPT
  - DECRYPT
  - ENCRYPT_CASE
  - DECRYPT_CASE
  source_file: /src/libtpms/src/tpm2/crypto/CryptSym.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: (KEY_SCHEDULE)
        type: FOR_EACH_SYM_WITHOUT_TDES
      item_type: union
      name: tpmCryptKeySchedule_t
      pos:
        line_end: 120
        line_start: 105
        source_file: /src/libtpms/src/tpm2/crypto/CryptSym.h
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/CryptEccMain_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/CryptEccKeyExchange_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/CryptPrime_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/CryptRsa_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CRYPT_RSA_VAR
  - CRYPT_RSA_INITIALIZED
  - CRYPT_PRIME_VAR
  - CRYPT_PRIME_INITIALIZED
  - NEW_PRIVATE_EXPONENT
  - RsaInitializeExponentOld
  - RsaSetExponentOld
  - RsaSetExponentFromOld
  source_file: /src/libtpms/src/tpm2/crypto/CryptRsa.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* P'
        type: Crypt_Int
      - name: '* Q'
        type: Crypt_Int
      - name: '* dP'
        type: Crypt_Int
      - name: '* dQ'
        type: Crypt_Int
      - name: '* qInv'
        type: Crypt_Int
      - name: entries[5]
        type: ci_prime_t
      item_type: struct
      name: privateExponent
      pos:
        line_end: 92
        line_start: 84
        source_file: /src/libtpms/src/tpm2/crypto/CryptRsa.h
    - fields:
      - name: Q
        type: ci_prime_t
      - name: dP
        type: ci_prime_t
      - name: dQ
        type: ci_prime_t
      - name: qInv
        type: ci_prime_t
      item_type: struct
      name: privateExponentOld
      pos:
        line_end: 109
        line_start: 103
        source_file: /src/libtpms/src/tpm2/crypto/CryptRsa.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/ECC_Decrypt_fp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RC_ECC_Decrypt_keyHandle
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/src/tpm2/crypto/ECC_Decrypt_fp.h
      type_or_value: (TPM_RC_H + TPM_RC_1)
    - item_type: preproc_def
      name: RC_ECC_Decrypt_C1
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/src/tpm2/crypto/ECC_Decrypt_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_1)
    - item_type: preproc_def
      name: RC_ECC_Decrypt_C2
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/crypto/ECC_Decrypt_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_2)
    - item_type: preproc_def
      name: RC_ECC_Decrypt_C3
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/src/tpm2/crypto/ECC_Decrypt_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_3)
    - item_type: preproc_def
      name: RC_ECC_Decrypt_inScheme
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/src/tpm2/crypto/ECC_Decrypt_fp.h
      type_or_value: (TPM_RC_P + TPM_RC_4)
    structs:
    - fields:
      - name: keyHandle
        type: TPMI_DH_OBJECT
      - name: C1
        type: TPM2B_ECC_POINT
      - name: C2
        type: TPM2B_MAX_BUFFER
      - name: C3
        type: TPM2B_DIGEST
      - name: inScheme
        type: TPMT_KDF_SCHEME
      item_type: struct
      name: ECC_Decrypt_In
      pos:
        line_end: 77
        line_start: 70
        source_file: /src/libtpms/src/tpm2/crypto/ECC_Decrypt_fp.h
    - fields:
      - name: plainText
        type: TPM2B_MAX_BUFFER
      item_type: struct
      name: ECC_Decrypt_Out
      pos:
        line_end: 83
        line_start: 80
        source_file: /src/libtpms/src/tpm2/crypto/ECC_Decrypt_fp.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/CryptPrimeSieve_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DRBG_ENCRYPT_SETUP
  - DRBG_ENCRYPT
  - pDRBG_KEY
  - pDRBG_IV
  - IsTestStateSet
  - SetTestStateBit
  - ClearTestStateBit
  - IsSelfTest
  - SetSelfTest
  - ClearSelfTest
  - IsEntropyBad
  - SetEntropyBad
  - ClearEntropyBad
  - IsDrbgTested
  - SetDrbgTested
  - ClearDrbgTested
  - PRIME_INDEX
  - INSTRUMENT_SET
  - INSTRUMENT_ADD
  - INSTRUMENT_INC
  source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DRBG_KEY_SIZE_BITS
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: AES_MAX_KEY_SIZE_BITS
    - item_type: preproc_def
      name: DRBG_IV_SIZE_BITS
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: (AES_MAX_BLOCK_SIZE * 8)
    - item_type: preproc_def
      name: DRBG_ALGORITHM
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: TPM_ALG_AES
    - item_type: preproc_def
      name: DRBG_MAX_REQUESTS_PER_RESEED
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: (1 << 48)
    - item_type: preproc_def
      name: DRBG_MAX_REQEST_SIZE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: (1 << 32)
    - item_type: preproc_def
      name: DRBG_KEY_SIZE_WORDS
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: (BITS_TO_CRYPT_WORDS(DRBG_KEY_SIZE_BITS))
    - item_type: preproc_def
      name: DRBG_KEY_SIZE_BYTES
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: (DRBG_KEY_SIZE_WORDS * RADIX_BYTES)
    - item_type: preproc_def
      name: DRBG_IV_SIZE_WORDS
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: (BITS_TO_CRYPT_WORDS(DRBG_IV_SIZE_BITS))
    - item_type: preproc_def
      name: DRBG_IV_SIZE_BYTES
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: (DRBG_IV_SIZE_WORDS * RADIX_BYTES)
    - item_type: preproc_def
      name: DRBG_SEED_SIZE_WORDS
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: (DRBG_KEY_SIZE_WORDS + DRBG_IV_SIZE_WORDS)
    - item_type: preproc_def
      name: DRBG_SEED_SIZE_BYTES
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: (DRBG_KEY_SIZE_BYTES + DRBG_IV_SIZE_BYTES)
    - item_type: preproc_def
      name: CTR_DRBG_MAX_REQUESTS_PER_RESEED
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: ((UINT64)1 << 20)
    - item_type: preproc_def
      name: CTR_DRBG_MAX_BYTES_PER_REQUEST
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: (1 << 16)
    - item_type: preproc_def
      name: CTR_DRBG_MIN_ENTROPY_INPUT_LENGTH
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: DRBG_SEED_SIZE_BYTES
    - item_type: preproc_def
      name: CTR_DRBG_MAX_ENTROPY_INPUT_LENGTH
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: DRBG_SEED_SIZE_BYTES
    - item_type: preproc_def
      name: CTR_DRBG_MAX_ADDITIONAL_INPUT_LENGTH
      pos:
        line_end: 136
        line_start: 135
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: DRBG_SEED_SIZE_BYTES
    - item_type: preproc_def
      name: TESTING
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: ENTROPY
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: TESTED
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: DRBG_MAGIC
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: ((UINT32)0x47425244)  // "DRBG" backwards so that it displays
    - item_type: preproc_def
      name: KDF_MAGIC
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
      type_or_value: ((UINT32)0x4048444a)  // "KDF " backwards
    structs:
    - fields:
      - name: reseedCounter
        type: UINT64
      - name: magic
        type: UINT32
      - name: seed
        type: DRBG_SEED
      - name: seedCompatLevel
        type: SEED_COMPAT_LEVEL
      - name: lastValue[4]
        type: UINT32
      item_type: struct
      name: DRBG_STATE
      pos:
        line_end: 165
        line_start: 157
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
    - fields:
      - name: counter
        type: UINT64
      - name: magic
        type: UINT32
      - name: limit
        type: UINT32
      - name: '*       seed'
        type: TPM2B
      - name: '* label'
        type: TPM2B
      - name: '*       context'
        type: TPM2B
      - name: hash
        type: TPM_ALG_ID
      - name: kdf
        type: TPM_ALG_ID
      - name: digestSize
        type: UINT16
      - name: residual
        type: TPM2B_DIGEST
      item_type: struct
      name: KDF_STATE
      pos:
        line_end: 180
        line_start: 168
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
    typedefs: []
    union:
    - fields:
      - name: bytes[DRBG_KEY_SIZE_BYTES]
        type: BYTE
      - name: words[DRBG_KEY_SIZE_WORDS]
        type: crypt_uword_t
      item_type: union
      name: DRBG_KEY
      pos:
        line_end: 116
        line_start: 112
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
    - fields:
      - name: bytes[DRBG_IV_SIZE_BYTES]
        type: BYTE
      - name: words[DRBG_IV_SIZE_WORDS]
        type: crypt_uword_t
      item_type: union
      name: DRBG_IV
      pos:
        line_end: 122
        line_start: 118
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
    - fields:
      - name: bytes[DRBG_SEED_SIZE_BYTES]
        type: BYTE
      - name: words[DRBG_SEED_SIZE_WORDS]
        type: crypt_uword_t
      item_type: union
      name: DRBG_SEED
      pos:
        line_end: 128
        line_start: 124
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
    - fields:
      - name: drbg
        type: DRBG_STATE
      - name: kdf
        type: KDF_STATE
      item_type: union
      name: RAND_STATE
      pos:
        line_end: 189
        line_start: 185
        source_file: /src/libtpms/src/tpm2/crypto/CryptRand.h
- function_names:
  - TDES_set_encrypt_key
  - TDES_encrypt
  - TDES_decrypt
  source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslDesSupport.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CryptEccSign
  - CryptEccValidateSignature
  - CryptEccCommitCompute
  source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptEccSignature.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OpenSSLCryptGenerateKeyDes
  - GetCachedEVPCipher
  - GetEVPCipher
  - DoEVPGetIV
  - OpenSSLEccGetPrivate
  - GetDigestNameByHashAlg
  - ComputePrivateExponentD_Euler
  - ComputePrivateExponentD_Carmichael
  - ComputePrivateExponentD
  - BuildRSAKey
  - BuildRSAKey
  - ObjectGetPublicParameters
  - InitOpenSSLRSAPublicKey
  - DoRSACheckKey
  - DoRSACheckKey
  - InitOpenSSLRSAPrivateKey
  - OpenSSLCryptRsaGenerateKey
  - OpenSSLCryptRsaGenerateKey
  - OSSLCryptKDFe
  source_file: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DO_RSA_CHECK_KEY
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
      type_or_value: '0'
    - item_type: preproc_def
      name: __NUM_ALGS
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
      type_or_value: '4 '
    - item_type: preproc_def
      name: __NUM_MODES
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
      type_or_value: '5 '
    - item_type: preproc_def
      name: __NUM_KEYSIZES
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
      type_or_value: '3 '
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: hashAlg
        type: TPM_ALG_ID
      item_type: struct
      name: hnames
      pos:
        line_end: 437
        line_start: 434
        source_file: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
    typedefs:
    - item_type: typedef
      name: '*(*evpfunc)(void)'
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/libtpms/src/tpm2/crypto/openssl/Helpers.c
      type: EVP_CIPHER
    union: []
- function_names:
  - BnGetAllocated
  - BnGetSize
  - BnGetArray
  - BnGetWord
  - BnEqualZero
  - BnEqualWord
  - BnIsEven
  - BN_INIT
  - CRYPT_WORDS
  - MIN_ALLOC
  - BN_CONST
  - BN_STRUCT_ALLOCATION
  - BN_STRUCT
  - BN_TYPE
  - BN_INITIALIZED
  - BN_VAR
  - BN_MAX
  - BN_MAX_INITIALIZED
  - BN_WORD
  - BN_WORD_INITIALIZED
  - BN_POINT_BUF
  - BnCurveGetPrime
  - BnCurveGetOrder
  - BnCurveGetCofactor
  - BnCurveGet_a
  - BnCurveGet_b
  - BnCurveGetG
  - BnCurveGetGx
  - BnCurveGetGy
  - TPM_ECC_CURVE::BnCurveGetCurveId
  - BIG_ENDIAN_BYTES_TO_UINT32
  - BIG_ENDIAN_BYTES_TO_UINT64
  - JOINED
  - MJOIN
  - B8_TO_BN
  - B1_TO_BN
  - B2_TO_BN
  - B3_TO_BN
  - B4_TO_BN
  - B5_TO_BN
  - B6_TO_BN
  - B7_TO_BN
  - B1_TO_BN
  - B2_TO_BN
  - B3_TO_BN
  - B4_TO_BN
  - B5_TO_BN
  - B6_TO_BN
  - B7_TO_BN
  - B8_TO_BN
  source_file: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: bignum_t
      pos:
        line_end: 103
        line_start: 94
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
      type_or_value: ;
    structs:
    - fields:
      - name: x
        type: bigNum
      - name: y
        type: bigNum
      - name: z
        type: bigNum
      item_type: struct
      name: _bn_point_t
      pos:
        line_end: 208
        line_start: 203
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    - fields:
      - name: x
        type: bigConst
      - name: y
        type: bigConst
      - name: z
        type: bigConst
      item_type: struct
      name: constant_point_t
      pos:
        line_end: 218
        line_start: 213
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    - fields:
      - name: curveId
        type: TPM_ECC_CURVE
      - name: prime
        type: bigConst
      - name: order
        type: bigConst
      - name: h
        type: bigConst
      - name: a
        type: bigConst
      - name: b
        type: bigConst
      - name: base
        type: constant_point_t
      item_type: struct
      name: TPMBN_ECC_CURVE_CONSTANTS
      pos:
        line_end: 277
        line_start: 268
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
    typedefs:
    - item_type: typedef
      name: '*       bigNum'
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
      type: bignum_t
    - item_type: typedef
      name: '* bigConst'
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
      type: bignum_t
    - item_type: typedef
      name: '*       bigPoint'
      pos:
        line_end: 210
        line_start: 210
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
      type: bn_point_t
    - item_type: typedef
      name: '* pointConst'
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
      type: bn_point_t
    - item_type: typedef
      name: (fullpoint, MAX_ECC_KEY_BITS)
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnValues.h
      type: BN_POINT_BUF
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/openssl/BnConvert_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OsslGetVersion
  - BnSupportLibInit
  - OsslContextEnter
  - OsslContextLeave
  - OsslPushContext
  - OsslPopContext
  - _crypto_GetSymImpl
  - _crypto_GetHashImpl
  source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: '* desKeyPointers[3]'
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSupport.c
      type: BYTE
    union: []
- function_names:
  - KEY_BLOCK_SIZES
  - CryptSymInit
  - CryptSymStartup
  - CryptGetSymmetricBlockSize
  - ALG_CASE
  - GET_KEY_BLOCK_POINTER
  - CryptSymmetricEncrypt
  - CryptSymmetricDecrypt
  - TDES_CTR
  - CryptSymmetricEncrypt
  - CryptSymmetricDecrypt
  - CryptSymKeyValidate
  source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptSym.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CRYPT_INT_BUF
  - CRYPT_POINT_BUF
  - CRYPT_CURVE_BUF
  source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToTpmBigNumMath.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - "TPMBN_ECC_CURVE_CONSTANTS* AccessCurveConstants(\n    const bigCurveData* E)"
  - OSSL_ENTER
  - OSSL_LEAVE
  - ECC_ENTER
  - ECC_LEAVE
  - BN_NEW
  source_file: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EC_POINT_get_affine_coordinates
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.h
      type_or_value: EC_POINT_get_affine_coordinates_GFp
    - item_type: preproc_def
      name: EC_POINT_set_affine_coordinates
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.h
      type_or_value: EC_POINT_set_affine_coordinates_GFp
    - item_type: preproc_def
      name: EC_POINT_get_affine_coordinates_GFp
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.h
      type_or_value: EC_POINT_get_affine_coordinates
    - item_type: preproc_def
      name: EC_POINT_set_affine_coordinates_GFp
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.h
      type_or_value: EC_POINT_set_affine_coordinates
    - item_type: preproc_def
      name: BIGNUM
      pos:
        line_end: 133
        line_start: 130
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.h
      type_or_value: '* name = BigInitialized(_##name, initializer) '
    structs:
    - fields:
      - name: '* d'
        type: BN_ULONG
      - name: top
        type: int
      - name: dmax
        type: int
      - name: neg
        type: int
      - name: flags
        type: int
      item_type: struct
      name: bignum_st
      pos:
        line_end: 95
        line_start: 86
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.h
    - fields:
      - name: '* C'
        type: TPMBN_ECC_CURVE_CONSTANTS
      - name: '*                        G'
        type: EC_GROUP
      - name: '* CTX'
        type: BN_CTX
      item_type: struct
      name: OSSL_CURVE_DATA
      pos:
        line_end: 140
        line_start: 134
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.h
    typedefs:
    - item_type: typedef
      name: bigCurveData
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.h
      type: OSSL_CURVE_DATA
    union: []
- function_names:
  - RADIX_MOD
  - RADIX_DIV
  - BITS_TO_CRYPT_WORDS
  - BYTES_TO_CRYPT_WORDS
  - SIZE_IN_CRYPT_WORDS
  - SWAP_CRYPT_WORD
  - TO_CRYPT_WORD_32
  - SWAP_CRYPT_WORD
  - TO_CRYPT_WORD_64
  - LIB_QUOTE
  - LIB_INCLUDE2
  - LIB_INCLUDE
  source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RADIX_BITS
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: BN_BITS2
    - item_type: preproc_def
      name: RADIX_BITS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: '32'
    - item_type: preproc_def
      name: RADIX_BITS
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: '64'
    - item_type: preproc_def
      name: RADIX_BITS
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: '32'
    - item_type: preproc_def
      name: RADIX_BITS
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: '32'
    - item_type: preproc_def
      name: RADIX_BITS
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: __riscv_xlen
    - item_type: preproc_def
      name: RADIX_BYTES
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: '8'
    - item_type: preproc_def
      name: RADIX_LOG2
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: '6'
    - item_type: preproc_def
      name: RADIX_BYTES
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: '4'
    - item_type: preproc_def
      name: RADIX_LOG2
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: '5'
    - item_type: preproc_def
      name: HASH_ALIGNMENT
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: RADIX_BYTES
    - item_type: preproc_def
      name: SYMMETRIC_ALIGNMENT
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: RADIX_BYTES
    - item_type: preproc_def
      name: RADIX_MASK
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: ((((crypt_uword_t)1) << RADIX_LOG2) - 1)
    - item_type: preproc_def
      name: TO_CRYPT_WORD_64
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: BIG_ENDIAN_BYTES_TO_UINT64
    - item_type: preproc_def
      name: BN_PAD
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: "0    \t\t\t// libtpms added"
    - item_type: preproc_def
      name: BN_PAD
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: '1    '
    - item_type: preproc_def
      name: MAX_CRYPT_UWORD
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: (~((crypt_uword_t)0))
    - item_type: preproc_def
      name: MAX_CRYPT_WORD
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: ((crypt_word_t)(MAX_CRYPT_UWORD >> 1))
    - item_type: preproc_def
      name: MIN_CRYPT_WORD
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: (~MAX_CRYPT_WORD)
    - item_type: preproc_def
      name: LARGEST_NUMBER
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: MAX_RSA_KEY_BYTES
    - item_type: preproc_def
      name: LARGEST_NUMBER
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: MAX(MAX_ECC_KEY_BYTES, MAX_DIGEST_SIZE)
    - item_type: preproc_def
      name: LARGEST_NUMBER
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: MAX_DIGEST_SIZE
    - item_type: preproc_def
      name: LARGEST_NUMBER_BITS
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: (LARGEST_NUMBER * 8)
    - item_type: preproc_def
      name: MAX_ECC_PARAMETER_BYTES
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type_or_value: (MAX_ECC_KEY_BYTES * ALG_ECC)
    structs: []
    typedefs:
    - item_type: typedef
      name: crypt_uword_t
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type: uint64_t
    - item_type: typedef
      name: crypt_word_t
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type: int64_t
    - item_type: typedef
      name: crypt_uword_t
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type: uint32_t
    - item_type: typedef
      name: crypt_word_t
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/libtpms/src/tpm2/crypto/openssl/tpm_radix.h
      type: int32_t
    union: []
- function_names:
  - CryptRsaInit
  - CryptRsaStartup
  - RsaInitializeExponent
  - MakePgreaterThanQ
  - PackExponent
  - UnpackExponent
  - ComputePrivateExponent
  - RsaPrivateKeyOp
  - RSAEP
  - RSADP
  - OaepEncode
  - OaepDecode
  - RSAES_PKCS1v1_5Encode
  - RSAES_Decode
  - CryptRsaPssSaltSize
  - PssEncode
  - PssDecode
  - MakeDerTag
  - RSASSA_Encode
  - RSASSA_Decode
  - CryptRsaSelectScheme
  - CryptRsaLoadPrivateExponent
  - CryptRSAPairwiseConsistencyTest
  - CryptRsaEncrypt
  - CryptRsaDecrypt
  - CryptRsaSign
  - CryptRsaValidateSignature
  - GET_CACHED_KEY
  - CryptRsaGenerateKey
  - CryptRsaEncrypt
  - CryptRsaDecrypt
  - CryptRsaSign
  - CryptRsaValidateSignature
  source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptRsa.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - HASH_START
  - HASH_DATA
  - HASH_END
  - HASH_STATE_COPY
  - HASH_STATE_EXPORT
  - HASH_STATE_IMPORT
  source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SM3_LBLOCK
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: (64 / 4)
    - item_type: preproc_def
      name: tpmHashStateSHA1_t
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SHA_CTX
    - item_type: preproc_def
      name: tpmHashStateSHA256_t
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SHA256_CTX
    - item_type: preproc_def
      name: tpmHashStateSHA384_t
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SHA512_CTX
    - item_type: preproc_def
      name: tpmHashStateSHA512_t
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SHA512_CTX
    - item_type: preproc_def
      name: tpmHashStateSM3_256_t
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SM3_CTX
    - item_type: preproc_def
      name: HASH_START_METHOD_DEF
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: void(HASH_START_METHOD)(PANY_HASH_STATE state)
    - item_type: preproc_def
      name: HASH_DATA_METHOD_DEF
      pos:
        line_end: 142
        line_start: 140
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: void(HASH_DATA_METHOD)(PANY_HASH_STATE state, PCBYTE buffer,
        size_t size)
    - item_type: preproc_def
      name: HASH_END_METHOD_DEF
      pos:
        line_end: 148
        line_start: 146
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: void(HASH_END_METHOD)(BYTE * buffer, PANY_HASH_STATE state)
    - item_type: preproc_def
      name: HASH_STATE_COPY_METHOD_DEF
      pos:
        line_end: 157
        line_start: 154
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: "void(HASH_STATE_COPY_METHOD)(    \\\n        PANY_HASH_STATE
        to, PCANY_HASH_STATE from, size_t size)"
    - item_type: preproc_def
      name: HASH_STATE_EXPORT_METHOD_DEF
      pos:
        line_end: 166
        line_start: 164
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: void(HASH_STATE_EXPORT_METHOD)(BYTE * to, PCANY_HASH_STATE from,
        size_t size)
    - item_type: preproc_def
      name: HASH_STATE_IMPORT_METHOD_DEF
      pos:
        line_end: 176
        line_start: 174
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: void(HASH_STATE_IMPORT_METHOD)(PANY_HASH_STATE to, const BYTE*
        from, size_t size)
    - item_type: preproc_def
      name: tpmHashStart_SHA1
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SHA1_Init
    - item_type: preproc_def
      name: tpmHashData_SHA1
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SHA1_Update
    - item_type: preproc_def
      name: tpmHashEnd_SHA1
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SHA1_Final
    - item_type: preproc_def
      name: tpmHashStateCopy_SHA1
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: tpmHashStateExport_SHA1
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: tpmHashStateImport_SHA1
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: tpmHashStart_SHA256
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SHA256_Init
    - item_type: preproc_def
      name: tpmHashData_SHA256
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SHA256_Update
    - item_type: preproc_def
      name: tpmHashEnd_SHA256
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SHA256_Final
    - item_type: preproc_def
      name: tpmHashStateCopy_SHA256
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: tpmHashStateExport_SHA256
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: tpmHashStateImport_SHA256
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: tpmHashStart_SHA384
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SHA384_Init
    - item_type: preproc_def
      name: tpmHashData_SHA384
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SHA384_Update
    - item_type: preproc_def
      name: tpmHashEnd_SHA384
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SHA384_Final
    - item_type: preproc_def
      name: tpmHashStateCopy_SHA384
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: tpmHashStateExport_SHA384
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: tpmHashStateImport_SHA384
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: tpmHashStart_SHA512
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SHA512_Init
    - item_type: preproc_def
      name: tpmHashData_SHA512
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SHA512_Update
    - item_type: preproc_def
      name: tpmHashEnd_SHA512
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: SHA512_Final
    - item_type: preproc_def
      name: tpmHashStateCopy_SHA512
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: tpmHashStateExport_SHA512
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: tpmHashStateImport_SHA512
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: tpmHashStart_SM3_256
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: sm3_init
    - item_type: preproc_def
      name: tpmHashData_SM3_256
      pos:
        line_end: 210
        line_start: 209
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: sm3_update
    - item_type: preproc_def
      name: tpmHashEnd_SM3_256
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: sm3_final
    - item_type: preproc_def
      name: tpmHashStateCopy_SM3_256
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: tpmHashStateExport_SM3_256
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: memcpy
    - item_type: preproc_def
      name: tpmHashStateImport_SM3_256
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type_or_value: memcpy
    structs:
    - fields:
      - name: A
        type: unsigned int
      - name: Nl
        type: unsigned int
      - name: data[SM3_LBLOCK]
        type: unsigned int
      - name: num
        type: unsigned int
      item_type: struct
      name: SM3state_st
      pos:
        line_end: 88
        line_start: 82
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
    typedefs:
    - item_type: typedef
      name: '*       PBYTE'
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type: BYTE
    - item_type: typedef
      name: '* PCBYTE'
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslHash.h
      type: BYTE
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslDesSupport_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/openssl/BnOssl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Root2
  - IsPrimeInt
  - TpmMath_IsProbablyPrime
  - MillerRabinRounds
  - MillerRabin
  - RsaCheckPrime
  - RsaAdjustPrimeCandidate_PreRev155
  - RsaAdjustPrimeCandidate_New
  - RsaAdjustPrimeCandidate_Rev169
  - TpmRsa_GeneratePrimeForRSA_Rev169
  - TpmRsa_GeneratePrimeForRSA
  source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MASK
      pos:
        line_end: 332
        line_start: 331
        source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptPrime.c
      type_or_value: (MAX_CRYPT_UWORD >> (RADIX_BITS - 16))
    structs: []
    typedefs: []
    union: []
- function_names:
  - CryptSetOddByteParity
  - CryptDesIsWeakKey
  - CryptDesValidateKey
  - CryptGenerateKeyDes
  source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DES_NUM_WEAK
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c
      type_or_value: '64'
    - item_type: preproc_def
      name: PMASK
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptDes.c
      type_or_value: 0x0101010101010101ULL
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/openssl/Helpers_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - OsslToTpmBn
  - BigInitialized
  - DEBUG_PRINT
  - BIGNUM_PRINT
  - BIGNUM_print
  - BnNewVariable
  - BnMathLibraryCompatibilityCheck
  - BnModMult
  - BnMult
  - BnDiv
  - BnGcd
  - BnModExp
  - BnModInverse
  - PointFromOssl
  - EcPointInitialized
  - "bigCurveData* BnCurveInitialize(\n    bigCurveData* E,       // IN: curve structure
    to initialize\n    TPM_ECC_CURVE curveId  // IN: curve identifier\n)"
  - BnCurveFree
  - BnEccModMult
  - BnEccModMult2
  - BnEccAdd
  - BnGetImplementation
  source_file: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/openssl/LibSupport.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/openssl/BnToOsslMath_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rdtsc
  - assert_ossl_num_bytes
  - assert_bn_ossl_num_bytes
  source_file: /src/libtpms/src/tpm2/crypto/openssl/ConsttimeUtils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/openssl/BnMath_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - avf1
  - C_2_2_MQV
  - C_2_2_ECDH
  - CryptEcc2PhaseKeyExchange
  - ComputeWForSM2
  - avfSm2
  - SM2KeyExchange
  source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptEccKeyExchange.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CryptEccSelectScheme
  - CryptEccEncrypt
  - CryptEccDecrypt
  source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RANDOM
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c
      type_or_value: (RAND_STATE*)&dbg
    - item_type: preproc_def
      name: RANDOM
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptEccCrypt.c
      type_or_value: 'NULL'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/openssl/BnMemory_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ExpDCacheIncrementAge
  - ExpDCacheEntryFree
  - ExpDCacheFree
  - ExpDCacheEntryGet
  - ExpDCacheAdd
  - ExpDCacheFind
  source_file: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DCACHE_NUM_ENTRIES
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c
      type_or_value: '64'
    structs:
    - fields:
      - name: age
        type: unsigned int
      - name: '*P'
        type: BIGNUM
      - name: '*N'
        type: BIGNUM
      - name: '*E'
        type: BIGNUM
      - name: '*Q'
        type: BIGNUM
      - name: '*D'
        type: BIGNUM
      item_type: struct
      name: ExpDCacheEntry
      pos:
        line_end: 82
        line_start: 72
        source_file: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache.c
    typedefs: []
    union: []
- function_names:
  - CryptCmacStart
  - CryptCmacData
  - CryptCmacEnd
  source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptCmac.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RsaAdjustPrimeLimit
  - RsaNextPrime
  - BitsInByte
  - BitsInByte
  - BitsInArray
  - FindNthSetBit
  - PrimeSieve
  - NEXT_PRIME
  - SetFieldSize
  - PrimeSelectWithSieve
  - PrintTuple
  - CLEAR_VALUE
  - RsaSimulationEnd
  - GetSieveStats
  - RsaSimulationEnd
  source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_FIELD_SIZE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
      type_or_value: '2048'
    structs:
    - fields:
      - name: prime
        type: UINT32
      - name: count
        type: UINT16
      item_type: struct
      name: SIEVE_MARKS
      pos:
        line_end: 246
        line_start: 242
        source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptPrimeSieve.c
    typedefs: []
    union: []
- function_names:
  - HASH_DEF_ENTRY
  - CryptHashInit
  - CryptHashStartup
  - CryptGetHashDef
  - GET_DEF
  - CryptHashIsValidAlg
  - CryptHashGetAlgByIndex
  - CryptHashGetDigestSize
  - CryptHashGetBlockSize
  - CryptHashGetOid
  - CryptHashGetContextAlg
  - CryptHashCopyState
  - CryptHashExportState
  - CopyToOffset
  - CryptHashImportState
  - CopyFromOffset
  - HashEnd
  - CryptHashStart
  - CryptDigestUpdate
  - CryptHashEnd
  - CryptHashBlock
  - CryptDigestUpdate2B
  - CryptHashEnd2B
  - CryptDigestUpdateInt
  - CryptHmacStart
  - CryptHmacEnd
  - CryptHmacStart2B
  - CryptHmacEnd2B
  - CryptMGF_KDF
  - CryptKDFa
  - CryptKDFe
  - CryptKDFe
  source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptHash.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SWIZZLE
  - TpmCryptSetEncryptKeyAES
  - TpmCryptSetDecryptKeyAES
  - TpmCryptSetEncryptKeyTDES
  - TpmCryptSetDecryptKeyTDES
  - TpmCryptSetEncryptKeySM4
  - TpmCryptSetDecryptKeySM4
  - TpmCryptSetEncryptKeyCAMELLIA
  - TpmCryptSetDecryptKeyCAMELLIA
  source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SM4_KEY_SCHEDULE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
      type_or_value: '32'
    - item_type: preproc_def
      name: SYM_ALIGNMENT
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: TpmCryptEncryptAES
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
      type_or_value: AES_encrypt
    - item_type: preproc_def
      name: TpmCryptDecryptAES
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
      type_or_value: AES_decrypt
    - item_type: preproc_def
      name: tpmKeyScheduleAES
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
      type_or_value: AES_KEY
    - item_type: preproc_def
      name: TpmCryptEncryptTDES
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
      type_or_value: TDES_encrypt
    - item_type: preproc_def
      name: TpmCryptDecryptTDES
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
      type_or_value: TDES_decrypt
    - item_type: preproc_def
      name: tpmKeyScheduleTDES
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
      type_or_value: DES_key_schedule
    - item_type: preproc_def
      name: TpmCryptEncryptSM4
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
      type_or_value: SM4_encrypt
    - item_type: preproc_def
      name: TpmCryptDecryptSM4
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
      type_or_value: SM4_decrypt
    - item_type: preproc_def
      name: tpmKeyScheduleSM4
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
      type_or_value: SM4_KEY
    - item_type: preproc_def
      name: TpmCryptEncryptCAMELLIA
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
      type_or_value: Camellia_encrypt
    - item_type: preproc_def
      name: TpmCryptDecryptCAMELLIA
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
      type_or_value: Camellia_decrypt
    - item_type: preproc_def
      name: tpmKeyScheduleCAMELLIA
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
      type_or_value: CAMELLIA_KEY
    structs:
    - fields:
      - name: rk[SM4_KEY_SCHEDULE]
        type: uint32_t
      item_type: struct
      name: SM4_KEY_st
      pos:
        line_end: 92
        line_start: 90
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
    typedefs:
    - item_type: typedef
      name: (*TpmCryptSetSymKeyCall_t)(const BYTE* in, BYTE* out, void* keySchedule)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/libtpms/src/tpm2/crypto/openssl/TpmToOsslSym.h
      type: void
    union: []
- function_names:
  - DfCompute
  - DfStart
  - DfUpdate
  - DfEnd
  - DfBuffer
  - DRBG_GetEntropy
  - IncrementIv
  - EncryptDRBG
  - DRBG_Update
  - DRBG_Reseed
  - DRBG_SelfTest
  - CryptRandomStir
  - CryptRandomGenerate
  - DRBG_InstantiateSeededKdf
  - DRBG_AdditionalData
  - DRBG_InstantiateSeeded
  - CryptRandStartup
  - CryptRandInit
  - SEED_COMPAT_LEVEL::DRBG_GetSeedCompatLevel
  - DRBG_Generate
  - DRBG_Instantiate
  - DRBG_Uninstantiate
  source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DF_COUNT
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
      type_or_value: (DRBG_KEY_SIZE_WORDS / DRBG_IV_SIZE_WORDS + 1)
    structs:
    - fields:
      - name: keySchedule
        type: DRBG_KEY_SCHEDULE
      - name: iv[DF_COUNT]
        type: DRBG_IV
      - name: out1
        type: DRBG_IV
      - name: buf
        type: DRBG_IV
      - name: contents
        type: int
      item_type: struct
      name: DF_STATE
      pos:
        line_end: 135
        line_start: 128
        source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
    typedefs:
    - item_type: typedef
      name: DRBG_KEY_SCHEDULE
      pos:
        line_end: 126
        line_start: 126
        source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptRand.c
      type: tpmKeyScheduleAES
    union: []
- function_names: []
  source_file: /src/libtpms/src/tpm2/crypto/openssl/ExpDCache_fp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EccSimulationEnd
  - CryptEccInit
  - CryptEccStartup
  - ClearPoint2B
  - "TPM_ECC_CURVE_METADATA* CryptEccGetParametersByCurveId(\n    TPM_ECC_CURVE curveId
    \ // IN: the curveID\n)"
  - CryptEccGetKeySizeForCurve
  - CryptEccGetOID
  - TPM_ECC_CURVE::CryptEccGetCurveByIndex
  - CryptCapGetECCCurve
  - CryptCapGetOneECCCurve
  - CryptGetCurveSignScheme
  - CryptGenerateR
  - CryptCommit
  - CryptEndCommit
  - CryptEccGetParameters
  - TpmEcc_IsValidPrivateEcc
  - CryptEccIsValidPrivateKey
  - TpmEcc_PointMult
  - TpmEcc_GenPrivateScalar
  - TpmEcc_GenPrivateScalar
  - TpmEcc_GenerateKeyPair
  - TpmEcc_GenerateKeyPair
  - CryptEccNewKeyPair
  - CryptEccPointMultiply
  - CryptEccIsPointOnCurve
  - CryptEccGenerateKey
  - CryptEccIsCurveRuntimeUsable
  source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptEccMain.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CryptSmacStart
  - CryptMacStart
  - CryptMacEnd
  - CryptMacEnd2B
  source_file: /src/libtpms/src/tpm2/crypto/openssl/CryptSmac.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/include/libtpms/tpm_types.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: 'TRUE'
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type_or_value: '0x01  '
    - item_type: preproc_def
      name: 'FALSE'
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type_or_value: '0x00  '
    structs: []
    typedefs:
    - item_type: typedef
      name: BYTE
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: unsigned char
    - item_type: typedef
      name: TPM_BOOL
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: unsigned char
    - item_type: typedef
      name: TPM_AUTH_DATA_USAGE
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: BYTE
    - item_type: typedef
      name: TPM_PAYLOAD_TYPE
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: BYTE
    - item_type: typedef
      name: TPM_VERSION_BYTE
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: BYTE
    - item_type: typedef
      name: TPM_DA_STATE
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: BYTE
    - item_type: typedef
      name: TPM_ENT_TYPE
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: BYTE
    - item_type: typedef
      name: TPM_ADIP_ENC_SCHEME
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: BYTE
    - item_type: typedef
      name: TPM_PROTOCOL_ID
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint16_t
    - item_type: typedef
      name: TPM_STARTUP_TYPE
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint16_t
    - item_type: typedef
      name: TPM_ENC_SCHEME
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint16_t
    - item_type: typedef
      name: TPM_SIG_SCHEME
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint16_t
    - item_type: typedef
      name: TPM_MIGRATE_SCHEME
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint16_t
    - item_type: typedef
      name: TPM_PHYSICAL_PRESENCE
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint16_t
    - item_type: typedef
      name: TPM_ENTITY_TYPE
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint16_t
    - item_type: typedef
      name: TPM_KEY_USAGE
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint16_t
    - item_type: typedef
      name: TPM_EK_TYPE
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint16_t
    - item_type: typedef
      name: TPM_STRUCTURE_TAG
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint16_t
    - item_type: typedef
      name: TPM_PLATFORM_SPECIFIC
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint16_t
    - item_type: typedef
      name: TPM_COMMAND_CODE
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_CAPABILITY_AREA
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_KEY_FLAGS
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_ALGORITHM_ID
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_MODIFIER_INDICATOR
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_ACTUAL_COUNT
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_TRANSPORT_ATTRIBUTES
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_AUTHHANDLE
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_DIRINDEX
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_KEY_HANDLE
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_PCRINDEX
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_RESULT
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_RESOURCE_TYPE
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_KEY_CONTROL
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_NV_INDEX
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_FAMILY_ID
      pos:
        line_end: 120
        line_start: 120
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_FAMILY_VERIFICATION
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_STARTUP_EFFECTS
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_SYM_MODE
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_FAMILY_FLAGS
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_DELEGATE_INDEX
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_CMK_DELEGATE
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_COUNT_ID
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_REDIT_COMMAND
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_TRANSHANDLE
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_HANDLE
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_FAMILY_OPERATION
      pos:
        line_end: 140
        line_start: 140
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint32_t
    - item_type: typedef
      name: TPM_TAG
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: uint16_t
    - item_type: typedef
      name: "*\tTPM_SYMMETRIC_KEY_TOKEN"
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: unsigned char
    - item_type: typedef
      name: "*\tTPM_BIGNUM"
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/libtpms/include/libtpms/tpm_types.h
      type: unsigned char
    union: []
- function_names: []
  source_file: /src/libtpms/include/libtpms/tpm_nvfilename.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_PERMANENT_ALL_NAME
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/libtpms/include/libtpms/tpm_nvfilename.h
      type_or_value: '"permall"'
    - item_type: preproc_def
      name: TPM_SAVESTATE_NAME
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/libtpms/include/libtpms/tpm_nvfilename.h
      type_or_value: '"savestate"'
    - item_type: preproc_def
      name: TPM_VOLATILESTATE_NAME
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/libtpms/include/libtpms/tpm_nvfilename.h
      type_or_value: '"volatilestate"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/include/libtpms/tpm_error.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_BASE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: '0x0             '
    - item_type: preproc_def
      name: TPM_SUCCESS
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE        '
    - item_type: preproc_def
      name: TPM_VENDOR_ERROR
      pos:
        line_end: 69
        line_start: 66
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_Vendor_Specific32   '
    - item_type: preproc_def
      name: TPM_NON_FATAL
      pos:
        line_end: 71
        line_start: 69
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: '0x00000800 '
    - item_type: preproc_def
      name: TPM_AUTHFAIL
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 1  '
    - item_type: preproc_def
      name: TPM_BADINDEX
      pos:
        line_end: 77
        line_start: 75
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 2  '
    - item_type: preproc_def
      name: TPM_BAD_PARAMETER
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 3  '
    - item_type: preproc_def
      name: TPM_AUDITFAILURE
      pos:
        line_end: 80
        line_start: 78
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 4  '
    - item_type: preproc_def
      name: TPM_CLEAR_DISABLED
      pos:
        line_end: 82
        line_start: 80
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 5  '
    - item_type: preproc_def
      name: TPM_DEACTIVATED
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 6  '
    - item_type: preproc_def
      name: TPM_DISABLED
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 7  '
    - item_type: preproc_def
      name: TPM_DISABLED_CMD
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 8  '
    - item_type: preproc_def
      name: TPM_FAIL
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 9  '
    - item_type: preproc_def
      name: TPM_BAD_ORDINAL
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 10 '
    - item_type: preproc_def
      name: TPM_INSTALL_DISABLED
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 11 '
    - item_type: preproc_def
      name: TPM_INVALID_KEYHANDLE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 12 '
    - item_type: preproc_def
      name: TPM_KEYNOTFOUND
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 13 '
    - item_type: preproc_def
      name: TPM_INAPPROPRIATE_ENC
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 14 '
    - item_type: preproc_def
      name: TPM_MIGRATEFAIL
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 15 '
    - item_type: preproc_def
      name: TPM_INVALID_PCR_INFO
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 16 '
    - item_type: preproc_def
      name: TPM_NOSPACE
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 17 '
    - item_type: preproc_def
      name: TPM_NOSRK
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 18 '
    - item_type: preproc_def
      name: TPM_NOTSEALED_BLOB
      pos:
        line_end: 97
        line_start: 95
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 19 '
    - item_type: preproc_def
      name: TPM_OWNER_SET
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 20 '
    - item_type: preproc_def
      name: TPM_RESOURCES
      pos:
        line_end: 100
        line_start: 98
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 21 '
    - item_type: preproc_def
      name: TPM_SHORTRANDOM
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 22 '
    - item_type: preproc_def
      name: TPM_SIZE
      pos:
        line_end: 103
        line_start: 101
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 23 '
    - item_type: preproc_def
      name: TPM_WRONGPCRVAL
      pos:
        line_end: 105
        line_start: 103
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 24 '
    - item_type: preproc_def
      name: TPM_BAD_PARAM_SIZE
      pos:
        line_end: 107
        line_start: 105
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 25 '
    - item_type: preproc_def
      name: TPM_SHA_THREAD
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 26 '
    - item_type: preproc_def
      name: TPM_SHA_ERROR
      pos:
        line_end: 111
        line_start: 108
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 27 '
    - item_type: preproc_def
      name: TPM_FAILEDSELFTEST
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 28 '
    - item_type: preproc_def
      name: TPM_AUTH2FAIL
      pos:
        line_end: 114
        line_start: 112
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 29 '
    - item_type: preproc_def
      name: TPM_BADTAG
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 30 '
    - item_type: preproc_def
      name: TPM_IOERROR
      pos:
        line_end: 117
        line_start: 115
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 31 '
    - item_type: preproc_def
      name: TPM_ENCRYPT_ERROR
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 32 '
    - item_type: preproc_def
      name: TPM_DECRYPT_ERROR
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 33 '
    - item_type: preproc_def
      name: TPM_INVALID_AUTHHANDLE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 34 '
    - item_type: preproc_def
      name: TPM_NO_ENDORSEMENT
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 35 '
    - item_type: preproc_def
      name: TPM_INVALID_KEYUSAGE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 36 '
    - item_type: preproc_def
      name: TPM_WRONG_ENTITYTYPE
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 37 '
    - item_type: preproc_def
      name: TPM_INVALID_POSTINIT
      pos:
        line_end: 126
        line_start: 123
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 38 '
    - item_type: preproc_def
      name: TPM_INAPPROPRIATE_SIG
      pos:
        line_end: 128
        line_start: 126
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 39 '
    - item_type: preproc_def
      name: TPM_BAD_KEY_PROPERTY
      pos:
        line_end: 130
        line_start: 128
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 40 '
    - item_type: preproc_def
      name: TPM_BAD_MIGRATION
      pos:
        line_end: 132
        line_start: 130
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 41 '
    - item_type: preproc_def
      name: TPM_BAD_SCHEME
      pos:
        line_end: 134
        line_start: 132
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 42 '
    - item_type: preproc_def
      name: TPM_BAD_DATASIZE
      pos:
        line_end: 136
        line_start: 134
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 43 '
    - item_type: preproc_def
      name: TPM_BAD_MODE
      pos:
        line_end: 140
        line_start: 136
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 44 '
    - item_type: preproc_def
      name: TPM_BAD_PRESENCE
      pos:
        line_end: 142
        line_start: 140
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 45 '
    - item_type: preproc_def
      name: TPM_BAD_VERSION
      pos:
        line_end: 144
        line_start: 142
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 46 '
    - item_type: preproc_def
      name: TPM_NO_WRAP_TRANSPORT
      pos:
        line_end: 146
        line_start: 144
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 47 '
    - item_type: preproc_def
      name: TPM_AUDITFAIL_UNSUCCESSFUL
      pos:
        line_end: 149
        line_start: 146
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 48 '
    - item_type: preproc_def
      name: TPM_AUDITFAIL_SUCCESSFUL
      pos:
        line_end: 151
        line_start: 149
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 49 '
    - item_type: preproc_def
      name: TPM_NOTRESETABLE
      pos:
        line_end: 153
        line_start: 151
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 50 '
    - item_type: preproc_def
      name: TPM_NOTLOCAL
      pos:
        line_end: 156
        line_start: 153
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 51 '
    - item_type: preproc_def
      name: TPM_BAD_TYPE
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 52 '
    - item_type: preproc_def
      name: TPM_INVALID_RESOURCE
      pos:
        line_end: 159
        line_start: 157
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 53 '
    - item_type: preproc_def
      name: TPM_NOTFIPS
      pos:
        line_end: 161
        line_start: 159
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 54 '
    - item_type: preproc_def
      name: TPM_INVALID_FAMILY
      pos:
        line_end: 163
        line_start: 161
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 55 '
    - item_type: preproc_def
      name: TPM_NO_NV_PERMISSION
      pos:
        line_end: 165
        line_start: 163
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 56 '
    - item_type: preproc_def
      name: TPM_REQUIRES_SIGN
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 57 '
    - item_type: preproc_def
      name: TPM_KEY_NOTSUPPORTED
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 58 '
    - item_type: preproc_def
      name: TPM_AUTH_CONFLICT
      pos:
        line_end: 169
        line_start: 167
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 59 '
    - item_type: preproc_def
      name: TPM_AREA_LOCKED
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 60 '
    - item_type: preproc_def
      name: TPM_BAD_LOCALITY
      pos:
        line_end: 172
        line_start: 170
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 61 '
    - item_type: preproc_def
      name: TPM_READ_ONLY
      pos:
        line_end: 174
        line_start: 172
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 62 '
    - item_type: preproc_def
      name: TPM_PER_NOWRITE
      pos:
        line_end: 176
        line_start: 174
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 63 '
    - item_type: preproc_def
      name: TPM_FAMILYCOUNT
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 64 '
    - item_type: preproc_def
      name: TPM_WRITE_LOCKED
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 65 '
    - item_type: preproc_def
      name: TPM_BAD_ATTRIBUTES
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 66 '
    - item_type: preproc_def
      name: TPM_INVALID_STRUCTURE
      pos:
        line_end: 181
        line_start: 179
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 67 '
    - item_type: preproc_def
      name: TPM_KEY_OWNER_CONTROL
      pos:
        line_end: 183
        line_start: 181
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 68 '
    - item_type: preproc_def
      name: TPM_BAD_COUNTER
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 69 '
    - item_type: preproc_def
      name: TPM_NOT_FULLWRITE
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 70 '
    - item_type: preproc_def
      name: TPM_CONTEXT_GAP
      pos:
        line_end: 187
        line_start: 185
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 71 '
    - item_type: preproc_def
      name: TPM_MAXNVWRITES
      pos:
        line_end: 189
        line_start: 187
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 72 '
    - item_type: preproc_def
      name: TPM_NOOPERATOR
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 73 '
    - item_type: preproc_def
      name: TPM_RESOURCEMISSING
      pos:
        line_end: 192
        line_start: 190
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 74 '
    - item_type: preproc_def
      name: TPM_DELEGATE_LOCK
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 75 '
    - item_type: preproc_def
      name: TPM_DELEGATE_FAMILY
      pos:
        line_end: 195
        line_start: 193
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 76 '
    - item_type: preproc_def
      name: TPM_DELEGATE_ADMIN
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 77 '
    - item_type: preproc_def
      name: TPM_TRANSPORT_NOTEXCLUSIVE
      pos:
        line_end: 198
        line_start: 196
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 78 '
    - item_type: preproc_def
      name: TPM_OWNER_CONTROL
      pos:
        line_end: 200
        line_start: 198
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 79 '
    - item_type: preproc_def
      name: TPM_DAA_RESOURCES
      pos:
        line_end: 202
        line_start: 200
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 80 '
    - item_type: preproc_def
      name: TPM_DAA_INPUT_DATA0
      pos:
        line_end: 204
        line_start: 202
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 81 '
    - item_type: preproc_def
      name: TPM_DAA_INPUT_DATA1
      pos:
        line_end: 206
        line_start: 204
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 82 '
    - item_type: preproc_def
      name: TPM_DAA_ISSUER_SETTINGS
      pos:
        line_end: 208
        line_start: 206
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 83 '
    - item_type: preproc_def
      name: TPM_DAA_TPM_SETTINGS
      pos:
        line_end: 210
        line_start: 208
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 84 '
    - item_type: preproc_def
      name: TPM_DAA_STAGE
      pos:
        line_end: 212
        line_start: 210
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 85 '
    - item_type: preproc_def
      name: TPM_DAA_ISSUER_VALIDITY
      pos:
        line_end: 214
        line_start: 212
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 86 '
    - item_type: preproc_def
      name: TPM_DAA_WRONG_W
      pos:
        line_end: 215
        line_start: 214
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 87 '
    - item_type: preproc_def
      name: TPM_BAD_HANDLE
      pos:
        line_end: 216
        line_start: 215
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 88 '
    - item_type: preproc_def
      name: TPM_BAD_DELEGATE
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 89 '
    - item_type: preproc_def
      name: TPM_BADCONTEXT
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 90 '
    - item_type: preproc_def
      name: TPM_TOOMANYCONTEXTS
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 91 '
    - item_type: preproc_def
      name: TPM_MA_TICKET_SIGNATURE
      pos:
        line_end: 221
        line_start: 219
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 92 '
    - item_type: preproc_def
      name: TPM_MA_DESTINATION
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 93 '
    - item_type: preproc_def
      name: TPM_MA_SOURCE
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 94 '
    - item_type: preproc_def
      name: TPM_MA_AUTHORITY
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 95 '
    - item_type: preproc_def
      name: TPM_PERMANENTEK
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 97 '
    - item_type: preproc_def
      name: TPM_BAD_SIGNATURE
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 98 '
    - item_type: preproc_def
      name: TPM_NOCONTEXTSPACE
      pos:
        line_end: 228
        line_start: 226
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + 99 '
    - item_type: preproc_def
      name: TPM_RETRY
      pos:
        line_end: 236
        line_start: 233
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + TPM_NON_FATAL '
    - item_type: preproc_def
      name: TPM_NEEDS_SELFTEST
      pos:
        line_end: 238
        line_start: 236
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + TPM_NON_FATAL + 1 '
    - item_type: preproc_def
      name: TPM_DOING_SELFTEST
      pos:
        line_end: 243
        line_start: 238
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: 'TPM_BASE + TPM_NON_FATAL + 2 '
    - item_type: preproc_def
      name: TPM_DEFEND_LOCK_RUNNING
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/libtpms/include/libtpms/tpm_error.h
      type_or_value: TPM_BASE + TPM_NON_FATAL + 3
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/include/libtpms/tpm_tis.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/libtpms/include/libtpms/tpm_memory.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TPM_ALLOC_MAX
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/libtpms/include/libtpms/tpm_memory.h
      type_or_value: '0x20000  '
    structs: []
    typedefs: []
    union: []
